简介
mcp-go 是 Go 语言的 MCP SDK:用统一协议把你的 Go 代码暴露为 tools/resources/prompts,并通过 stdio 等传输交给 AI 客户端调用,适合把业务能力封装成可审计的工具层。
- 适合谁: 想用强类型 Go 写工具服务(tool server),并用于 Agent 工作流的团队
- 可搭配: Go 工具链、stdio MCP 客户端、server 侧 tools/resources/prompts 模式
- 准备时间: 12 分钟
实战建议
- Quickstart 提供可直接跑通的计算器 tool 示例,通常 <15 分钟即可冒烟
- README 里按主题给了多段示例(server/resources/tools/prompts/session),可逐步拷贝扩展
用 Go 写“可控工具”的建议
把每个 MCP tool 当成一个稳定的“函数契约”:
- 输入尽量小且强类型(string/number/enum),让 Agent 更可靠地调用。
- 把真实副作用放在薄薄的一层校验之后(避免脏输入直达系统)。
- 优先做幂等操作(可安全重试),错误信息写清楚(便于 Agent 自修复)。
从一个 tool 扩展为一套工具箱的路径:
- 先加 resources 提供只读上下文(列项目/配置等)。
- 再加 tools 做有副作用的动作(create/update/apply)。
- 用 prompts 固化团队 SOP(让“怎么用”变成可复用模板)。
resources / tools / prompts 三分法会让 Agent 行为更容易审计与推理。
FAQ
mcp-go 只做 server 吗? 答:主要面向 server 侧:把 tools/resources/prompts 暴露给 MCP 客户端。
必须用 HTTP 吗? 答:不需要,README quickstart 使用 stdio 传输,很多客户端都支持。
怎么让工具更安全? 答:严格校验输入、收敛副作用、尽量幂等并提供清晰错误信息。