这是一个简单的 Todo 应用程序,它集成了自然语言处理(借助 Google Gemini API)、MongoDB 持久化存储以及 MCP 协议(用于实时更新的 Server-Sent Events),并基于 Express.js 采用模块化的 MVC 架构构建而成,能为用户提供便捷的待办事项管理体验。
克隆仓库
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
以接收实时更新。(需要 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 协议实现实时更新。