使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 的服务器模板,旨在帮助开发者快速上手并构建自己的 MCP 服务器。它包含一个简单的“数字比大小”工具作为示例,展示了如何定义和注册工具,并通过 MCP 协议与客户端进行交互。
主要功能点
- 提供数字比较工具: 服务器实现了一个简单的工具,可以比较两个数字的大小,并返回比较结果。
- 基于FastMCP框架: 使用 'fastmcp' 库简化 MCP 服务器的开发,自动处理 JSON-RPC 协议和工具注册。
- 支持Stdio传输: 服务器默认使用 Stdio (标准输入输出) 作为传输协议,方便本地开发和调试。
- 提供客户端示例: 包含一个 Python 客户端示例 'openai_client.py',演示了如何使用 'openai-agents' 库与 MCP 服务器进行交互。
安装步骤
- 安装 uv 包管理器 (如果尚未安装):
curl -LsSf https://astral.sh/uv/install.sh | sh source ~/.local/bin/env - 安装 Python 3.10 (如果尚未安装):
uv python install 3.10 - 进入 'server' 目录并创建虚拟环境:
cd server uv venv --python 3.10 source .venv/bin/activate - 安装 'mcp' 库:
uv add "mcp[cli]" httpx - 进入 'client' 目录并创建虚拟环境:
cd ../client uv venv --python 3.10 source .venv/bin/activate - 安装 'openai-agents' 和 'python-dotenv' 库:
uv add openai-agents python-dotenv - (可选) 配置 OpenAI API Key:
- 在 'client' 目录下创建 '.env' 文件。
- 在 '.env' 文件中设置 'OPENAI_API_KEY' 环境变量,例如:'OPENAI_API_KEY=YOUR_API_KEY'。
- 如果不需要运行客户端示例,则可以跳过此步骤。
服务器配置
MCP 客户端需要配置服务器的启动命令 (command) 及其参数 (args) 才能连接到 MCP 服务器。以下是针对本项目 'server/math.py' 示例的服务器配置信息:
{ "server_name": "math", "command": "python", "args": ["math.py"] }
配置信息参数说明:
- 'server_name': 服务器名称,这里设置为 "math",与 'server/math.py' 中 'FastMCP("math")' 初始化时设置的名称一致。
- 'command': 启动服务器的命令,这里使用 'python' 命令来运行 Python 脚本。
- 'args': 启动命令的参数列表,这里指定要运行的服务器脚本为 'math.py'。
注意: 客户端在配置 MCP 服务器时,需要将以上 JSON 配置信息提供给客户端软件或 SDK,以便客户端能够正确启动和连接到 MCP 服务器。具体的配置方式取决于所使用的 MCP 客户端。
基本使用方法
-
启动 MCP 服务器:
- 进入 'server' 目录并激活虚拟环境 ('source .venv/bin/activate')。
- 运行以下命令启动 'math.py' 服务器 (使用 'mcp dev' 命令可以方便地进行本地开发和调试):
mcp dev math.py - 服务器启动后,会监听 Stdio,并等待客户端请求。
-
运行 MCP 客户端 (可选):
- 进入 'client' 目录并激活虚拟环境 ('source .venv/bin/activate')。
- (如果配置了 OpenAI API Key) 运行 'openai_client.py' 客户端示例:
python openai_client.py - 客户端示例代码 'openai_client.py' 演示了如何使用 'openai-agents' 库创建一个 Agent,并配置 'MCPServerStdio' 连接到本地运行的 MCP 服务器。Agent 可以利用 MCP 服务器提供的 "数字比较" 工具来辅助完成任务。
- 如果没有配置 OpenAI API Key 或不需要运行客户端示例,可以跳过此步骤。
通过以上步骤,您就可以体验基于此模板创建的 MCP 服务器,并理解如何定义和使用 MCP 工具。开发者可以基于此模板扩展更多工具,构建功能更强大的 MCP 服务器。
信息
分类
开发者工具