This commit is contained in:
63
docs/snippets/go/mcp/mcp_custom_client.md
Normal file
63
docs/snippets/go/mcp/mcp_custom_client.md
Normal file
@@ -0,0 +1,63 @@
|
||||
```go title="Go"
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"log"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
type MCPRequest struct {
|
||||
Method string `json:"method"`
|
||||
Params MCPParams `json:"params"`
|
||||
}
|
||||
|
||||
type MCPParams struct {
|
||||
Name string `json:"name"`
|
||||
Arguments map[string]interface{} `json:"arguments"`
|
||||
}
|
||||
|
||||
func main() {
|
||||
cmd := exec.Command("kreuzberg", "mcp")
|
||||
stdin, err := cmd.StdinPipe()
|
||||
if err != nil {
|
||||
log.Fatalf("create stdin pipe: %v", err)
|
||||
}
|
||||
stdout, err := cmd.StdoutPipe()
|
||||
if err != nil {
|
||||
log.Fatalf("create stdout pipe: %v", err)
|
||||
}
|
||||
|
||||
if err := cmd.Start(); err != nil {
|
||||
log.Fatalf("start command: %v", err)
|
||||
}
|
||||
|
||||
request := MCPRequest{
|
||||
Method: "tools/call",
|
||||
Params: MCPParams{
|
||||
Name: "extract_file",
|
||||
Arguments: map[string]interface{}{
|
||||
"path": "document.pdf",
|
||||
"async": true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
data, err := json.Marshal(request)
|
||||
if err != nil {
|
||||
log.Fatalf("marshal request: %v", err)
|
||||
}
|
||||
fmt.Fprintf(stdin, "%s\n", string(data))
|
||||
|
||||
scanner := bufio.NewScanner(stdout)
|
||||
if scanner.Scan() {
|
||||
fmt.Println(scanner.Text())
|
||||
}
|
||||
|
||||
if err := cmd.Wait(); err != nil {
|
||||
log.Fatalf("wait for command: %v", err)
|
||||
}
|
||||
}
|
||||
```
|
||||
19
docs/snippets/go/mcp/mcp_server_start.md
Normal file
19
docs/snippets/go/mcp/mcp_server_start.md
Normal file
@@ -0,0 +1,19 @@
|
||||
```go title="Go"
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
func main() {
|
||||
cmd := exec.Command("kreuzberg", "mcp")
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
|
||||
if err := cmd.Run(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Failed to start MCP server: %v\n", err)
|
||||
}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user