modelcontextprotocol/servers 项目介绍
项目概述
modelcontextprotocol/servers 是 Model Context Protocol(MCP,模型上下文协议)的参考服务器实现集合,展示如何通过 MCP,让大语言模型(LLM)以安全、可控的方式访问外部工具和数据源。
对初次接触的读者,可以把 MCP 服务器理解为连接 AI 应用与具体能力的接口层:文件操作、Git 仓库访问、网页内容获取等能力由服务器提供,支持 MCP 的客户端负责接入和使用这些能力。
该仓库目前专注于维护由 MCP 指导小组维护的少量参考服务器。如果希望查找已发布的 MCP 服务器,应访问 MCP Registry。
| 项目信息 |
说明 |
| 仓库 |
modelcontextprotocol/servers |
| 主要语言 |
TypeScript,仓库也包含 Python 服务器 |
| Star 数 |
91,386,依据题目提供的数据 |
| 项目定位 |
展示 MCP 特性与官方 SDK 用法的参考实现 |
| 许可证 |
新贡献采用 Apache License 2.0,现有代码采用 MIT,具体以 LICENSE 为准 |
使用边界:README 明确说明,这些服务器用于教学和开发参考,并非生产就绪的解决方案。 开发者需要根据自己的威胁模型、使用场景和安全要求,评估并实现相应防护措施。
解决什么问题
大语言模型需要借助外部工具和数据,才能完成读取文件、查询仓库、获取网页内容等任务。本项目通过一组具体服务器,展示如何使用 MCP 为模型提供这些能力,并设置相应访问控制。
对于开发者,它主要回答两个问题:
- 如何接入现有能力: 将服务器配置到 Claude Desktop 等 MCP 客户端中,让客户端可以使用其提供的工具和数据。
- 如何实现自己的服务器: 通过参考代码学习 MCP 特性、官方 SDK 用法以及不同能力的实现方式。
核心技术架构与实现思路
客户端连接服务器,服务器提供具体能力
README 展示的基本使用关系是:
MCP 客户端 → MCP 服务器 → 工具或数据源
例如,Claude Desktop 可以连接 Filesystem 服务器访问允许目录中的文件,也可以连接 Git 服务器操作指定仓库。
在 README 的客户端配置示例中,每个服务器通过以下信息接入:
command:启动服务器的命令,例如 npx 或 uvx。
args:启动参数,例如软件包名称、允许访问的目录或 Git 仓库路径。
env:按需提供的环境变量,例如访问凭据。
因此,单独启动服务器只是准备步骤;通常还需要把它配置到 MCP 客户端中,才能实际使用其能力。
使用官方 SDK 实现服务器
项目中的服务器通常基于 MCP SDK 实现。README 列出了 C#、Go、Java、Kotlin、PHP、Python、Ruby、Rust、Swift 和 TypeScript 的官方 SDK。
这些 SDK 为不同语言的开发者提供实现 MCP 服务器的入口;该仓库则通过具体示例展示协议能力及 SDK 的使用方式。
通过不同服务器展示协议能力
参考实现覆盖了工具、资源和提示词等 MCP 能力。其中,Everything 明确用于集中展示和测试这些特性,其他服务器则围绕文件、网页、版本控制、记忆和时间等具体场景展开。
当前参考服务器
值得关注的技术特点
覆盖多种 MCP 能力
Everything 同时包含提示词、资源和工具,为学习 MCP 的不同能力提供了集中参考;其他服务器展示这些能力如何应用于具体任务。
展示访问控制的实现方向
Filesystem 支持配置允许访问的文件目录,README 的启动示例也明确传入了允许目录。开发者可以据此了解如何为文件访问划定范围,但仍需自行评估实际部署所需的安全措施。
提供基于知识图谱的持久化记忆示例
Memory 展示了使用知识图谱构建持久化记忆系统的方式。README 没有进一步介绍其内部数据结构、检索机制或性能指标,深入理解需要阅读对应实现。
支持便捷启动和客户端配置
TypeScript 服务器可以通过 npx 启动;Python 服务器可以通过 uvx 或 pip 使用,README 推荐使用 uvx 简化安装与运行。项目还提供了 Claude Desktop 配置示例和 Windows 下的命令适配说明。
README 未提供性能基准、吞吐量数据或与同类项目的系统性对比,其重点是功能演示与开发参考。
快速上手
启动 TypeScript 实现的 Memory 服务器:
npx -y @modelcontextprotocol/server-memory
启动 Python 实现的 Git 服务器:
uvx mcp-server-git
也可以通过 pip 安装并运行:
pip install mcp-server-git
python -m mcp_server_git
以 Claude Desktop 接入 Memory 为例,配置如下:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
Windows 下需要通过 cmd /c 调用 npx:
{
"mcpServers": {
"memory": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@modelcontextprotocol/server-memory"]
}
}
}
使用 Filesystem 或 Git 等服务器时,还需要按对应说明配置允许访问的目录或目标仓库路径。
归档状态与后续学习
部分早期参考服务器已迁移到 servers-archived,包括 GitHub、GitLab、PostgreSQL、SQLite、Puppeteer、Redis、Google Drive 等。README 中的部分客户端配置仍引用了这些已归档服务器,阅读时需要结合归档状态判断。
其中,Brave Search 已由其官方服务器替代,Slack 服务器目前由 Zencoder 维护。
继续学习可参考: