WipTasks MCP服务器
用于管理任务的远程MCP(模型上下文协议)服务器——由Supabase支持,部署在Railway上,连接到Claude。
建筑
Claude (Web / Desktop / Code)
|
| MCP protocol (HTTP + bearer auth)
v
MCP Server (Railway / Node.js)
|
| HTTP + service_role key
v
Edge Function (Supabase)
|
v
PostgreSQL (Supabase)可用工具
| 工具 | 说明 |
|---|---|
get_active_tasks | 获取所有具有状态的任务 active 或 new,按优先级排序 |
get_last_task | 获取最近更新的任务 |
get_task_by_id | 通过UUID获取特定任务 |
get_all_tasks | 获取所有任务,可选择按状态筛选 |
create_task | 创建新任务 |
update_task | 更新任务上的任何字段 |
complete_task | 将任务标记为已完成 |
archive_task | 存档任务 |
安装指南
先决条件
- 20+
- Supabase 帐户(免费版有效)
- 铁路 帐户(免费版有效)
- Supabase命令行界面 (用于部署边缘功能)
步骤1:创建一个Supabase项目
- 首选 suabase.com/dashboard
- 点击 新项目
- 选择一个名称,设置数据库密码,选择一个地区
- 等待项目初始化
步骤2:运行SQL迁移
- 在您的Supabase仪表板中,转到 SQL 编辑器
- 粘贴以下内容
supabase/migrations/001_create_wiptasks.sql - 点击 跑
这将创建 wiptasks 表中包含所有列、约束和RLS策略。
步骤3:部署边缘功能
# Login to Supabase CLI
supabase login
# Link to your project (find your project ref in the Supabase dashboard URL)
supabase link --project-ref
# Deploy the edge function
supabase functions deploy wiptasks-api --no-verify-jwt这 --no-verify-jwt 需要标志,因为MCP服务器直接使用服务角色密钥进行身份验证。
步骤4:将MCP服务器部署到Railway
# Install Railway CLI
npm install -g @railway/cli
# Login
railway login
# Create a new project
railway init
# Deploy
railway up或者通过Docker部署——仓库包括 Dockerfile.
步骤5:设置环境变量
在您的铁路仪表板中,转到您的服务> 变量 并添加:
| 变量 | 值 |
|---|---|
SUPABASE_URL | 您的Supabase项目URL(例如。 https://abcdef.supabase.co) |
SUPABASE_KEY | 你的Supabase service_role 密钥(可在“设置”>“API”中找到) |
MCP_SECRET | 用于承载身份验证的随机秘密(见步骤6) |
SERVER_URL | 您的铁路公共URL(例如。 https://your-app.up.railway.app)--OAuth需要 |
步骤6:生成MCP_SECRET
openssl rand -hex 32复制输出并将其设置为 MCP_SECRET 在铁路。连接Claude时也将使用此值。
第7步:联系克劳德
部署后,Railway会为您提供一个公共URL(例如。 https://your-app.up.railway.app).使用该URL+您的 MCP_SECRET 连接。
Claude Web应用程序(OAuth)
- 首选 设置 > 连接器
- 点击 添加连接器
- 填写:
- 姓名: WipTasksMCP - 网址: https:///mcp
- 点击 添加 --Claude将打开一个授权页面
- 输入你的
MCP_SECRET然后单击 授权 - 完成——连接器现在通过OAuth进行身份验证
克劳德代码
添加 .mcp.json 在项目根目录中:
{
"mcpServers": {
"wiptasks": {
"type": "url",
"url": "https:///mcp",
"headers": {
"Authorization": "Bearer "
}
}
}
}然后重新启动Claude Code。
克劳德桌面
添加 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"wiptasks": {
"type": "url",
"url": "https:///mcp",
"headers": {
"Authorization": "Bearer "
}
}
}
}认证
服务器支持两种身份验证方法:
- OAuth 2.1 (Claude Web App)——授权码+PKCE流程。服务器充当自己的OAuth提供者。通过web应用程序连接时,您将被重定向到登录页面,在那里您可以输入您的
MCP_SECRET.
- 持有者令牌 (克劳德代码/桌面)--简单
Authorization: Bearer头球在中配置.mcp.json或claude_desktop_config.json.
这两种方法都能保护所有 /mcp 路线。这 /health 端点已打开。OAuth端点(/.well-known/oauth-authorization-server, /authorize, /token, /register)设计上也是开放的。
任务架构
| 字段 | 类型 | 描述 |
|---|---|---|
id | uuid | 自动生成的唯一ID |
task_name | string | 任务名称(必填) |
description | text | 详细说明 |
priority | int(0-100) | 优先级,默认为50 |
current_status | enum | new, active, completed, archived, canceled, deleted, expired |
type | enum | homo (人类)或 robo (自动) |
agent | string | 分配的代理(必需) |
helpers | string\[\] | 辅助代理 |
hashtag | string\[\] | 标签/标签 |
expiry_date | 日期 | 任务到期时(YYYY-MM-DD) |
reminder | enum | hourly, weekly, monthly, custom |
events | jsonb | 事件日志数组 |
created_at | timestamp | 创建时自动设置 |
updated_at | timestamp | 更改时自动更新 |
本地开发
# Clone the repo
git clone https://github.com//wiptasks-mcp.git
cd wiptasks-mcp
# Install dependencies
npm install
# Copy env template and fill in your values
cp .env.example .env
# Start the server
node index.js服务器运行在 http://localhost:3000.测试它:
# Health check
curl http://localhost:3000/health
# Authenticated MCP request
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer " \
-d '{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'许可证
麻省理工学院
