使用 Cloudflare Workers 和 D1 数据库的待办事项管理 MCP 服务器。
addTodo: 创建新的待办事项getTodos: 获取待办事项列表completeTodo: 标记待办事项为已完成markIncomplete: 标记待办事项为未完成deleteTodo: 删除待办事项npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-authless
cd my-mcp-server
# 创建 D1 数据库
wrangler d1 create todo-tasks-db
在 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"
}
]
}
创建 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
npm run cf-typegen
创建继承自 McpAgent 的 MCP 代理类,并实现待办事项管理工具。详情见 src/index.ts。
启动开发服务器:
npm run dev
在另一个终端中启动 MCP Inspector:
npx @modelcontextprotocol/inspector@latest
在浏览器中打开显示的端口,并在 MCP 服务器 URL 字段中输入 http://localhost:8787/mcp 进行测试。
npm run deploy
部署后,在 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 资源:
wrangler delete my-mcp-server
wrangler d1 delete todo-tasks-db
注意:删除 Worker 将自动删除关联的持久对象。
MIT
Yusuke Wada https://github.com/yusukebe