待办事项MCP服务器

一个基于MCP协议的生产级待办事项服务器,支持创建、列表、检索、更新、删除和批量完成待办事项,适用于Vercel无服务器部署。

  • by bansal-harsh
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 bansal-harsh/mcp-todo

使用说明

全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.本地设置

  1. 克隆存储库:

    git clone https://github.com/your-user/todo-mcp-server.git
    cd todo-mcp-server
    
  2. 安装依赖项:

    npm install
    
  3. 配置环境变量:

    cp .env.example .env
    
    • 集 DATABASE_URL 到您的霓虹灯连接字符串(带 sslmode=require).
    • 可选设置 MCP_API_KEY 为本地身份验证设置一个秘密(或留空以在开发中禁用身份验证)。
  4. 运行数据库迁移(模式推送):

    npm run db:push
    
  5. 启动开发服务器:

    npm run dev
    

    终点:

    • GET /health
    • GET /.well-known/mcp
    • POST /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

  1. 将此仓库推送到GitHub。

  2. 将项目导入Vercel并连接GitHub仓库。

  3. 添加 DATABASE_URL 和 MCP_API_KEY 在Vercel项目设置中。

  4. 推至 main 以触发部署。

  5. 验证:

    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/