如何用 Golang 快速集成多种 AI 工具?试试这个神奇的开源库:mcp-client-go
在当今这个大模型如雨后春笋般涌现的时代,如何让 AI 高效地调用真实世界的数据和工具,成为了许多开发者关注的焦点。
今天,我想给大家推荐一个超级好用的开源库——mcp-client-go,它是 Model Context Protocol (MCP) 的 Golang 客户端实现,让你可以一站式集成各类 MCP 服务,如 Gaode Maps、高德地图、GitHub、AWS、Slack、Google Maps 等等!
什么是 MCP(Model Context Protocol)?
简单来说,MCP 是一套标准协议,专为 AI 与外部世界交互而设计。通过 MCP,AI 可以:
-
调用 Web API
-
操作数据库
-
执行浏览器行为
-
访问第三方服务(如 GitHub、Sentry、Figma、Slack、Redis、PostgreSQL 等)
而 mcp-client-go 就是这套协议在 Golang 语言下的客户端实现。
✨ mcp-client-go 能做什么?
✅ 支持主流的 MCP 服务端,如:
-
高德地图(Amap)
-
Google Maps
-
GitHub
-
PostgreSQL
-
AWS 知识库
-
Redis
-
Slack
-
图像生成(EverArt)
-
浏览器自动化(Puppeteer、Playwright)
✅ 提供统一的注册、管理、执行接口
✅ 支持动态环境变量注入
✅ 支持多个服务并发调用
使用示例
1️⃣ 安装依赖
go get github.com/yincongcyincong/mcp-client-go
2️⃣ 初始化 MCP 客户端配置
以高德地图为例:
conf := clients.InitMCPClient("npx-amap-maps-mcp-server", "npx", []string{
"AMAP_MAPS_API_KEY=" + AmapApiKey,
}, []string{
"-y",
"@amap/amap-maps-mcp-server",
}, nil, nil, nil)
3️⃣ 注册客户端
clients.RegisterMCPClient(ctx, []*param.MCPClientConf{conf})
4️⃣ 获取客户端并调用工具
client, err := clients.GetMCPClient(amap.NpxAmapMapsMcpServer)
if err != nil {
log.Fatal(err)
}
result, err := client.ExecTools(ctx, "maps_regeocode", map[string]interface{}{
"location": "116.481488,39.990464",
})
这个例子中,我们调用了高德地图的 maps_regeocode 工具,将经纬度转化为详细地址。
权限认证说明
调用 MCP 服务通常需要提供 access token 或者 API key,例如高德地图的 API KEY、GitHub 的 OAuth Token 等。
你可以通过环境变量的方式注入到 MCP Server 的运行环境中,mcp-client-go 已做了封装,十分方便。
支持的服务一览
| 服务 | 简介 |
|---|---|
| Amap(高德地图) | 地理位置查询、IP 定位、逆地理编码 |
| GitHub | 获取 PR、Issues、Repo 信息 |
| AWS KB | 通过 Bedrock 检索 AWS 文档 |
| Redis | 读写 Redis 数据库 |
| PostgreSQL | 查询数据库 |
| Firecrawl / Fetch | 抓取网页内容、转 Markdown |
| Slack | 与 Workspace 交互 |
| Playwright / Puppeteer | 浏览器自动化 |
| Flomo / Chatsum | 笔记记录、对话总结 |
完整列表可参考 官方仓库
为什么推荐 mcp-client-go?
-
如果你正在构建 AI Agent 系统,需要调取多个第三方 API,这个库是你的好帮手。
-
如果你希望服务统一接入管理,减少重复代码,它帮你节省大量工程时间。
-
如果你用 Golang 开发大模型周边服务(如 Agent、Chain、RAG 系统),它非常适配。
总结
在 Agent 和工具调用成为大模型能力延伸的时代,MCP 是链接 AI 与真实世界的重要协议。
而 mcp-client-go 正是让 Golang 开发者快速接入 MCP 的利器。
如果你对这个库感兴趣,欢迎前往 GitHub 点个 ⭐️:
github.com/yincongcyin…
你也可以在评论区留言,我会持续更新使用教程和实战案例~