go-sdk
Anthropic主导的MCP协议官方Go语言SDK,让AI应用通过标准化协议调用外部工具和数据
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Anthropic主导的MCP协议官方Go语言SDK,让AI应用通过标准化协议调用外部工具和数据
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景:你让 AI 助手帮你查询数据库里的销售报表,它说"好的",然后……卡住了。不是 AI 不聪明,而是它根本不知道怎么连接你的数据库——每换一个工具,就要重新写一套集成代码。MCP(Model Context Protocol)就是来解决这个问题的。
Model Context Protocol Go SDK 是 Anthropic 主导的 MCP 协议的官方 Go 语言实现,由 Google 团队联合维护。它是一个轻量级的开发库,让开发者可以快速为自己的 AI 应用构建「工具连接」能力——无论你要连接数据库、文件系统、API 接口还是日历,只要接入 MCP,就能让 AI 模型直接调用。
2025年11月,MCP 正式迎来一周年,协议版本迭代至 2025-11-25,支持能力大幅增强。该项目目前 GitHub Stars 超过 4600,是 AI 工具互联领域最具影响力的开源项目之一。
MCP 遵循经典的 Host-Client-Server 三层架构:
通信协议基于 JSON-RPC 2.0,支持两种传输方式:Stdio(标准输入输出,适合本地进程)和 Streamable HTTP(适合远程服务)。每个连接都是独立的 Session,支持完整的状态管理。
这套架构最优雅的地方在于能力协商机制——Client 和 Server 在握手阶段互相声明自己支持的功能,不支持的直接跳过,不强制要求全部实现。开发者可以渐进式地添加功能模块。
Go SDK 的代码组织清晰,分为三个主要包:
| 包名 | 作用 |
|---|---|
github.com/modelcontextprotocol/go-sdk/mcp | 核心协议实现:Client/Server/Transport/Session |
github.com/modelcontextprotocol/go-sdk/jsonrpc | JSON-RPC 2.0 消息序列化与处理 |
github.com/modelcontextprotocol/go-sdk/auth | OAuth 2.0 认证支持(含 PKCE) |
mcp 包是整个 SDK 的核心,通过 AddTool()、AddResource()、AddPrompt() 等函数注册功能,开发者只需几十行代码即可搭建一个完整的 MCP Server。包内实现了完整的协议状态机,包括初始化握手、生命周期管理和错误处理。
以官方 examples 为例,构建一个 MCP Server 只需以下步骤:
// 1. 创建 Server 实例
server := mcp.NewServer("my-server", "1.0.0", &mcp.ServerOptions{})
// 2. 注册工具
server.AddTool(mcp.Tool{
Name: "get_weather",
Description: "查询城市天气",
InputSchema: map[string]any{"city": "string"},
}, func(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
// 实现逻辑
return &mcp.CallToolResult{Content: []mcp.ContentBlock{{
Type: "text", Text: "北京今天晴,25°C",
}}}, nil
})
// 3. 启动服务
// StdioTransport 或 StreamableHTTPServer
官方还提供了 auth 包的 OAuth2 完整实现,支持与 Google、GitHub 等 OAuth Provider 集成,适合构建需要认证的 MCP 服务。examples 目录包含 client、server、http、auth 四个方向的完整示例,覆盖了主流使用场景。
作为 Anthropic 和 Google 联合维护的项目,代码质量有充分保障:
_test.go 文件,包含单元测试和一致性测试(conformance tests),协议正确性有 CI 保证docs/ 目录包含完整的快速开始指南、协议规范和故障排查文档,pkg.go.dev 上也有完整的 API 文档依赖管理方面,引入了 golang-jwt/jwt、golang.org/x/oauth2、google/jsonschema-go 等成熟库,无可疑依赖。License 为 Apache 2.0,商用友好。
优点:
AddTool 注册即用局限:
适用场景:AI 应用开发者构建 MCP Server 端、需要为自己的 AI 工具提供标准化接入层的开发者、以及研究 AI 工具互操作协议的技术人员。
MCP 的野心不只是让 AI 调用几个工具。它要解决的是整个 AI 工具生态的互操作性问题。在 MCP 之前,每家 AI 公司都要为自己的产品写专属的工具集成插件;有了 MCP,工具开发者只需实现一次 MCP Server,全世界所有支持 MCP 的 AI 应用都能用。
这种「USB 接口」式的标准化思路,正在成为 AI 领域的主流趋势。Anthropic、Cursor、VS Code、Cline 等主流 AI 工具已全面支持 MCP,全球已有数千个社区开发的 MCP Server。
Go SDK 作为官方维护的主要语言实现,承担着在 Go 生态中推广 MCP 的使命。凭借 Go 语言在云原生和基础设施领域的深厚积累,MCP Go SDK 特别适合构建高性能、需要部署在服务器端的 MCP 服务。
图1:MCP Inspector 工具,可可视化调试 MCP Server 的协议交互过程