Uses .env files to manage environment variables for storing Freedcamp API credentials and project configuration.
Integrates with GitHub for CI workflows and releases tracking as evidenced by the build badges and GitHub release downloads tracking.
Runs on Node.js runtime (v17+) and leverages its environment for executing the MCP server.
Provides distribution through npm registry with version tracking and download metrics.
Utilizes Shields.io for generating status badges in the README to display version, license, build status, and other metrics.
Built with TypeScript for type-safe development and must be compiled before running.
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.
Available Transport Methods:
- STDIO Transport - Traditional MCP transport for IDE integrations (Claude Desktop, Cursor, etc.)
- HTTP Transport - Modern REST API with Server-Sent Events for web applications and cloud deployments
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:
- Install dependencies:
- Create a
.env
file in the root directory with your Freedcamp credentials:
Usage
Running the Server
First build the TypeScript code:
STDIO Transport (Default)
This is the traditional transport method used by IDEs and MCP clients:
HTTP Transport
For containerized deployments and HTTP-based integrations:
Development (with .env file):
Production (with environment variables):
Direct execution:
The HTTP server will start on port 3000 (or the port specified by the PORT
environment variable) and provide:
- MCP endpoint:
http://localhost:3000/mcp
- Health check:
http://localhost:3000/health
HTTP Transport Features:
- Stateless operation - each request is independent
- JSON responses with proper error handling
- CORS support for web applications
- Built-in health monitoring
- Suitable for load balancing and clustering
Docker Deployment
For production deployments, you can use Docker to run the HTTP transport:
Using Docker Compose (Recommended)
- Create a
.env
file with your Freedcamp credentials:
- Start the service:
Using Docker directly
The containerized server provides the same MCP functionality via HTTP transport, making it suitable for:
- Cloud deployments
- Kubernetes environments
- Load-balanced setups
- Integration with HTTP-based MCP clients
Running the Test Harness
The project includes comprehensive test harnesses that verify all MCP functionality for both transport methods:
STDIO Transport Test:
HTTP Transport Test:
Both test harnesses perform the following checks:
- Server initialization with proper protocol version
- Tool listing and capability verification
- Single task creation, update, and deletion
- Bulk task operations (create, update, delete)
- Task listing and verification
- Error handling and edge cases
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.
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:
Updating multiple tasks:
Deleting multiple tasks:
IDE Integration
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.
Cursor
Option 1: STDIO Transport (Default)
- Open (or create)
.cursor/mcp.json
in your project root. - Add your Freedcamp MCP server configuration:
- Restart Cursor or reload MCP servers.
Option 2: HTTP Transport
- First, start the HTTP server (in a separate terminal):
- Configure Cursor to use HTTP transport:
- Restart Cursor or reload MCP servers.
Claude Desktop
Option 1: STDIO Transport (Default)
- Open (or create)
~/Library/Application Support/Claude/claude_desktop_config.json
on macOS or%APPDATA%/Claude/claude_desktop_config.json
on Windows. - Add your Freedcamp MCP server configuration:
- Restart Claude Desktop.
Option 2: HTTP Transport
- Start the HTTP server:
- Configure Claude Desktop to use HTTP transport:
- Restart Claude Desktop.
Roo
Option 1: STDIO Transport (Default)
- Open (or create) your Roo MCP config file (commonly
roo.mcp.json
or similar). - Add your Freedcamp MCP server configuration:
Option 2: HTTP Transport
- Start the HTTP server:
- Configure Roo to use HTTP transport:
API Reference
For detailed information about Freedcamp's API, visit: https://freedcamp.com/api-docs
License
MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
freedcamp
Related MCP Servers
- GoMIT License
- TypeScriptGPL 3.0
- TypeScriptApache 2.0
- TypeScript