README
🚀 使用 MCP 服务器构建的 Todo 应用
这是一个简单的 Todo 应用程序,它集成了自然语言处理(借助 Google Gemini API)、MongoDB 持久化存储以及 MCP 协议(用于实时更新的 Server-Sent Events),并基于 Express.js 采用模块化的 MVC 架构构建而成,能为用户提供便捷的待办事项管理体验。
✨ 主要特性
- 自然语言交互:可使用自然语言添加待办事项,例如“Add a task to buy milk”。
- 灵活列表展示:能列出所有待办事项,还可选择包含已完成的项。
- 便捷任务操作:可根据 MongoDB ID 将待办事项标记为完成,也能通过 MongoDB ID 删除待办事项。
- 实时更新体验:通过 Server-Sent Events (SSE) 和 MCP 协议接收实时更新。
📦 安装指南
先决条件
- Node.js(v18 或更高版本)
- MongoDB Atlas 集群(需要凭证)
- Google Gemini API Key(从 Google AI Studio 获取)
安装步骤
-
克隆仓库
git clone https://github.com/theatulanand/to-do-mcp-server.git cd todo-mcp-single -
安装依赖项
npm install -
设置环境变量
在根目录下创建一个
.env文件:PORT=3000 MONGO_URI=URI GEMINI_API_KEY=
💻 使用示例
运行应用程序
启动服务器:
npm start
你应该会看到:
连接到 MongoDB(通过 Mongoose)
服务器运行在 http://localhost:3000
要停止服务器,请按 Ctrl + C。
发送请求
向 /api/command 发送 POST 请求,请求体为 JSON 格式:
{ "command": "Add a task to buy milk" }
示例命令
-
添加:
curl -X POST http://localhost:3000/api/command -H "Content-Type: application/json" -d '{"command": "Add a task to buy milk"}' -
列出:
curl -X POST http://localhost:3000/api/command -H "Content-Type: application/json" -d '{"command": "List my todos"}' -
完成:
curl -X POST http://localhost:3000/api/command -H "Content-Type: application/json" -d '{"command": "Complete todo with ID some_mongodb_id"}' -
删除:
curl -X POST http://localhost:3000/api/command -H "Content-Type: application/json" -d '{"command": "Delete todo with ID some_mongodb_id"}' -
列出包含已完成的项:
curl -X POST http://localhost:3000/api/command -H "Content-Type: application/json" -d '{"command": "List my todos including completed"}'
实时更新(SSE)
连接到 /sse 以接收实时更新。(需要 MCP 兼容客户端。)
🔧 技术细节
技术栈
| 属性 | 详情 | |------|------| | 服务器运行时环境 | Node.js | | 路由和中间件 | Express.js | | 云 NoSQL 数据库 | MongoDB(Atlas) | | MongoDB 的对象文档映射器 | Mongoose | | 自然语言命令解析 | Google Gemini API | | MCP 集成和 SSE | @modelcontextprotocol/sdk | | 环境变量管理 | dotenv |
项目结构
todo-mcp-single/
├── models/ # Mongoose 模型
│ └── Todo.js
├── controllers/ # 业务逻辑
│ └── todoController.js
├── routes/ # API 路由
│ └── todoRoutes.js
├── utils/ # 工具函数(例如:与 Gemini 的交互)
└── index.js # 应用程序入口文件
📄 注意事项
⚠️ 重要提示
请确保 MongoDB 连接字符串 (
MONGO_URI) 和 Google Gemini API Key 配置正确。
💡 使用建议
如果需要处理大量数据或高并发请求,建议进行适当的性能优化和负载均衡配置。
通过以上步骤,你可以轻松搭建一个功能完善的 Todo 应用程序,并利用 MCP 协议实现实时更新。
扫码联系在线客服