待办列表服务

一个基于FastAPI和FastMCP的现代待办列表应用,提供完整的CRUD操作、任务统计和Gemini CLI集成。

  • by MuhammadShayanUmarX
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 MuhammadShayanUmarX/MCP-Server-using-fast-mcp

使用说明

使用快速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个示例待办事项:

  1. 学习FastAPI (待办)- 完成FastAPI教程
  2. 构建MCP服务器 (待处理)- 为Gemini CLI创建MCP服务器
  3. 测试集成 (待处理) - 使用MCP服务器测试FastAPI
  4. 部署应用程序 (已完成)- 部署到生产环境
  5. 编写文档 (待处理)- 创建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

🐛 故障排除

常见问题

  1. “无法连接到FastAPI”

    • 确保首先运行 FastAPI: python main.py
  2. “模块未找到:fastmcp”

    • 安装fastmcp: pip install fastmcp
  3. “端口8000已被占用”

    • 停止其他服务或更改端口 main.py
  4. MCP服务器无法连接

    • 检查 .gemini/settings.json 配置
    • 确保两台服务器都在运行

📈 统计示例

{
  "total_todos": 5,
  "completed_todos": 1,
  "pending_todos": 4,
  "completion_percentage": 20.0
}

🎉 成功!

📹 演示视频

一旦一切就绪,你将拥有:

  • ✅ FastAPI 正在为您服务的 todo API
  • ✅ MCP服务器已连接到FastAPI
  • ✅ Gemini CLI 能够管理您的待办事项
  • ✅ 实时待办事项统计
  • ✅ 自然语言待办事项管理

非常适合提高工作效率和任务追踪! 🚀(火箭/快速上升/加速的象征)