返回市场
待办事项-MCP服务器

待办事项-MCP服务器

作者:yusukebe4 星标更新:2025-05-30

项目介绍

待办事项管理 MCP 服务器

使用 Cloudflare Workers 和 D1 数据库的待办事项管理 MCP 服务器。

功能

  • addTodo: 创建新的待办事项
  • getTodos: 获取待办事项列表
  • completeTodo: 标记待办事项为已完成
  • markIncomplete: 标记待办事项为未完成
  • deleteTodo: 删除待办事项

配置

1. 创建项目

npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-authless
cd my-mcp-server

2. 创建 D1 数据库

# 创建 D1 数据库
wrangler d1 create todo-tasks-db

3. 配置 wrangler.jsonc

wrangler.jsonc 中添加创建的数据库 ID:

{
  "$schema": "node_modules/wrangler/config-schema.json",
  "name": "todo-mcp-server",
  "main": "src/index.ts",
  "compatibility_date": "2025-03-10",
  "compatibility_flags": ["nodejs_compat"],
  "d1_databases": [
    {
      "binding": "DB",
      "database_name": "todo-tasks-db",
      "database_id": "your-database-id-here"
    }
  ]
}

4. 创建数据库模式

创建 schema.sql 文件:

CREATE TABLE todos (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  title TEXT NOT NULL,
  completed BOOLEAN DEFAULT FALSE,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

应用模式到数据库:

# 应用到本地环境
wrangler d1 execute todo-tasks-db --file=./schema.sql --local

# 应用到远程环境
wrangler d1 execute todo-tasks-db --file=./schema.sql --remote

5. 生成类型

npm run cf-typegen

6. 实现 src/index.ts

创建继承自 McpAgent 的 MCP 代理类,并实现待办事项管理工具。详情见 src/index.ts

7. 本地测试

启动开发服务器:

npm run dev

在另一个终端中启动 MCP Inspector:

npx @modelcontextprotocol/inspector@latest

在浏览器中打开显示的端口,并在 MCP 服务器 URL 字段中输入 http://localhost:8787/mcp 进行测试。

8. 部署

npm run deploy

使用

Claude Desktop 使用

部署后,在 Claude Desktop 的配置文件 (~/Library/Application Support/Claude/claude_desktop_config.json) 中添加以下内容:

{
  "mcpServers": {
    "todo": {
      "command": "npx",
      "args": [
        "mcp-remote@latest",
        "https://your-worker-domain.workers.dev/mcp"
      ]
    }
  }
}

资源清理

要删除项目,请按照以下步骤删除 Cloudflare 资源:

1. 删除 Worker

wrangler delete my-mcp-server

2. 删除 D1 数据库

wrangler d1 delete todo-tasks-db

注意:删除 Worker 将自动删除关联的持久对象。

许可证

MIT

作者

Yusuke Wada https://github.com/yusukebe