MCP服务器示例
此存储库包含用于教育目的的模型上下文协议(MCP)服务器的实现。此代码演示了如何构建一个可以与各种LLM客户端集成的功能性MCP服务器。
要遵循完整的教程,请参阅 YouTube视频教程.
什么是MCP?
MCP(模型上下文协议)是一种开放协议,它规范了应用程序如何向LLM提供上下文。将MCP想象成AI应用程序的USB-C端口——它提供了一种将AI模型连接到不同数据源和工具的标准化方法。
关键利益
- LLM可以直接插入的预构建集成列表越来越多
- 在LLM提供商和供应商之间灵活切换
- 在基础架构中保护数据的最佳实践
架构概述
MCP遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器:
- MCP主机:希望通过MCP访问数据的程序,如Claude Desktop、IDE或AI工具
- 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- 创建服务器实现文件:
touch main.py运行服务器
- 启动MCP服务器:
uv run main.py- 服务器将启动并准备接受连接
连接到克劳德桌面
- 从官方网站安装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 Desktop接收:
- 检查配置文件路径和权限
- 验证配置中的绝对路径是否正确
- 确保紫外线正确安装且易于接近
- 检查Claude Desktop日志中是否有任何错误消息
许可证
该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。
