生产力MCP服务器
一个轻量级、高性能的模型上下文协议(MCP)服务器,内置于Go中,用于Productivity Tool App。此服务器使Claude Desktop、Claude iOS和web Claude能够直接从您的生产力应用程序创建任务、目标和分析生产力数据。
特性
- MCP协议支持 --Claude集成的完整模型上下文协议实现
- 任务管理 -通过REST API或MCP创建、更新和管理任务
- 目标跟踪 --制定并跟踪长期目标
- Claude AI集成 --解析自然语言,生成子任务,分析生产力
- Supabase后端 --与PostgreSQL云同步数据
- 实时同步 --更改在所有设备上立即同步
- 轻量级 --~15MB二进制文件,最小依赖,快速启动
建筑
Claude Desktop/iOS
↓
MCP Protocol
↓
Go MCP Server (this)
↓
Supabase Database
↓
Productivity App文档
看 docs/README.md 获取完整的文档索引。
快速链接:
- TODO.md -当前任务列表和优先级
- 设置指南 -Supabase,铁路设置
- 集成指南 -Webapp集成
- Claude桌面设置 -MCP服务器配置
- 存储库结构 -目录布局
快速开始
先决条件
- 上涨1.18或更高
- 使用凭据支持帐户
- Claude API密钥(用于AI功能)
安装
- 克隆存储库:
git clone
cd productivity_mcp_server- 复制环境文件:
cp .env.example .env- 更新
.env使用您的凭据:
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your-anon-key
CLAUDE_API_KEY=sk-ant-your-api-key
PORT=8000- 下载依赖关系:
go mod download- 运行服务器:
go run main.goGit挂钩
克隆后配置一次仓库范围的git挂钩:
bash scripts/setup-hooks.sh预提交钩子运行 gofmt/go test ./... on stage Go文件+ pnpm lint 在生产力工具应用程序中,这样lint/task失败在提交之前就可以在本地捕获。
服务器将于启动 http://localhost:8000
API终点
健康检查
GET /health任务
POST /api/tasks # Create task
GET /api/tasks # List tasks
GET /api/tasks/:id # Get task
PUT /api/tasks/:id # Update task
DELETE /api/tasks/:id # Delete task
GET /api/tasks/user/:userId # Get user's tasks目标
POST /api/goals # Create goal
GET /api/goals # List goals
GET /api/goals/:id # Get goal
PUT /api/goals/:id # Update goal
DELETE /api/goals/:id # Delete goal
GET /api/goals/user/:userId # Get user's goals克劳德·艾
POST /api/mcp/parse-task # Parse natural language to task
POST /api/mcp/parse-file # Parse file content
POST /api/mcp/generate-subtasks # Generate subtasks
POST /api/mcp/analyze-productivity # Analyze productivity patternsMCP协议
POST /mcp/initialize # Initialize MCP connection
POST /mcp/list_tools # List available tools
POST /mcp/call_tool # Call a tool请求示例
任务
curl -X POST http://localhost:8000/api/tasks \
-H "Content-Type: application/json" \
-d '{
"title": "Finish report",
"description": "Complete quarterly report",
"due_date": "2024-12-20T17:00:00Z",
"priority": 3,
"category": "work"
}'解析自然语言
curl -X POST http://localhost:8000/api/mcp/parse-task \
-H "Content-Type: application/json" \
-d '{
"input": "Finish report by Friday at 5pm",
"user_id": "user-123"
}'生成子任务
curl -X POST http://localhost:8000/api/mcp/generate-subtasks \
-H "Content-Type: application/json" \
-d '{
"task_title": "Plan a vacation",
"task_description": "Summer vacation to Europe",
"user_id": "user-123"
}'文档
看 docs/README.md 获取完整的文档索引。
快速链接:
- TODO.md -当前任务列表
- 设置指南 -Supabase,铁路设置
- 集成指南 -Webapp集成
- Claude桌面设置 -MCP服务器配置
部署
码头工人
使用Docker构建和运行:
docker build -t productivity-mcp-server .
docker run -p 8000:8000 \
-e SUPABASE_URL=your-url \
-e SUPABASE_ANON_KEY=your-key \
-e CLAUDE_API_KEY=your-key \
productivity-mcp-server铁路
- 推送到GitHub
- 将存储库连接到铁路
- 在铁路仪表板中设置环境变量
- 部署
渲染
- 创建新的Web服务
- 连接GitHub存储库
- 设置构建命令:
go build -o server . - 设置启动命令:
./server - 添加环境变量
- 部署
Fly.io
- 安装flyctl
- 跑
flyctl launch - 设置环境变量
- 使用部署
flyctl deploy
配置
环境变量
| 变量 | 描述 | 必填 |
|---|---|---|
SUPABASE_URL | Supabase项目URL | 是 |
SUPABASE_ANON_KEY | Supabase匿名密钥 | 是 |
CLAUDE_API_KEY | Claude API密钥 | 是 |
PORT | 服务器端口(默认值:8000) | 否 |
GIN_MODE | Gin模式(调试/发布) | 否 |
OpenAI免费层保护
我们包括 scripts/openai_quota_guard.py 和 scripts/run_with_openai_guard.sh 因此,您可以在每次OpenAI调用之前强制执行记录的模型/令牌限制。看 docs/openai-quota.md 有关完整的使用细节,请使用此处显示的脚本包装CLI调用。
MCP与Claude的集成
克劳德桌面版
- 安装克劳德桌面
- 前往设置→ 开发者
- 添加MCP服务器:
{
"mcpServers": {
"productivity": {
"command": "curl",
"args": ["http://your-server:8000/mcp/initialize"],
"env": {}
}
}
}克劳德iOS
使用Claude iOS设置中的MCP服务器URL连接到您的服务器。
克劳德网
在Claude web设置中添加服务器URL。
发展
项目结构
.
├── main.go # Entry point
├── go.mod # Go module definition
├── handlers/
│ ├── task.go # Task handlers
│ ├── goal.go # Goal handlers
│ ├── claude.go # Claude AI handlers
│ └── mcp.go # MCP protocol handlers
├── models/
│ └── models.go # Data models
├── middleware/
│ └── cors.go # CORS middleware
├── db/
│ └── supabase.go # Supabase client
├── Dockerfile # Docker configuration
└── README.md # This file从源头构建
go build -o server .
./server运行测试
go test ./...演出
- 二进制大小:~15MB(完全编译)
- 内存使用:闲置时约20MB
- 启动时间:\<100ms
- 请求延迟:\<50ms(平均)
- 并发连接:千
安全
- 所有Supabase表上的行级安全性(RLS)
- 用户范围的数据访问
- API密钥验证
- CORS保护
- HTTPS就绪(部署在反向代理后面)
故障排除
服务器无法启动
- 检查环境变量是否已设置
- 验证Supabase凭据
- 检查端口8000是否可用
MCP连接失败
- 验证服务器是否正在运行且可访问
- 检查防火墙规则
- 确保CORS已启用
Claude无法创建任务
- 验证Claude API密钥是否有效
- 检查Supabase连接
- 查看服务器日志
贡献
欢迎投稿!请提交pull请求以改进服务器。
许可证
麻省理工学院
支持
对于问题和疑问:
- 检查故障排除部分
- 查看服务器日志
- 在GitHub上打开一个问题
后续步骤
- \[\]实现Suabase REST API集成
- \[\]添加Claude API集成用于任务解析
- \[\]实现文件解析(PDF、图像、文档)
- \[\]添加身份验证/授权
- \[\]实施速率限制
- \[\]添加综合日志记录
- \[\]编写单元测试
- \[\]添加WebSocket支持以进行实时更新
