Repolode
mark3labs

mark3labs/mcp-go

Go 语言实现的 Model Context Protocol(MCP)库,用于构建向 LLM 应用暴露工具、资源和提示词的服务端。

Star
9,181
Fork
910
未关闭 Issue
23
最近提交
2小时前

这是什么?

mcp-go 是一个 Go 语言库,用于构建遵循 Model Context Protocol(MCP)的服务端。MCP 是一套把 LLM 应用连接到外部数据源和工具的标准协议。开发者只需用处理函数注册工具、资源和提示词,并启动服务,协议细节和服务管理由库处理。

该库支持 stdio、SSE 和 streamable-HTTP 三种传输方式,提供带类型的工具处理函数、用于长时间运行任务的异步工具、按会话定制工具与过滤的会话管理,以及工具和提示词处理的中间件。此外还支持 OAuth 受保护资源元数据、面向浏览器客户端的 CORS 配置,以及本地 HTTP 服务的 DNS 重绑定防护。

项目实现了 MCP 2025-11-25 规范,并向后兼容多个早期协议版本。项目仍在积极开发中,部分高级能力尚在完善。

核心功能

  • 01通过简单的处理函数注册工具、资源、资源模板和提示词。
  • 02支持 stdio、SSE 和 streamable-HTTP 三种传输方式。
  • 03提供异步工具,支持长时间任务并通过轮询获取结果。
  • 04支持按会话定制工具、工具过滤以及向指定客户端发送通知。
  • 05为工具和提示词处理提供中间件,并可从 panic 中恢复。
  • 06HTTP 传输内置 OAuth 受保护资源元数据和 CORS 配置。

适用场景

  • 将内部 API 或数据库查询封装为 LLM 智能体可调用的工具。
  • 用 Go 构建 MCP 服务,让 AI 助手访问文件或系统信息。
  • 通过 HTTP 为多个已连接客户端提供按用户定制的工具和数据。
  • 借助 net/http 路由或其他框架,为现有 Go 服务增加 MCP 支持。

快速上手

  1. 1

    使用 go get 安装该库

    go get github.com/mark3labs/mcp-go
  2. 2

    使用快速入门代码创建服务器文件(例如调用 server.ServeStdio 的 main.go)

使用前须知

  • 项目声明仍在积极开发中,部分高级 MCP 功能尚未完成。

标签

常见问题

mcp-go 是什么?
Go 语言实现的 Model Context Protocol(MCP)库,用于构建向 LLM 应用暴露工具、资源和提示词的服务端。 mcp-go 是一个 Go 语言库,用于构建遵循 Model Context Protocol(MCP)的服务端。MCP 是一套把 LLM 应用连接到外部数据源和工具的标准协议。开发者只需用处理函数注册工具、资源和提示词,并启动服务,协议细节和服务管理由库处理。
mcp-go 可以免费使用吗?用的什么许可证?
mcp-go 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
mcp-go 还在维护吗?
活跃维护中。mcp-go 最近一次提交是在 2026年10月22日。
mcp-go 适合用来做什么?
将内部 API 或数据库查询封装为 LLM 智能体可调用的工具。 用 Go 构建 MCP 服务,让 AI 助手访问文件或系统信息。 通过 HTTP 为多个已连接客户端提供按用户定制的工具和数据。 借助 net/http 路由或其他框架,为现有 Go 服务增加 MCP 支持。
mcp-go 怎么安装和运行?
使用 go get 安装该库: go get github.com/mark3labs/mcp-go 使用快速入门代码创建服务器文件(例如调用 server.ServeStdio 的 main.go)
在哪里获取 mcp-go?
源代码和安装说明在 GitHub 上:https://github.com/mark3labs/mcp-go

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目