Go中的MCP客户端
引言
此Go程序充当MCP(模型上下文协议)服务器的客户端。它启动MCP服务器可执行文件(从Go编译),并使用JSON-RPC 2.0协议通过标准输入/输出进行通信。客户端发送 tools/list 请求检索可用工具,然后调用 hello_world 具有指定参数的工具。响应被读取、解析并漂亮地打印到控制台。
用法
- 确保MCP服务器可执行
放置已编译的MCP服务器二进制文件(例如。 hello-mcp.exe 或 hello-mcp)旁边 client 二元的。
- 运行客户端
go run src/main.go运作原理
- 生成服务器:程序使用
os/exec启动MCP服务器进程。 - JSON-RPC传输:它获取到服务器stdin和stdout的管道,用于换行分隔的JSON-RPC请求和响应。
- 工具发现:发送
tools/list请求获取可用工具列表。 - 工具调用:发送
tools/call请求调用hello_world工具与aname参数。 - 响应处理:逐行读取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工具或传递不同的参数。
______________________________________________________________________
请随时贡献改进或提交问题!
