使用说明
简单MCP服务器
使用FastMCP构建的简单模型上下文协议(MCP)服务器,具有三个实用工具。
工具
- generateuuid -生成随机UUID(版本4或1)
- 转换器温度 -在摄氏度和华氏度之间转换温度
- text_统计 -计算基本文本统计信息(字符、单词、行)
安装
使用uv安装依赖项:
uv sync
用法
运行服务器
使用HTTP传输启动MCP服务器:
uv run server.py
服务器将于启动 http://localhost:8000/mcp 默认情况下。
使用FastMCP客户端进行测试
运行基于FastMCP的客户端:
uv run client_fastmcp.py
使用httpx客户端进行测试
运行纯httpx客户端(不需要MCP库):
uv run client_httpx.py
使用curl客户端进行测试
只使用curl和jq运行bash脚本:
./client_curl.sh
curl客户端要求:
curl(用于HTTP请求)jq(用于JSON解析)- 标准Unix工具(
grep,sed,awk,tr)
项目结构
server.py-带三个实用工具的MCP服务器client_fastmcp.py-使用FastMCP库的客户端client_httpx.py-客户端仅使用httpx进行直接HTTP请求client_curl.sh-使用curl和jq的Bash脚本客户端main.py-原始模板文件(未使用)
输出示例
这三个客户将:
- 连接到服务器
- 列出可用工具
- 测试generate_uid(生成uuid v4)
- 测试转换器温度(将0°C转换为华氏度→ 32.0°F)
- 测试文本统计(统计示例文本中的字符、单词和行)
例子:
Test 1: Generate UUID
Result: 98f99e94-7357-4dd4-85eb-76819fad3ada
Test 2: Convert temperature (0°C to Fahrenheit)
Result: 32.0
Test 3: Text statistics
Result: {"characters":47,"words":9,"lines":3}
技术细节
- 运输:流式HTTP(基于HTTP的MCP协议)
- 端点:
/mcp - 响应格式:服务器发送事件(SSE)
- 会话管理:服务器通过以下方式分配会话ID
Mcp-Session-Id头球
客户端实现
-
FastMCP客户端 (
client_fastmcp.py):- 使用官方MCP Python SDK
- 自动处理SSE
- 完全协议支持
-
httpx客户端 (
client_httpx.py):- 纯Python,仅依赖httpx
- 手动JSON-RPC实现
- 自定义SSE解析
-
curl客户端 (
client_curl.sh):- 使用curl和jq的Bash脚本
- 演示原始HTTP请求
- 不需要Python依赖项
需求
- Python 3.13+
- fastmcp
- httpx(包含在fastmcp依赖项中)
