
Freedcamp
STDIOFreedcamp任务管理MCP服务器
Freedcamp任务管理MCP服务器
This is a Model Context Protocol (MCP) server implementation for Freedcamp task management. It provides tools for creating, updating, listing, and deleting tasks in Freedcamp projects with support for bulk operations.
Available Transport Methods:
git clone <repository-url> cd freedcamp-mcp
npm install
.env
file in the root directory with your Freedcamp credentials:FREEDCAMP_API_KEY=your_api_key FREEDCAMP_API_SECRET=your_api_secret FREEDCAMP_PROJECT_ID=your_project_id
First build the TypeScript code:
npm run build
This is the traditional transport method used by IDEs and MCP clients:
npm start
For containerized deployments and HTTP-based integrations:
Development (with .env file):
npm run start:http:test
Production (with environment variables):
npm run start:http
Direct execution:
# 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
The HTTP server will start on port 3000 (or the port specified by the PORT
environment variable) and provide:
http://localhost:3000/mcp
http://localhost:3000/health
HTTP Transport Features:
For production deployments, you can use Docker to run the HTTP transport:
.env
file with your Freedcamp credentials:FREEDCAMP_API_KEY=your_api_key FREEDCAMP_API_SECRET=your_api_secret FREEDCAMP_PROJECT_ID=your_project_id
docker-compose up -d
# 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
The containerized server provides the same MCP functionality via HTTP transport, making it suitable for:
The project includes comprehensive test harnesses that verify all MCP functionality for both transport methods:
STDIO Transport Test:
npm test
HTTP Transport Test:
npm run test:http
Both test harnesses perform the following checks:
Note: The HTTP test harness requires the HTTP server to be running. Use npm run start:http:test
to start the server with test environment variables loaded.
freedcamp_add_task
tasks
array containing task detailstitle
(required): Task title - should be clear and descriptivedescription
(optional): Detailed description of what the task involvespriority
(optional): Task priority level (0=Low, 1=Normal, 2=High, 3=Urgent)due_date
(optional): Due date as Unix timestamp string (e.g., '1735689600' for 2025-01-01)assigned_to_id
(optional): User ID to assign the task to (must be valid Freedcamp user ID)freedcamp_update_task
tasks
array containing task updatestask_id
(required): ID of the task to update (must be valid existing Freedcamp task ID)title
(optional): New task titledescription
(optional): New task descriptionpriority
(optional): New task priority (0=Low, 1=Normal, 2=High, 3=Urgent)due_date
(optional): New due date as Unix timestamp stringassigned_to_id
(optional): User ID to reassign the task tostatus
(optional): New task status (0=Open, 1=Completed, 2=Closed)freedcamp_list_tasks
freedcamp_delete_task
tasks
array containing task IDs to deletetask_id
(required): ID of the task to delete (WARNING: This action cannot be undone)Creating multiple tasks:
{ "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" } ] }
Updating multiple tasks:
{ "tasks": [ { "task_id": "67890", "status": 1, "description": "Updated: Added OAuth integration" }, { "task_id": "67891", "priority": 3, "due_date": "1735776000" } ] }
Deleting multiple tasks:
{ "tasks": [ { "task_id": "67892" }, { "task_id": "67893" } ] }
The server can be run directly using npx
without cloning the repository. Choose between STDIO transport (traditional) or HTTP transport (modern) based on your needs.
Option 1: STDIO Transport (Default)
.cursor/mcp.json
in your project root.{ "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" } } } }
Option 2: HTTP Transport
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
{ "mcpServers": { "freedcamp": { "transport": "http", "url": "http://localhost:3000/mcp" } } }
Option 1: STDIO Transport (Default)
~/Library/Application Support/Claude/claude_desktop_config.json
on macOS or %APPDATA%/Claude/claude_desktop_config.json
on Windows.{ "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" } } } }
Option 2: HTTP Transport
npx freedcamp-mcp --http
{ "mcpServers": { "freedcamp": { "transport": "http", "url": "http://localhost:3000/mcp" } } }
Option 1: STDIO Transport (Default)
roo.mcp.json
or similar).{ "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" } } } }
Option 2: HTTP Transport
npx freedcamp-mcp --http
{ "mcpServers": { "Freedcamp": { "transport": "http", "url": "http://localhost:3000/mcp" } } }
For detailed information about Freedcamp's API, visit: https://freedcamp.com/api-docs
MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.