在agnet中经常使用到bash命令调用,这里采用MCP stdio方式调。

McpServer搭建实践

 

 

 1 使用Mcp Stdio方式-NewStdioMCPClient启动Stdio Server

在Stdio模式下,不需要启动Stdio server,直接使用 client.NewStdioMCPClient 即可

NewStdioMCPClient 用于创建一个通过 stdin/stdout 管道与子进程通信的 MCP 客户端,只是用来连接main文件的,不是类似sse/http streamable那种连接一个启动的server吧。执行流程如下:

  • 启动一个新的子进程。执行对应的源文件 (go run main.go)或者 可执行文件。
  • 通过 stdin/stdout 管道与子进程通信
  • 子进程的 main 函数必须实现 MCP Server 的 stdio 监听

StartMcpStdioServer 其实就是为了定义一个main.go或者生成一个可执行文件,不需类似SSE、http streambel启动成一个服务。

整体方案:
  • mcp_handler.StartMcpStdioServer()定义在其他一个main.go文件,只给NewStdioMCPClient调用使用
  • 主main.go用来启动一个hertz服务

1、主main.go
2. handel/bash_stdio_tools 定义/execBash接口,通过NewStdioMCPClient执行
3、cmd/mcp-server/main.go  定义stdio server
4、验证
fd7c185d-d431-4853-80da-90541212c33d

 2 构建Bash命令执行

1、 执行bash的工具类


2. 修改上面的BashHandler:

3. 运行 ls ~/Desktop

screenshot-20251212-155318

分类&标签