这是一个用于 Freedcamp 任务管理的模型上下文协议(MCP)服务器实现。它提供了在 Freedcamp 项目中创建、更新、列出和删除任务的工具,并且支持批量操作。
本项目提供了一个用于 Freedcamp 任务管理的 MCP 服务器,你可以按照以下步骤进行操作:
git clone
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
这是 IDE 和 MCP 客户端常用的传统传输方式:
npm start
适用于容器化部署和基于 HTTP 的集成:
开发环境(使用 .env 文件):
npm run start:http:test
生产环境(使用环境变量):
npm run start:http
直接执行:
# 使用环境变量
FREEDCAMP_API_KEY=your_key FREEDCAMP_API_SECRET=your_secret FREEDCAMP_PROJECT_ID=your_project npm run start:http
# 或者使用 npx
npx freedcamp-mcp --http
HTTP 服务器将在端口 3000 启动(或使用 PORT 环境变量指定的端口),并提供以下接口:
http://localhost:3000/mcphttp://localhost:3000/health对于生产环境部署,你可以使用 Docker 运行 HTTP 传输服务:
.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 -t freedcamp-mcp .
# 运行容器
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 功能,适用于:
项目包含全面的测试套件,可验证两种传输方式的所有 MCP 功能:
STDIO 传输测试:
npm test
HTTP 传输测试:
npm run test:http
两个测试套件都会执行以下检查:
注意:HTTP 测试套件需要 HTTP 服务器正在运行。使用 npm run start:http:test 启动服务器并加载测试环境变量。
freedcamp_add_task
tasks 数组的对象,数组中包含任务详细信息。title(必填):任务标题,应清晰且具有描述性。description(可选):任务详细描述。priority(可选):任务优先级(0=低,1=正常,2=高,3=紧急)。due_date(可选):截止日期,以 Unix 时间戳字符串表示(例如,'1735689600' 表示 2025-01-01)。assigned_to_id(可选):分配任务的用户 ID(必须是有效的 Freedcamp 用户 ID)。freedcamp_update_task
tasks 数组的对象,数组中包含任务更新信息。task_id(必填):要更新的任务 ID(必须是有效的现有 Freedcamp 任务 ID)。title(可选):新的任务标题。description(可选):新的任务描述。priority(可选):新的任务优先级(0=低,1=正常,2=高,3=紧急)。due_date(可选):新的截止日期,以 Unix 时间戳字符串表示。assigned_to_id(可选):重新分配任务的用户 ID。status(可选):新的任务状态(0=打开,1=完成,2=关闭)。freedcamp_list_tasks
freedcamp_delete_task
tasks 数组的对象,数组中包含要删除的任务 ID。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"
}
]
}
可以直接使用 npx 运行服务器,无需克隆仓库。根据需求选择 STDIO 传输(传统方式)或 HTTP 传输(现代方式)。
选项 1:STDIO 传输(默认)
.cursor/mcp.json 文件。{
"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"
}
}
}
}
选项 2:HTTP 传输
npx freedcamp-mcp --http
# 或者使用环境变量:
FREEDCAMP_API_KEY=your_key FREEDCAMP_API_SECRET=your_secret FREEDCAMP_PROJECT_ID=your_project npx freedcamp-mcp --http
{
"mcpServers": {
"freedcamp": {
"transport": "http",
"url": "http://localhost:3000/mcp"
}
}
}
选项 1:STDIO 传输(默认)
~/Library/Application Support/Claude/claude_desktop_config.json 文件,在 Windows 上打开 %APPDATA%/Claude/claude_desktop_config.json 文件。{
"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"
}
}
}
}
选项 2:HTTP 传输
npx freedcamp-mcp --http
{
"mcpServers": {
"freedcamp": {
"transport": "http",
"url": "http://localhost:3000/mcp"
}
}
}
选项 1:STDIO 传输(默认)
roo.mcp.json 或类似文件)。{
"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 传输
npx freedcamp-mcp --http
{
"mcpServers": {
"Freedcamp": {
"transport": "http",
"url": "http://localhost:3000/mcp"
}
}
}
有关 Freedcamp API 的详细信息,请访问:https://freedcamp.com/api-docs
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
欢迎贡献代码!请随时提交拉取请求。