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

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

site icon
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 之间的接口,使开发者能够分离上下文提供、代码执行和用户交互管理的关注点。

核心功能

  1. 暴露资源(Resources):提供只读数据端点,供 LLM 上下文使用。
  2. 定义工具(Tools):提供功能函数,允许 LLM 执行计算或操作(如 API 调用、数据更新)。
  3. 创建提示(Prompts):提供可重用的交互模板,用于结构化对话。
  4. 动态更新:支持运行时动态更新工具、资源和提示列表。
  5. 订阅机制:允许客户端注册以接收资源数据变化的更新。

适用场景

  1. LLM 应用开发:为 LLM 提供上下文数据和功能扩展。
  2. 模块化开发:分离数据、功能和交互逻辑,便于维护和扩展。
  3. 快速原型开发:通过 MCP Inspector 快速测试和调试工具、资源和提示。
  4. 教育演示:学习 MCP 协议和 LLM 上下文管理的入门示例。

工具列表

  1. add 工具:执行两个数字的加法运算。
  2. greeting 资源:根据提供的名称生成个性化的问候语。
  3. review_code 提示:提供代码审查的交互模板。

常见问题解答

  1. 服务器启动后无响应:这是因为服务器默认使用 STDIO 传输,需要客户端连接才能交互。使用 MCP Inspector 或自定义客户端进行测试。
  2. 工具未显示在 Inspector 中:确保工具已正确注册并检查服务器日志。
  3. 依赖安装问题:确保使用 Python 3.7+ 和正确的虚拟环境。

使用教程

使用依赖

  1. Python 3.7+(推荐 3.11 或更高版本)
  2. pip(Python 包安装工具)
  3. 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

安装教程

  1. 创建并激活虚拟环境:
python3 -m venv .venv
source .venv/bin/activate
  1. 安装 MCP Python SDK:
pip install "mcp[cli]"

或使用 requirements.txt

echo "mcp[cli]" > requirements.txt
pip install -r requirements.txt

调试方式

  1. 使用 MCP Inspector 进行交互式调试:
mcp dev server.py
  1. 使用自定义客户端测试工具调用:
python server.py
# 在另一个终端中运行
python client.py
  1. 检查服务器日志以排查问题。

许可证

该项目遵循 None 开源许可条款。