待办事项应用转换工具

一个将FastAPI待办事项应用转换为MCP(Model Context Protocol)服务器的工具,提供CRUD操作和MCP兼容性。

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

使用说明

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助手

安装

  1. 创建并激活虚拟环境:
python -m venv venv
# On Windows:
.\venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
  1. 安装依赖项:
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 服务器共享相同的数据模型和业务逻辑

MCP-服务器