# Go MCP Library Decision ## N6 decision 选择官方 Go MCP SDK: - module:`github.com/modelcontextprotocol/go-sdk`,固定版本 `v1.3.1`。 - package:`github.com/modelcontextprotocol/go-sdk/mcp`。 不选择 `v1.6.1` 或 pre-release:本机 Go 是 `go1.23.4 windows/amd64`;`v1.6.1` 的 module `go.mod` 为 `go 1.25.0`,当前节点不升级工具链。`v1.3.1` 是稳定版本,`go list -m -json` 显示 `GoVersion: "1.23.0"`,与本机兼容。 ## Required decision fields - package/module name:`github.com/modelcontextprotocol/go-sdk/mcp` / `github.com/modelcontextprotocol/go-sdk v1.3.1`。 - stdio support:yes。`go doc` 显示 `mcp.StdioTransport` 通过 stdin/stdout newline-delimited JSON 通信。 - tool registration style:`mcp.NewServer(...)` 创建 server,后续 N8 使用 `mcp.AddTool[In, Out](server, tool, handler)` 注册 typed tool handler;N6 不写 server code,不注册工具。 - JSON schema support:yes。`mcp.AddTool` 可从 Go struct/map type 自动推断 input/output JSON schema,并支持 `jsonschema` struct tag。 - maintenance risk:官方 SDK,维护风险低于社区 SDK;但 MCP/SDK API 仍在快速演进。通过固定 `v1.3.1` 避免 pre-release 和 Go 1.25 要求,后续升级必须单独审批。 - why enough for four tools:第一阶段只需要 stdio MCP server、四个 read-only tool 定义、typed 参数 schema、handler 调用 `internal/helperclient`。官方 SDK 已覆盖这些点,不需要 HTTP server、Python/Node runtime、后台 daemon 或多 MCP 框架。 ## Verification notes - `go list -m -versions github.com/modelcontextprotocol/go-sdk` 可列出 `v1.3.1`、`v1.6.1`、`v1.7.0-pre.1` 等版本。 - `go get github.com/modelcontextprotocol/go-sdk@v1.3.1` 成功。 - `go list github.com/modelcontextprotocol/go-sdk/mcp` 成功。 - `go doc github.com/modelcontextprotocol/go-sdk/mcp.StdioTransport`、`go doc github.com/modelcontextprotocol/go-sdk/mcp.AddTool`、`go doc github.com/modelcontextprotocol/go-sdk/mcp.NewServer` 成功。 - `go list -m all` 只出现一个 MCP-related dependency:`github.com/modelcontextprotocol/go-sdk v1.3.1`。