关于 Freedcamp
Freedcamp 是用于管理 Freedcamp 项目任务的 MCP 服务,适合希望通过 MCP 客户端创建和维护任务的用户。它支持批量任务操作,并提供 STDIO 与 HTTP 两种传输方式。
主要功能
- 01创建含负责人和截止日期的任务
- 02更新任务详情与状态
- 03列出项目任务
- 04批量删除任务
- 05支持 STDIO 和 HTTP 传输
适用场景
- 01一次创建多个项目任务
- 02更改任务优先级、负责人或状态
- 03通过 MCP 客户端查看或删除项目任务
MCP 相关
该服务向 MCP 客户端提供 Freedcamp 任务的创建、更新、列出和删除工具,并支持批量操作。传输方式包括 STDIO 和 HTTP。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Freedcamp MCP 服务
这是一个用于 Freedcamp 任务管理的模型上下文协议(MCP)服务实现。它提供了在 Freedcamp 项目中创建、更新、列出和删除任务的工具,并支持批量操作。
可用传输方式:
- STDIO 传输 - 适用于 IDE 集成(Claude Desktop、Cursor 等)的传统 MCP 传输方式
- HTTP 传输 - 面向 Web 应用和云部署的现代 REST API,支持服务器发送事件
功能
- 单次操作即可创建多个任务,并设置标题、描述、优先级、截止日期和受派人
- 更新现有任务,包括更改状态
- 列出项目中的所有任务
- 永久删除任务
- 支持所有任务管理操作的批量处理
- 支持通过环境变量配置凭据
- 完善的错误处理和验证
前提条件
- Node.js 17 或更高版本
- TypeScript
- 拥有 API 访问权限的 Freedcamp 账户
- Freedcamp 的 API Key 和 Secret
- Freedcamp 的项目 ID
安装(仅用于手动调用;通过 IDE 或其他 MCP 桌面客户端使用时无需安装)
- 克隆仓库:
git clone <repository-url>
cd freedcamp-mcp
- 安装依赖项:
npm install
- 在根目录中创建
.env文件,并填入 Freedcamp 凭据:
FREEDCAMP_API_KEY=your_api_key
FREEDCAMP_API_SECRET=your_api_secret
FREEDCAMP_PROJECT_ID=your_project_id
用法
运行服务
首先构建 TypeScript 代码:
npm run build
STDIO 传输(默认)
这是 IDE 和 MCP 客户端使用的传统传输方式:
npm start
HTTP 传输
适用于容器化部署和基于 HTTP 的集成:
开发环境(使用 .env 文件):
npm run start:http:test
生产环境(使用环境变量):
npm run start:http
直接执行:
# With environment variables
FREEDCAMP_API_KEY=your_key FREEDCAMP_API_SECRET=your_secret FREEDCAMP_PROJECT_ID=your_project npm run start:http
# Or using npx
npx freedcamp-mcp --http
HTTP 服务将在端口 3000 上启动(或使用 PORT 环境变量指定的端口),并提供:
- MCP 端点:
http://localhost:3000/mcp - 健康检查:
http://localhost:3000/health
HTTP 传输功能:
- 无状态运行——每个请求彼此独立
- 提供 JSON 响应并妥善处理错误
- 支持 Web 应用的 CORS
- 内置健康监控
- 适用于负载均衡和集群部署
Docker 部署
在生产环境中,可以使用 Docker 运行 HTTP 传输:
使用 Docker Compose(推荐)
- 创建
.env文件并填入 Freedcamp 凭据:
FREEDCAMP_API_KEY=your_api_key
FREEDCAMP_API_SECRET=your_api_secret
FREEDCAMP_PROJECT_ID=your_project_id
- 启动服务:
docker-compose up -d
直接使用 Docker
# Build the image
docker build -t freedcamp-mcp .
# Run the container
docker run -d \
--name freedcamp-mcp \
-p 3000:3000 \
-e FREEDCAMP_API_KEY=your_api_key \
-e FREEDCAMP_API_SECRET=your_api_secret \
-e FREEDCAMP_PROJECT_ID=your_project_id \
freedcamp-mcp
容器化服务通过 HTTP 传输提供相同的 MCP 功能,适用于:
- 云部署
- Kubernetes 环境
- 负载均衡部署
- 与基于 HTTP 的 MCP 客户端集成
运行测试套件
项目包含全面的测试套件,可验证两种传输方式的所有 MCP 功能:
STDIO 传输测试:
npm test
HTTP 传输测试:
npm run test:http
两个测试套件都会执行以下检查:
- 使用正确的协议版本初始化服务
- 列出工具并验证功能
- 创建、更新和删除单个任务
- 批量任务操作(创建、更新、删除)
- 列出并验证任务
- 错误处理和边缘情况
注意: HTTP 测试套件要求 HTTP 服务正在运行。使用 npm run start:http:test 可在加载测试环境变量后启动服务。
可用工具
-
freedcamp_add_task- 在 Freedcamp 中创建一个或多个新任务
- 输入:包含任务详情的
tasks数组对象 - 任务参数:
title(必填):任务标题,应清晰且具有描述性description(可选):任务内容的详细说明priority(可选):任务优先级(0=低,1=普通,2=高,3=紧急)due_date(可选):Unix 时间戳字符串形式的截止日期(例如,2025-01-01 对应'1735689600')assigned_to_id(可选):要将任务分配给的用户 ID(必须是有效的 Freedcamp 用户 ID)
-
freedcamp_update_task- 更新 Freedcamp 中一个或多个现有任务
- 输入:包含任务更新内容的
tasks数组对象 - 任务参数:
task_id(必填):要更新的任务 ID(必须是有效的现有 Freedcamp 任务 ID)title(可选):新的任务标题description(可选):新的任务说明priority(可选):新的任务优先级(0=低,1=普通,2=高,3=紧急)due_date(可选):新的截止日期,格式为 Unix 时间戳字符串assigned_to_id(可选):要重新分配任务给的用户 IDstatus(可选):新的任务状态(0=打开,1=已完成,2=已关闭)
-
freedcamp_list_tasks- 获取已配置 Freedcamp 项目中的所有任务
- 无需参数(使用环境变量中的项目 ID)
- 返回任务详情,包括 ID、标题、状态和其他元数据
-
freedcamp_delete_task- 从 Freedcamp 中永久删除一个或多个任务
- 输入:包含待删除任务 ID 的
tasks数组对象 - 任务参数:
task_id(必填):要删除的任务 ID(警告:此操作无法撤销)
使用示例
创建多个任务:
{
"tasks": [
{
"title": "Setup project structure",
"description": "Initialize the basic project folder structure",
"priority": 2,
"due_date": "1735689600"
},
{
"title": "Implement authentication",
"description": "Add user login and registration functionality",
"priority": 3,
"assigned_to_id": "12345"
}
]
}
更新多个任务:
{
"tasks": [
{
"task_id": "67890",
"status": 1,
"description": "Updated: Added OAuth integration"
},
{
"task_id": "67891",
"priority": 3,
"due_date": "1735776000"
}
]
}
删除多个任务:
{
"tasks": [
{
"task_id": "67892"
},
{
"task_id": "67893"
}
]
}
IDE 集成
无需克隆仓库,即可直接使用 npx 运行此服务。根据需要选择 STDIO 传输方式(传统)或 HTTP 传输方式(现代)。
Cursor
选项 1:STDIO 传输方式(默认)
- 在项目根目录中打开(或创建)
.cursor/mcp.json。 - 添加 Freedcamp MCP 服务配置:
{ "mcpServers": { "freedcamp": { "command": "npx", "args": ["freedcamp-mcp"], "env": { "FREEDCAMP_API_KEY": "your_api_key", "FREEDCAMP_API_SECRET": "your_api_secret", "FREEDCAMP_PROJECT_ID": "your_project_id" } } } } - 重启 Cursor 或重新加载 MCP 服务。
选项 2:HTTP 传输方式
- 首先启动 HTTP 服务(在单独的终端中):
npx freedcamp-mcp --http # Or with environment variables: FREEDCAMP_API_KEY=your_key FREEDCAMP_API_SECRET=your_secret FREEDCAMP_PROJECT_ID=your_project npx freedcamp-mcp --http - 配置 Cursor 使用 HTTP 传输方式:
{ "mcpServers": { "freedcamp": { "transport": "http", "url": "http://localhost:3000/mcp" } } } - 重启 Cursor 或重新加载 MCP 服务。
Claude Desktop
选项 1:STDIO 传输方式(默认)
- 在 macOS 上打开(或创建)
~/Library/Application Support/Claude/claude_desktop_config.json,或在 Windows 上打开(或创建)%APPDATA%/Claude/claude_desktop_config.json。 - 添加 Freedcamp MCP 服务配置:
{ "mcpServers": { "freedcamp": { "command": "npx", "args": ["freedcamp-mcp"], "env": { "FREEDCAMP_API_KEY": "your_api_key", "FREEDCAMP_API_SECRET": "your_api_secret", "FREEDCAMP_PROJECT_ID": "your_project_id" } } } } - 重启 Claude Desktop。
选项 2:HTTP 传输方式
- 启动 HTTP 服务:
npx freedcamp-mcp --http - 配置 Claude Desktop 使用 HTTP 传输方式:
{ "mcpServers": { "freedcamp": { "transport": "http", "url": "http://localhost:3000/mcp" } } } - 重启 Claude Desktop。
Roo
选项 1:STDIO 传输方式(默认)
- 打开(或创建)Roo MCP 配置文件(通常为
roo.mcp.json或类似文件)。 - 添加 Freedcamp MCP 服务配置:
{ "mcpServers": { "Freedcamp": { "transport": "stdio", "command": "npx", "args": ["freedcamp-mcp"], "env": { "FREEDCAMP_API_KEY": "your_api_key", "FREEDCAMP_API_SECRET": "your_api_secret", "FREEDCAMP_PROJECT_ID": "your_project_id" } } } }
选项 2:HTTP 传输方式
- 启动 HTTP 服务:
npx freedcamp-mcp --http - 配置 Roo 使用 HTTP 传输方式:
{ "mcpServers": { "Freedcamp": { "transport": "http", "url": "http://localhost:3000/mcp" } } }
API 参考
如需了解 Freedcamp API 的详细信息,请访问:https://freedcamp.com/api-docs
许可证
MIT 许可证,详情请参阅 LICENSE 文件。
参与贡献
欢迎贡献!欢迎提交 Pull Request。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。