使用MCP服务器的FastAPI待办事项列表(2025)
一个使用FastAPI构建的现代待办事项列表应用程序,通过FastMCP与MCP(模型上下文协议)服务器集成,以实现Gemini CLI的交互。
🚀 特性
- ✅ 完成CRUD操作 为所有人
- 📊 表格/数据图表 统计端点 用于任务追踪
- 🔌(电源插头) MCP服务器 使用FastMCP(2025)
- 📝(一个待办事项或笔记的图标,可理解为“待办事项”或“笔记”) 预加载的模拟数据 (5项任务)
- 🤖 机器人 Gemini CLI 集成 准备好了
- 🎯(目标) 简单设置 仅需2个文件
📁 项目结构
fast-apimcp/
├── main.py # FastAPI application + MCP server
├── mcp_server.py # Modern MCP server using FastMCP
├── requirements.txt # Dependencies
├── .gemini/
│ └── settings.json # Gemini CLI configuration
└── README.md # This file🛠️ 安装
1. 安装依赖项
pip install -r requirements.txt2. 启动FastAPI服务器
python main.pyAPI将在以下地址可用:
- API 基础http://localhost:8000
- 文档http://localhost:8000/docs 翻译为中文是:“http://本地主机:8000/文档” 或者更简洁地表达为 “本地主机8000端口的文档页面”
- 统计数据端点http://localhost:8000/todos/stats 翻译为中文是:“本地主机8000端口的todos统计页面”。不过,通常我们不会直接翻译URL地址,而是根据其功能或内容来描述,比如“访问本地todos统计信息的网页”。但在这里,为了保持原样,直接翻译URL为“本地主机8000端口的todos统计页面”
3. 启动MCP服务器(终端2)
python mcp_server.py📊 API 接口点
| 方法 | 终点 | 描述 | |
|---|---|---|---|
| GET | (翻译为中文) | 获取 | / API信息及可用端点 |
| GET | (中文可译为“获取”或保持原样作为HTTP方法名) /todos | 获取所有待办事项 | |
| GET | /todos/stats | 获取待办事项统计信息 | |
| GET | (在中文中,这通常表示“获取”或“请求”资源的HTTP方法) /todos/{id} | 通过ID获取特定待办事项 | |
| POST | (可译为“发布”或根据上下文保持为“POST”) /todos | 创建新待办事项 | |
| PUT | (注:PUT在HTTP协议中表示一种请求方法,用于向服务器提交数据,但在此处仅作为原文的直接翻译,实际中文语境下可能不直接使用此术语) /todos/{id} | 更新现有待办事项 | |
| 删除 | /todos/{id} | 删除待办事项 |
🔌 MCP 服务器工具
MCP服务器为Gemini CLI提供了以下工具:
get_todos- 获取所有待办事项get_todo_stats- 获取统计数据(总数、已完成数、待处理数)create_todo- 创建新的待办事项update_todo- 更新现有的待办事项delete_todo- 删除待办事项get_todo_by_id- 获取特定待办事项的详细信息
🤖 Gemini CLI 集成
配置
该(或“这个”) .gemini/settings.json 文件配置Gemini CLI以连接到您的MCP服务器:
{
"mcpServers": {
"todo-mcp-server": {
"command": "python3",
"args": ["mcp_server.py"],
"cwd": "/home/okki/Desktop/projects/fast-apimcp"
}
}
}示例命令
一旦两个服务器都运行起来,你可以向Gemini CLI询问:
- “还剩多少任务?” → 获取待处理任务数量
- “显示我所有的待办事项” → 列出所有任务
- “创建一个名为‘审查代码’的新任务” → 添加新任务
- “将任务1标记为已完成” → 更新任务状态
- “删除任务3” → 移除任务
🧪 测试
直接测试 FastAPI
# Get all todos
curl http://localhost:8000/todos
# Get statistics
curl http://localhost:8000/todos/stats
# Create a new todo
curl -X POST "http://localhost:8000/todos" \
-H "Content-Type: application/json" \
-d '{"title": "Test Todo", "description": "Created via curl"}'测试MCP服务器
python mcp_server.py这将测试连接并显示当前的任务。
📝 虚拟数据
该应用程序预装了5个虚拟待办事项:
- 学习FastAPI (待处理)- 完成 FastAPI 教程
- 构建MCP服务器 (待处理)- 为Gemini CLI创建MCP服务器
- 测试集成 (待处理)- 使用MCP服务器测试FastAPI
- 部署应用程序 (已完成)- 部署到生产环境
- 编写文档 (pending) - 创建API文档
🔧 技术栈
- FastAPI(快速API) - 现代Python网络框架
- FastMCP - 现代MCP服务器库(2025)
- Pydantic(注:这是一个专有名词,通常不翻译,直接保留原样,表示一个用于数据验证和设置的Python库) - 数据验证和序列化
- Uvicorn(乌维康,但通常直接音译为“Uvicorn”) - ASGI服务器
- httpx(注:这是一个技术术语或特定工具的名称,直接翻译为中文即为“httpx”,在中文语境下通常保持原样使用,不进行额外翻译。) - 异步HTTP客户端
🎯 快速启动命令
# Install dependencies
pip install -r requirements.txt
# Start FastAPI (Terminal 1)
python main.py
# Start MCP Server (Terminal 2)
python mcp_server.py
# Test API
curl http://localhost:8000/todos/stats🐛 故障排除
常见问题
- “无法连接到 FastAPI”
- 确保首先运行 FastAPI: python main.py
- “模块未找到:fastmcp”
- 安装fastmcp: pip install fastmcp
- “端口8000已被占用”
- 停止其他服务或更改端口 main.py
- MCP服务器无法连接
- 检查 .gemini/settings.json 配置 - 确保两台服务器都在运行
📈 统计学示例
{
"total_todos": 5,
"completed_todos": 1,
"pending_todos": 4,
"completion_percentage": 20.0
}🎉 成功了!
📹 演示视频
观看演示视频: 使用MCP服务器的FastAPI待办事项列表演示
一旦一切就绪,你将拥有:
- ✅ FastAPI 为您的待办事项 API 提供服务
- ✅ MCP服务器已连接到FastAPI
- ✅ Gemini CLI 能够管理您的待办事项
- ✅ 实时待办事项统计
- ✅ 自然语言待办事项管理
非常适合提高工作效率和任务追踪! 🚀
