使用说明
Todo 应用 - 从 FastAPI 到 MCP 的转换
这个项目展示了如何创建一个FastAPI待办事项应用程序,并将其转换为MCP(模型上下文协议)服务器。
项目结构
├── main.py # FastAPI application
├── models.py # Pydantic models for data validation
├── database.py # In-memory database operations
├── mcp_server.py # MCP server implementation
├── mcp_config.json # MCP server configuration
├── test_mcp.py # Test script for MCP server
├── requirements.txt # Python dependencies
└── README.md # This file
特点/功能
FastAPI 应用程序
- 用于待办事项管理的RESTful API终端
- CRUD操作(创建、读取、更新、删除)
- 使用 Pydantic 模型进行数据验证
- 为简化而采用的内存存储
MCP 服务器
- 将FastAPI功能转换为MCP工具
- 5个可用工具:列出待办事项、获取待办事项、创建待办事项、更新待办事项、删除待办事项
- 兼容MCP客户端和AI助手
安装
- 创建并激活虚拟环境:
python -m venv venv
# On Windows:
.\venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
- 安装依赖项:
pip install -r requirements.txt
用法
运行 FastAPI 应用程序
python main.py
API将在以下位置提供 http://localhost:8000
API 端点:
GET /- 欢迎信息GET /todos- 列出所有待办事项GET /todos/{id}- 获取特定待办事项POST /todos- 创建新的待办事项PUT /todos/{id}- 更新待办事项DELETE /todos/{id}- 删除待办事项
运行MCP服务器
python mcp_server.py
MCP服务器提供以下工具:
list_todos- 获取所有待办事项get_todo- 通过ID获取特定待办事项create_todo- 创建新的待办事项update_todo- 更新现有的待办事项delete_todo- 删除待办事项
测试MCP服务器
python test_mcp.py
这将对所有MCP服务器的功能进行全面测试。
API 示例
FastAPI 示例
创建一个待办事项:
curl -X POST "http://localhost:8000/todos" \
-H "Content-Type: application/json" \
-d '{"title": "Learn MCP", "description": "Study Model Context Protocol", "status": "pending"}'
获取所有待办事项:
curl "http://localhost:8000/todos"
MCP工具示例
MCP服务器可以与MCP兼容的客户端一起使用。这些工具接受JSON参数并返回结构化响应。
数据模型
全部模型
id整数(自动生成)title字符串(必填)description字符串(可选)status枚举(待处理、进行中、已完成)created_atDateTime(自动生成)updated_at日期时间(自动更新)
状态值
pendingTodo 未开始in_progress所有事情都在进行中completed一切都完成了
发展
该项目使用:
- FastAPI(快速API框架) 对于REST API
- Pydantic 用于数据验证
- MCP(Minimum Change Perception) 对于协议服务器
- `asyncio` 翻译成中文是“异步I/O”。它是Python中的一个库,用于编写并发代码,使用协程(coroutine)来实现异步编程。 用于异步操作
备注
- 该数据库是内存数据库,应用程序重启时会重置
- MCP服务器以stdio模式运行,便于集成
- FastAPI 应用和 MCP 服务器共享相同的数据模型和业务逻辑
