Provides containerized deployment with Docker and Docker Compose, including health monitoring, restart policies, and resource management for reliable MCP server operation.
Supports environment variable management through .env files for storing and configuring Freedcamp API credentials and server settings.
Enables version control for the MCP server codebase, with support for branching and contribution workflows.
Provides issue tracking and repository hosting for the MCP server, allowing users to report problems and contribute to development.
Uses Python as the implementation language for the MCP server, with dependency management through requirements.txt.
Supports rich text formatting in comments with HTML formatting capabilities.
Provides comprehensive task management tools including creation, updating, filtering, and organization of tasks with support for subtasks, attachments, and custom fields.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Freedcamp MCP Servershow me all tasks assigned to me that are overdue"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🚀 Enhanced Freedcamp MCP Server
A comprehensive Model Context Protocol (MCP) server for seamless integration with the Freedcamp API. This server provides enterprise-level project management capabilities with advanced filtering, full CRUD operations, and extensive customization options.
✨ Features
🏗️ Project Management
List projects with optional recent project tracking
Detailed project information including users, notifications, and capabilities
Create/Update/Delete projects with user management
Manage project teams (add, update, remove users)
Group management and project organization
📋 Advanced Task Management
Comprehensive task filtering with 15+ filter options:
Status filtering (not started, completed, in progress)
User assignment filtering (assigned to, created by)
Date range filtering (due dates, creation dates)
Priority-based filtering and ordering
Custom fields and tags support
Full task lifecycle - Create, Read, Update, Delete
Subtask support with parent-child relationships
File attachments and media management
Recurring tasks with iCalendar format support
Pagination and ordering for large datasets
👥 User Management
Complete user profiles with detailed information
Current user management and profile updates
User task assignments and workload tracking
Email and password management with secure token handling
💬 Comment System
Add/Update/Delete comments on tasks and items
File attachments in comments
Rich text support with HTML formatting
Comment threading and user attribution
📁 File Management
File details and metadata access
File deletion and cleanup
Multi-format support (images, documents, etc.)
Temporary file handling for uploads
Related MCP server: Context Manager MCP Server
🛠️ Installation & Setup
Prerequisites
Docker and Docker Compose
Freedcamp API credentials (API Key)
Quick Start
Clone the repository:
git clone https://github.com/BluePointDigital/freedcamp-mcp-server.git
cd freedcamp-mcp-serverSet up environment variables:
cp env-example.sh .env
# Edit .env and add your Freedcamp credentialsStart the services:
docker-compose up -dAccess the API:
MCP Server: http://localhost:8000/mcp/
OpenAPI Proxy: http://localhost:8111
API Documentation: http://localhost:8111/docs
🔧 Configuration
Environment Variables
Create a .env file with your Freedcamp credentials:
FREEDCAMP_API_KEY=your_api_key_here
FREEDCAMP_API_SECRET=your_api_secret_here # Optional for some endpointsDocker Configuration
The included docker-compose.yml provides:
Health checks for service monitoring
Restart policies for reliability
Resource limits for optimal performance
Network isolation for security
🔥 Workflow Instructions for LLMs
IMPORTANT: This MCP server includes comprehensive workflow guidance to ensure proper usage:
Server Description: Built-in instructions provided when LLMs first connect
get_workflow_help(): Contextual workflow guidance for specific operationsEnhanced Tool Docstrings: Workflow reminders in critical tools like
create_task()Workflow Documentation: See
freedcamp-workflow-instructions.mdfor detailed guidance
Key Rule: Always call get_projects() and get_users() first to look up IDs before using them in operations!
📚 API Reference
🏗️ Project Tools
Tool | Description | Parameters |
| List all projects with grouping |
|
| Detailed project information |
|
| Create new project with team |
|
| Update project and manage users |
|
| Remove project |
|
📋 Task Tools
Tool | Description | Key Features |
| Advanced task filtering | 15+ filter options, pagination |
| Project-specific tasks | Status filtering, custom fields |
| User assignment tracking | Completed task inclusion |
| Complete task information | Comments, files, custom fields |
| Enhanced task creation | Subtasks, files, recurring rules |
| Full task modification | All properties, custom fields |
| Task removal | Cascade handling |
👥 User Tools
Tool | Description | Capabilities |
| List all workspace users | Full profile data |
| Current user information | Profile details |
| Specific user data |
|
| Profile management | Email, password, timezone |
💬 Comment Tools
Tool | Description | Features |
| Create comments | File attachments, HTML support |
| Modify comments | Rich text editing |
| Remove comments | Clean deletion |
📁 File Tools
Tool | Description | Capabilities |
| File information | Metadata, URLs, thumbnails |
| File removal | Clean deletion |
🔍 Usage Examples
Advanced Task Filtering
# Get overdue high-priority tasks assigned to specific users
await get_all_tasks(
status_filter=["0", "2"], # Not started or in progress
assigned_to_ids=["123", "456"],
due_date_to="2024-01-01", # Overdue
order_by="priority",
order_direction="desc",
limit=50
)Project Team Management
# Add users to a project
await update_project(
project_id="789",
users_to_add=[
{"email": "user@example.com", "first_name": "John", "last_name": "Doe"},
{"email": "admin@example.com", "first_name": "Jane", "last_name": "Admin"}
]
)Task Creation with Subtasks
# Create a parent task with subtasks and files
parent_task = await create_task(
title="Main Project Phase",
project_id="123",
priority=3, # High priority
due_date="2024-12-31"
)
# Create subtask
await create_task(
title="Subtask 1",
project_id="123",
parent_task_id=parent_task["task"]["id"],
attached_file_ids=[456, 789]
)🏗️ Architecture
Components
FastMCP Core: High-performance MCP server framework
Freedcamp API Client: Secure, authenticated API wrapper
MCPO Proxy: OpenAPI generation and REST interface
Docker Environment: Containerized deployment with health monitoring
Key Features
Robust Error Handling: Comprehensive error management and logging
Data Formatting: Consistent response structures across all endpoints
Security: Secure credential management and API authentication
Performance: Optimized queries with pagination and filtering
Reliability: Health checks, restart policies, and connection management
🐳 Deployment
Production Deployment
Environment Setup:
# Production environment file
FREEDCAMP_API_KEY=prod_api_key
FREEDCAMP_API_SECRET=prod_api_secretService Scaling:
docker-compose up -d --scale freedcamp-fastapi=3Health Monitoring:
docker-compose ps # Check service health
docker-compose logs -f # Monitor logsDevelopment Mode
# Start with hot-reload
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up🔧 Development
Project Structure
freedcamp-mcp-server/
├── freedcamp_mcp.py # Main MCP server implementation
├── docker-compose.yml # Docker services configuration
├── Dockerfile # Container definition
├── requirements.txt # Python dependencies
├── healthcheck.py # Health monitoring
├── .env # Environment variables
├── .gitignore # Git ignore rules
└── README.md # This fileAdding New Features
Implement the method in
FreedcampMCPclassAdd the tool decorator in
_setup_tools()Update documentation and examples
Test with Docker Compose
🤝 Contributing
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🆘 Support
Issues: GitHub Issues
Documentation: Freedcamp API Docs
MCP Protocol: Model Context Protocol
🎯 Roadmap
File Upload Support: Direct file upload capabilities
Webhook Integration: Real-time notifications
Advanced Reporting: Analytics and reporting tools
Bulk Operations: Mass task and project management
Custom Field Templates: Dynamic custom field management
Integration Tests: Comprehensive test suite
Performance Optimization: Query caching and optimization
⭐ Star this repository if it helps you manage your Freedcamp projects more effectively!
Made with ❤️ for the Freedcamp and MCP communities.
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.