使用说明
全MCP服务器
这个项目是 生产就绪的MCP(模型上下文协议)服务器 对于待办事项应用程序,在中实现 TypeScript 并可作为 Vercel无服务器功能.
服务器使用 荣誉 对于HTTP路由, 霓虹灯Postgres 随着 淋ORM 用于持久性,并公开MCP工具 可流式传输的HTTP 上 POST /mcp。它旨在供MCP兼容客户端使用,例如 克劳德桌面版.
1.概述
此服务器公开了一组MCP工具,用于创建、列出、检索、更新、删除和批量完成待办事项。每个工具都有一个Postgres支持 todos 表,并通过验证 黄道带.
2.先决条件
- Node.js 20.x
- npm(包含在Node 20中)
- Neon Postgres帐户和数据库
- Vercel帐户(用于部署)
- GitHub帐户(用于Vercel的CI/CD)
3.本地设置
-
克隆存储库:
git clone https://github.com/your-user/todo-mcp-server.git cd todo-mcp-server -
安装依赖项:
npm install -
配置环境变量:
cp .env.example .env- 集
DATABASE_URL到您的霓虹灯连接字符串(带sslmode=require). - 可选设置
MCP_API_KEY为本地身份验证设置一个秘密(或留空以在开发中禁用身份验证)。
- 集
-
运行数据库迁移(模式推送):
npm run db:push -
启动开发服务器:
npm run dev终点:
GET /healthGET /.well-known/mcpPOST /mcp(适用于MCP客户)
4.环境变量
| 名称 | 必填 | 描述 |
|---|---|---|
DATABASE_URL |
Yes | Neon的Postgres连接字符串(例如。 postgres://user:pass@ep-xxx.neon.tech/neondb?sslmode=require). |
MCP_API_KEY |
中不需要 | API密钥 x-api-key。如果省略,则禁用auth(dev模式,记录警告)。 |
5.部署到Vercel
-
将此仓库推送到GitHub。
-
将项目导入Vercel并连接GitHub仓库。
-
添加
DATABASE_URL和MCP_API_KEY在Vercel项目设置中。 -
推至
main以触发部署。 -
验证:
curl https://your-project.vercel.app/health curl https://your-project.vercel.app/.well-known/mcp
6.连接到克劳德桌面
将此添加到您的Claude MCP配置中(例如。 claude_desktop_config.json):
{
"mcpServers": {
"todo": {
"url": "https://YOUR-PROJECT.vercel.app/mcp",
"headers": { "x-api-key": "your-key" }
}
}
}
- 替换
YOUR-PROJECT使用您的Vercel域名。 - 替换
"your-key"和你一起MCP_API_KEY价值。
7.可用工具
所有工具均已归还 { "success": true, "data": ... } 或 { "success": false, "error": "message" }.
| 工具名称 | 描述 | 输入参数 |
|---|---|---|
create_todo |
创建新的待办事项。 | title (字符串,必填), description (字符串,可选), priority ("low" | "medium" | "high",可选,默认 "medium"), due_date (ISO 8601字符串,可选)。 |
list_todos |
使用可选过滤器列出待办事项。 | status ("pending" | "completed" | "archived"可选), priority ("low" | "medium" | "high"可选), limit (数字1–100,可选,默认值20)。 |
get_todo |
按id获取单个待办事项 | id (字符串,必填)。 |
update_todo |
更新现有待办事项的字段 | id (字符串,必填),加上以下至少一项: title, description, status ("pending" | "completed" | "archived"), priority ("low" | "medium" | "high"), due_date (ISO 8601)。 |
delete_todo |
按id删除待办事项 | id (字符串,必填)。 |
bulk_complete |
将多个待办事项标记为一次完成。 | ids (字符串数组,必填,长度1-50)。 |
8.API终点
GET /health--无身份验证,返回{ status, tools, timestamp }.GET /.well-known/mcp--无身份验证,返回MCP元数据{ name, version, transport, endpoint }.POST /mcp--MCP可流式HTTP端点,需要x-api-key如果MCP_API_KEY已设置。ALL /mcp(非POST)--返回405 Method Not Allowed.
9.数据库迁移
- 架构文件:
src/db/schema.ts - 配置:
drizzle.config.ts
跑步
npm run db:push
npm run db:studio
运行于http://localhost:3000/