MCP 服务器示例
此代码库包含一个用于教学目的的模型上下文协议 (MCP) 服务器实现。此代码演示了如何构建一个可与各种 LLM 客户端集成的功能性 MCP 服务器。
要遵循完整的教程,请参阅YouTube 视频教程。
什么是 MCP?
MCP(模型上下文协议)是一种开放协议,它规范了应用程序向 LLM 提供上下文的方式。MCP 就像 AI 应用程序的 USB-C 端口一样,它提供了一种标准化的方式,将 AI 模型连接到不同的数据源和工具。
主要优点
- 越来越多的预建集成可供您的 LLM 直接插入
- 灵活地在 LLM 提供商和供应商之间切换
- 保护基础架构内数据的最佳实践
架构概述
MCP 遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器:
- MCP 主机:像 Claude Desktop、IDE 或 AI 工具这样的程序,需要通过 MCP 访问数据
- MCP 客户端:与服务器保持 1:1 连接的协议客户端
- MCP 服务器:通过标准化模型上下文协议公开特定功能的轻量级程序
- 数据源:MCP 服务器可以访问的本地(文件、数据库)和远程服务(API)
核心 MCP 概念
MCP 服务器可以提供三种主要类型的功能:
- 资源:客户端可以读取的类似文件的数据(例如 API 响应或文件内容)
- 工具:可由 LLM 调用的函数(经用户批准)
- 提示:预先编写的模板,帮助用户完成特定任务
系统要求
- Python 3.10 或更高版本
- MCP SDK 1.2.0 或更高版本
uv
包管理器
入门
安装 uv 包管理器
在 MacOS/Linux 上:
curl -LsSf https://astral.sh/uv/install.sh | sh
之后请确保重新启动终端以确保uv
命令被接收。
项目设置
- 创建并初始化项目:
# Create a new directory for our project
uv init mcp-server
cd mcp-server
# Create virtual environment and activate it
uv venv
source .venv/bin/activate # On Windows use: .venv\Scripts\activate
# Install dependencies
uv add "mcp[cli]" httpx
- 创建服务器实现文件:
运行服务器
- 启动 MCP 服务器:
- 服务器将启动并准备接受连接
连接到 Claude Desktop
- 从官方网站安装Claude Desktop
- 配置 Claude Desktop 以使用您的 MCP 服务器:
编辑~/Library/Application Support/Claude/claude_desktop_config.json
:
{
"mcpServers": {
"mcp-server": {
"command": "uv", # It's better to use the absolute path to the uv command
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/YOUR/mcp-server",
"run",
"main.py"
]
}
}
}
- 重启Claude桌面
故障排除
如果您的服务器未被 Claude Desktop 接收:
- 检查配置文件路径和权限
- 验证配置中的绝对路径是否正确
- 确保 uv 已正确安装并可访问
- 检查 Claude Desktop 日志中是否有任何错误消息
执照
本项目遵循 MIT 许可证。详情请参阅LICENSE文件。