freedmcpcamp
If you are the rightful owner of freedmcpcamp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This is a Model Context Protocol (MCP) server implementation for Freedcamp task management.
Freedcamp MCP Server
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.
Features
- Create multiple tasks in a single operation with title, description, priority, due date, and assignee
- Update existing tasks including status changes
- List all tasks in a project
- Delete tasks permanently
- Bulk operations support for all task management operations
- Environment variable support for credentials
- Comprehensive error handling and validation
Prerequisites
- Node.js 17 or higher
- TypeScript
- Freedcamp account with API access
- API Key and Secret from Freedcamp
- Project ID from Freedcamp
Installation (for manual invocation only, not necessary for usage with an IDE or other MCP desktop client)
- Clone the repository:
git clone <repository-url>
cd freedcamp-mcp
- Install dependencies:
npm install
- Create a
.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
Usage
Running the Server
First build the TypeScript code:
npm run build
Then start the server:
npm start
Running the Test Harness
The project includes a comprehensive test harness that verifies all MCP functionality:
npm test
The test harness performs the following checks:
- Server initialization with proper protocol version
- Tool listing and capability verification
- Task creation with various parameters
- Task updates including status changes
- Task listing and verification
Available Tools
-
freedcamp_add_task
- Creates one or more new tasks in Freedcamp
- Input: Object with
tasks
array containing task details - Task Parameters:
title
(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
- Updates one or more existing tasks in Freedcamp
- Input: Object with
tasks
array containing task updates - Task Parameters:
task_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
- Retrieves all tasks in the configured Freedcamp project
- No parameters required (uses project ID from environment variables)
- Returns task details including ID, title, status, and other metadata
-
freedcamp_delete_task
- Permanently deletes one or more tasks from Freedcamp
- Input: Object with
tasks
array containing task IDs to delete - Task Parameters:
task_id
(required): ID of the task to delete (WARNING: This action cannot be undone)
Example Usage
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"
}
]
}
IDE Integration
The server can be run directly using npx
without cloning the repository.
Cursor
- Open (or create)
.cursor/mcp.json
in your project root. - Add your Freedcamp MCP server configuration:
{ "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" } } } }
- Restart Cursor or reload MCP servers.
Roo
- Open (or create) your Roo MCP config file (commonly
roo.mcp.json
or similar). - Add your Freedcamp MCP server configuration:
{ "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" } } } }
API Reference
For detailed information about Freedcamp's API, visit: https://freedcamp.com/api-docs
License
MIT License - see the file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.