MCP客户端工具

一个用于与MCP服务器通信的Go语言客户端,支持通过JSON-RPC 2.0协议进行工具发现和调用。

  • by lucasgdb
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 lucasgdb/mcp-client-go-example

使用说明

Go中的MCP客户端

引言

此Go程序充当MCP(模型上下文协议)服务器的客户端。它启动MCP服务器可执行文件(从Go编译),并使用JSON-RPC 2.0协议通过标准输入/输出进行通信。客户端发送 tools/list 请求检索可用工具,然后调用 hello_world 具有指定参数的工具。响应被读取、解析并漂亮地打印到控制台。

用法

  1. 确保MCP服务器可执行 放置已编译的MCP服务器二进制文件(例如。 hello-mcp.exe 或 hello-mcp)旁边 client 二元的。

  2. 运行客户端

    go run src/main.go
    

运作原理

  1. 生成服务器:程序使用 os/exec 启动MCP服务器进程。
  2. JSON-RPC传输:它获取到服务器stdin和stdout的管道,用于换行分隔的JSON-RPC请求和响应。
  3. 工具发现:发送 tools/list 请求获取可用工具列表。
  4. 工具调用:发送 tools/call 请求调用 hello_world 工具与a name 参数。
  5. 响应处理:逐行读取JSON-RPC响应,将其解组为Go结构,并使用缩进JSON格式打印结果。

JSON-RPC结构

  • JSONRPC请求:表示JSON-RPC 2.0请求,字段为 jsonrpc, id, method,以及 params.
  • JSONRPC响应:表示JSON-RPC 2.0响应,字段为 jsonrpc, id, result,以及 error.

定制

  • 可执行路径:更新 exePath 如果您的MCP服务器二进制文件名称不同或位于另一个目录中,则返回变量。
  • 工具名称:修改 toolsListRequest 和 mcpServerRequest 有效载荷可以针对其他MCP工具或传递不同的参数。

请随时贡献改进或提交问题!