
Building a Simple MCP Server in Python Using the MCP Python SDK

2025.04.18
0
ShellLLM 上下文管理模块化开发快速原型开发效率
Simple-MCP-Server-with-Python 是一个基于 Python 和 MCP Python SDK 构建的简单 MCP 服务器。它遵循模型上下文协议(MCP),为大型语言模型(LLM)提供上下文数据、功能和交互模板。该服务器支持暴露资源、定义工具和创建提示,使 LLM 应用能够以安全和模块化的方式访问数据和功能。
View on GitHub
Overview
基本能力
产品定位
Simple-MCP-Server-with-Python 是一个用于为大型语言模型(LLM)提供上下文数据、功能和交互模板的服务器。它通过 MCP 协议标准化了应用程序与 LLM 之间的接口,使开发者能够分离上下文提供、代码执行和用户交互管理的关注点。
核心功能
- 暴露资源(Resources):提供只读数据端点,供 LLM 上下文使用。
- 定义工具(Tools):提供功能函数,允许 LLM 执行计算或操作(如 API 调用、数据更新)。
- 创建提示(Prompts):提供可重用的交互模板,用于结构化对话。
- 动态更新:支持运行时动态更新工具、资源和提示列表。
- 订阅机制:允许客户端注册以接收资源数据变化的更新。
适用场景
- LLM 应用开发:为 LLM 提供上下文数据和功能扩展。
- 模块化开发:分离数据、功能和交互逻辑,便于维护和扩展。
- 快速原型开发:通过 MCP Inspector 快速测试和调试工具、资源和提示。
- 教育演示:学习 MCP 协议和 LLM 上下文管理的入门示例。
工具列表
- add 工具:执行两个数字的加法运算。
- greeting 资源:根据提供的名称生成个性化的问候语。
- review_code 提示:提供代码审查的交互模板。
常见问题解答
- 服务器启动后无响应:这是因为服务器默认使用 STDIO 传输,需要客户端连接才能交互。使用 MCP Inspector 或自定义客户端进行测试。
- 工具未显示在 Inspector 中:确保工具已正确注册并检查服务器日志。
- 依赖安装问题:确保使用 Python 3.7+ 和正确的虚拟环境。
使用教程
使用依赖
- Python 3.7+(推荐 3.11 或更高版本)
- pip(Python 包安装工具)
- Node.js 18.x(用于 MCP Inspector)
安装命令:
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update
sudo apt install -y python3.11 python3.11-venv python3.11-distutils python3-apt
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2
sudo update-alternatives --config python3
curl -sS https://bootstrap.pypa.io/get-pip.py | sudo python3.11
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get update
sudo apt-get install -y nodejs
安装教程
- 创建并激活虚拟环境:
python3 -m venv .venv
source .venv/bin/activate
- 安装 MCP Python SDK:
pip install "mcp[cli]"
或使用 requirements.txt
:
echo "mcp[cli]" > requirements.txt
pip install -r requirements.txt
调试方式
- 使用 MCP Inspector 进行交互式调试:
mcp dev server.py
- 使用自定义客户端测试工具调用:
python server.py
# 在另一个终端中运行
python client.py
- 检查服务器日志以排查问题。