This commit is contained in:
41
docs/snippets/rust/mcp/mcp_custom_client.md
Normal file
41
docs/snippets/rust/mcp/mcp_custom_client.md
Normal file
@@ -0,0 +1,41 @@
|
||||
```rust title="Rust"
|
||||
use serde_json::json;
|
||||
use std::io::{BufRead, BufReader, Write};
|
||||
use std::process::{Command, Stdio};
|
||||
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let mut child = Command::new("kreuzberg")
|
||||
.arg("mcp")
|
||||
.stdin(Stdio::piped())
|
||||
.stdout(Stdio::piped())
|
||||
.spawn()?;
|
||||
|
||||
{
|
||||
let stdin = child.stdin.as_mut().ok_or("Failed to open stdin")?;
|
||||
let request = json!({
|
||||
"method": "tools/call",
|
||||
"params": {
|
||||
"name": "extract_file",
|
||||
"arguments": {
|
||||
"path": "document.pdf",
|
||||
"async": true
|
||||
}
|
||||
}
|
||||
});
|
||||
stdin.write_all(request.to_string().as_bytes())?;
|
||||
stdin.write_all(b"\n")?;
|
||||
}
|
||||
|
||||
let stdout = child.stdout.take().ok_or("Failed to open stdout")?;
|
||||
let reader = BufReader::new(stdout);
|
||||
for line in reader.lines() {
|
||||
if let Ok(line) = line {
|
||||
println!("{}", line);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
child.wait()?;
|
||||
Ok(())
|
||||
}
|
||||
```
|
||||
10
docs/snippets/rust/mcp/mcp_server_start.md
Normal file
10
docs/snippets/rust/mcp/mcp_server_start.md
Normal file
@@ -0,0 +1,10 @@
|
||||
```rust title="Rust"
|
||||
use kreuzberg::{ExtractionConfig, mcp::start_mcp_server_with_config};
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
||||
let config = ExtractionConfig::discover()?;
|
||||
start_mcp_server_with_config(config).await?;
|
||||
Ok(())
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user