使用说明
使用快速MCP的MCP服务器
一个使用FastAPI构建的现代待办事项列表应用程序,通过FastMCP与MCP(模型上下文协议)服务器集成,以实现Gemini CLI交互。 观看演示视频: MCP服务器演示
🚀 特性
- ✅ 完成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.txt
2. 启动FastAPI服务器
python main.py
API将在以下位置提供:
- API基础http://localhost:8000
- 文档http://localhost:8000/docs 翻译为中文是:“本地主机:8000 端口的文档页面”。不过,通常我们不会直接翻译网址,而是说明其访问方式或用途,比如“访问本地开发服务器的文档页面,地址为 http://localhost:8000/docs”。但在这里,按照您的要求,直接翻译网址部分即为上述表述
- **统计数据终端(或统计端点)**http://localhost:8000/todos/stats 翻译为中文是:“本地主机8000端口的todos统计页面”
3. 启动MCP服务器(终端2)
python mcp_server.py
📊 API 接口端点
| 方法 | 终点 | 描述 |
|---|---|---|
| GET | (HTTP方法“获取”) / API信息和可用的终端节点 |
|
| GET | (译文: | 获取 |
| GET | (译文: | GET |
| GET | (译文保持原样,因为“GET”是HTTP协议中的一个动词,表示获取资源,无需翻译) /todos/{id} |
通过ID获取特定待办事项 |
| 帖子 | /todos |
创建新待办事项 |
| PUT | (注:PUT是HTTP协议中的一个方法,用于向服务器发送数据,但在此处作为独立词汇翻译时,通常不直接翻译,可保持原样或根据上下文解释为“HTTP的PUT方法”。若需更具体的翻译,需结合上下文。) /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
- 部署应用程序 (已完成)- 部署到生产环境
- 编写文档 (待处理)- 创建API文档
🔧 技术栈
- FastAPI - 现代Python网络框架
- FastMCP - 现代MCP服务器库(2025)
- Pydantic(注:这是一个专有名词,通常不进行翻译,直接保留原样,但在此处为符合中文表达习惯,可简单说明其为一种Python库的名称) - 数据验证和序列化
- Uvicorn(注:Uvicorn是一个用于构建ASGI服务器的Python库,直接翻译可能无具体含义,但在此保留原英文以指明其专有名词性质,若需意译可结合上下文,如“Uvicorn服务器库”等) - ASGI 服务器
- httpx(注:httpx通常指的是一种用于HTTP请求的工具或库,但在此处作为单独词汇翻译时,直接保留原样,因其在中文语境下没有直接对应的中文翻译) - 异步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
- 确保首先运行 FastAPI:
-
“模块未找到:fastmcp”
- 安装fastmcp:
pip install fastmcp
- 安装fastmcp:
-
“端口8000已被占用”
- 停止其他服务或更改端口
main.py
- 停止其他服务或更改端口
-
MCP服务器无法连接
- 检查
.gemini/settings.json配置 - 确保两台服务器都在运行
- 检查
📈 统计示例
{
"total_todos": 5,
"completed_todos": 1,
"pending_todos": 4,
"completion_percentage": 20.0
}
🎉 成功!
📹 演示视频
一旦一切就绪,你将拥有:
- ✅ FastAPI 正在为您服务的 todo API
- ✅ MCP服务器已连接到FastAPI
- ✅ Gemini CLI 能够管理您的待办事项
- ✅ 实时待办事项统计
- ✅ 自然语言待办事项管理
非常适合提高工作效率和任务追踪! 🚀(火箭/快速上升/加速的象征)
