go docs
 
基于Mastra的MCP服务器,通过pkg.Go.dev的实时文档提供专家级的Go编程帮助。在您的AI驱动的代码编辑器中使用它,可以即时访问Go文档、最佳实践和代码示例。
生产部署
| 主机 | 基本URL | 突出显示 |
|---|---|---|
| 马斯特拉云 | https://go-docs.mastra.cloud | 首要选择 -零冷启动,最大响应能力,性能可靠。 |
- 追加
/api/mcp/goDocsMcpServer/sse对于SSE传输(最适合保持长期连接的编辑器)。 - 追加
/api/mcp/goDocsMcpServer/mcp用于HTTP传输(便于CLI和快速一次性调用)。
Endpoint reference
- Mastra Cloud SSE: https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/sse
- Mastra云HTTP: https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/mcp
- 开发SSE: http://localhost:4111/api/mcp/goDocsMcpServer/sse
- 开发HTTP: http://localhost:4111/api/mcp/goDocsMcpServer/mcp
🎉 新增功能
- ✅ Mastra Cloud上的生产部署
- ✅ 来自pkg.Go.dev的实时Go文档
- ✅ 使用AI代理的专家Go编程协助
- ✅ 支持所有主要的AI代码编辑器(Cursor、Windsurf、VS code、Claude Desktop)
- ✅ HTTP和SSE传输协议
- ✅ 具有语义发布的自动版本控制
🚀 特性
- 转到文档访问:从pkg.go.dev获取实时文档
- MCP协议支持:用于与MCP客户端无缝集成的HTTP SSE传输
- 智能响应:通过代码示例提供格式良好的答案
- Mastra框架:基于Mastra构建,用于可扩展的工具开发
- TypeScript支持:完全使用TypeScript
- 多客户端支持:适用于Cursor、VSCode、Claude Desktop、Windsurf和其他MCP兼容工具
______________________________________________________________________
编辑器设置
建议部署Mastra Cloud 对于所有编辑。它提供零冷启动和最大响应能力。SSE最适合保持持久连接的编辑器,而HTTP则适用于一次性请求和脚本。
Cursor
- 打开光标设置(
Cmd/Ctrl+,). - 导航到“MCP”/“模型上下文协议”并添加新的服务器配置。
Mastra Cloud——苏格兰和南方能源公司示例:
{
"go-docs": {
"type": "sse",
"url": "https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/sse"
}
}Mastra Cloud——HTTP示例:
{
"go-docs": {
"type": "http",
"url": "https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/mcp"
}
}开发(本地主机):
{
"go-docs-dev": {
"type": "sse",
"url": "http://localhost:4111/api/mcp/goDocsMcpServer/sse"
}
}VS Code
添加到您的 .vscode/settings.json 或使用命令选项板(Cmd/Ctrl+Shift+P)然后跑 MCP: Add server:
生产(SSE运输):
{
"mcpServers": {
"go-docs": {
"url": "https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/sse",
"type": "sse"
}
}
}对于生产(HTTP传输):
{
"mcpServers": {
"go-docs": {
"url": "https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/mcp",
"type": "http"
}
}
}对于开发(本地主机):
{
"mcpServers": {
"go-docs-dev": {
"url": "http://localhost:4111/api/mcp/goDocsMcpServer/sse",
"type": "sse"
}
}
}Windsurf
- 编辑
~/.codeium/windsurf/mcp_config.json. - 添加SSE传输:
{
"mcpServers": {
"go-docs": {
"url": "https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/sse",
"transport": "sse"
}
}
}- 保存,重新启动Windsurf,然后打开
mcp.json在代理模式下,单击“开始”。
Claude Desktop
添加到您的 claude_desktop_config.json:
生产:
{
"mcpServers": {
"go-docs": {
"url": "https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/sse"
}
}
}发展:
{
"mcpServers": {
"go-docs-dev": {
"url": "http://localhost:4111/api/mcp/goDocsMcpServer/sse"
}
}
}Zed
- 打开Zed设置(
Cmd/Ctrl+,). - 编辑
~/.config/zed/settings.json:
{
"context_servers": {
"go-docs": {
"source": "custom",
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/sse"
],
"env": {}
}
}
}- 保存,重新启动Zed,并确认服务器在Agent面板中显示绿色指示灯。
CLI和代理配置
Claude Code CLI (Anthropic)
- 全局设置 (
~/.claude/settings.json):
{
"mcpServers": {
"go-docs": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/mcp"
]
}
}
}- 命令选项板替代方案:
claude mcp add go-docs --url https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/mcpOpenAI Codex CLI
codex mcp add go-docs --url https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/sse
codex mcp listGemini CLI (Google)
- 创建或编辑
~/.gemini/settings.json:
mkdir -p ~/.gemini
nano ~/.gemini/settings.json- 添加配置:
{
"mcpServers": {
"go-docs": {
"httpUrl": "https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/mcp"
}
}
}- 或者使用npx命令变体:
{
"mcpServers": {
"go-docs": {
"command": "npx",
"args": [
"mcp-remote",
"https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/mcp"
]
}
}
}验证和快速测试
# Test MCP connection
npx mcp-remote https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/mcp
# Check HTTP endpoint
curl -I https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/mcp
# Test SSE endpoint
curl -N https://go-docs.mastra.cloud/api/mcp/goDocsMcpServer/sse可用工具
安装后,您的AI助手将可以访问这些工具:
- fetchGoDoc -从pkg.Go.dev获取实时官方Go文档。使用此功能获取包文档、函数签名、类型定义和示例。支持标准库包,如'fmt'、'net/http'、'context'、'encoding/json'和第三方包。
示例用法
在编辑器中安装MCP服务器后,您可以询问您的AI助手:
- “如何在Go中使用fmt包?”
- “显示Go切片和数组的示例”
- “Go错误处理的最佳实践是什么?”
- “用代码示例解释Go接口”
- “我如何处理goroutines的并发性?”
- “Go中make和new有什么区别?”
📖 程序化使用
import { MCPClient } from "@mastra/mcp";
// Use environment variable for URL (supports both dev and prod)
const mcpUrl =
process.env.MCP_SERVER_URL ||
"http://localhost:4111/api/mcp/goDocsMcpServer/sse";
const mcp = new MCPClient({
servers: {
goDocs: {
url: mcpUrl,
},
},
});
// Get available tools
const tools = await mcp.getTools();
// Call a tool directly
const result = await mcp.callTool("go-docs", "fetchGoDocs", {
query: "How do I use Go slices?",
});______________________________________________________________________
🚀 快速启动(地方发展)
这些说明假设您安装了Bun(或Node20+),并为您选择的模型提供商提供了API密钥。
- 安装依赖项:
bun install- 复制示例环境并添加您的API密钥:
cp .env.example .env
# Edit .env and add your API key(s)- 在开发模式下运行:
bun run dev- 构建和运行生产:
bun run build
bun run start注: Studio(Mastra本地UI)在开发期间可用,网址为http://localhost:4111.
______________________________________________________________________
📦 脚本
| 脚本 | 描述 |
|---|---|
dev | 以开发模式启动Mastra |
build | 建造Mastra项目进行生产 |
start | 启动已构建的Mastra服务器 |
check-versions | 验证package.json和MCP服务器匹配 |
sync-versions | 将package.json中的版本同步到MCP服务器 |
______________________________________________________________________
⚙️ 环境变量
复制 .env.example 到 .env 并配置:
cp .env.example .env| 变量 | 描述 |
|---|---|
OPENAI_API_KEY | OpenAI的API密钥 |
GOOGLE_GENERATIVE_AI_API_KEY | Google Gemini的API密钥(可选) |
MCP_SERVER_URL | 用于编程访问的MCP服务器URL |
______________________________________________________________________
🗂️ 项目结构
src/
├─ mastra/
│ ├─ agents/
│ │ └─ go-docs-agent.ts # AI agent for Go documentation
│ ├─ mcp/
│ │ └─ go-docs-server.ts # MCP server configuration
│ ├─ tools/
│ │ └─ go-docs-tool.ts # Documentation fetching tool
│ └─ index.ts # Mastra configuration
scripts/
├─ check-versions.js # Version verification script
└─ sync-versions.js # Version synchronization script______________________________________________________________________
🔧 原理
- MCP协议:通过HTTP SSE或HTTP传输进行通信
- 文档获取:The
go-docs-tool从pkg.go.dev获取文档 - AI 代理:Expert Go代理通过代码示例提供上下文答案
- 工具曝光:使连接的MCP客户端可以使用Go文档工具
______________________________________________________________________
🛠️ 发展
扩展MCP服务器
要添加新功能,请执行以下操作:
- 添加工具:在中创建新工具
src/mastra/tools/ - 修改MCP服务器:更新
src/mastra/mcp/go-docs-server.ts - 测试:使用MCP客户端测试配置
构建自定义工具
import { createTool } from "@mastra/core/tools";
import { z } from "zod";
export const customTool = createTool({
id: "custom-tool",
description: "Description of what the tool does",
inputSchema: z.object({
param: z.string(),
}),
execute: async ({ context }) => {
return { result: "output" };
},
});版本管理
版本在以下之间同步 package.json 以及MCP服务器:
# Check if versions match
bun run check-versions
# Sync versions (package.json is source of truth)
bun run sync-versions______________________________________________________________________
贡献
欢迎投稿!请遵循以下指南:
- 分叉仓库并创建功能分支
- 跟随 常规承诺 用于提交消息
- 如果您改变行为,请添加测试或演示
- 提交一份PR,描述您的更改
______________________________________________________________________
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
