OpenProject MCP Server
Enables comprehensive project management functionality including creating projects and work packages, managing user assignments by email, creating task dependencies, generating Gantt charts, and handling project member management through OpenProject's API.
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., "@OpenProject MCP Servercreate a new project called 'Website Redesign' with a work package for homepage design due next Friday"
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.
OpenProject MCP Server
A Model Context Protocol (MCP) server that enables AI assistants to interact with OpenProject installations. Create projects, manage work packages, assign team members, and generate Gantt charts through natural language commands.
Features
Project Management: Create and manage OpenProject projects
Work Package Operations: Create, update, and assign work packages with dates
Dependency Management: Create relationships between work packages for Gantt charts
User Management: Find and assign users by email address
Team Collaboration: Manage project members and their roles
Dynamic Configuration: Automatically loads work package types, statuses, and priorities
Comprehensive Reporting: Project status reports and team workload analysis
Installation
Prerequisites
OpenProject instance (local or cloud)
API key from your OpenProject profile
Python 3.8+ or Docker
Method 1: Docker (Recommended)
Clone the repository:
git clone <repository-url> cd openproject-mcp-serverConfigure environment:
cp env.example .env # Edit .env with your OpenProject detailsDeploy with Docker:
./scripts/deploy.sh deploy 39127
Method 2: Python
Clone and setup:
git clone <repository-url> cd openproject-mcp-server python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txtConfigure environment:
cp env.example .env # Edit .env with your OpenProject detailsTest configuration:
python3 scripts/test_mvp.py
Configuration
Create a .env file with your OpenProject details:
# OpenProject Instance URL (include protocol)
OPENPROJECT_URL=http://localhost:8080
# OpenProject API Key (from your user profile)
OPENPROJECT_API_KEY=your_40_character_api_key_here
# MCP Server Configuration (optional)
MCP_HOST=localhost
MCP_PORT=39127
MCP_LOG_LEVEL=INFOGetting your OpenProject API Key
Login to your OpenProject instance
Go to My Account → Access Tokens
Click + New token
Enter a name (e.g., "MCP Server")
Copy the generated 40-character token
Usage
Starting the Server
Docker:
./scripts/deploy.sh deploy 39127Python:
python3 scripts/run_server.pyMCP Client Configuration
Claude Desktop
Add to your claude_desktop_config.json:
For Docker deployment:
{
"mcpServers": {
"openproject": {
"transport": "sse",
"url": "http://localhost:39127/sse"
}
}
}For local Python:
{
"mcpServers": {
"openproject": {
"command": "python3",
"args": ["/full/path/to/openproject-mcp-server/scripts/run_server.py"],
"env": {
"OPENPROJECT_URL": "http://localhost:8080",
"OPENPROJECT_API_KEY": "your_api_key_here"
}
}
}
}Other MCP Clients
Use the SSE transport URL: http://localhost:39127/sse
Available Tools
Project Management
create_project- Create new projectsget_projects- List all projectsget_project_summary- Get detailed project overviewget_project_members- List project members and roles
Work Package Management
create_work_package- Create work packages with dates and assignmentsget_work_packages- List work packages for a projectupdate_work_package- Update existing work packagesassign_work_package_by_email- Assign work packages using email addresses
Dependency Management
create_work_package_dependency- Create relationships for Gantt chartsget_work_package_relations- List dependencies for a work packagedelete_work_package_relation- Remove relationships
User Management
get_users- List users with optional email filtering
Configuration
get_work_package_types- List available work package typesget_work_package_statuses- List available statusesget_priorities- List available priorities
Example Commands
Once integrated with an AI assistant, you can use natural language:
Create a project with team:
Create a project called "Website Redesign" and add john@example.com and sarah@example.com to the team.Create work packages with dependencies:
In project ID 5, create:
1. "Requirements Analysis" from 2024-01-15 to 2024-01-20, assign to john@example.com
2. "UI Design" from 2024-01-21 to 2024-02-05, assign to sarah@example.com
3. "Development" from 2024-02-06 to 2024-02-28
Make UI Design depend on Requirements Analysis, and Development depend on UI Design.Get project status:
Show me a summary of project ID 5 including all work packages and team assignments.Resources
The server provides read-only resources for browsing OpenProject data:
openproject://projects- List all projectsopenproject://project/{project_id}- Get specific project detailsopenproject://work-packages/{project_id}- Get work packages for a projectopenproject://work-package/{work_package_id}- Get specific work package details
Docker Management
Deployment Commands
# Deploy on port 39127 (recommended)
./scripts/deploy.sh deploy 39127
# View logs
./scripts/deploy.sh logs
# Check status
./scripts/deploy.sh status
# Stop server
./scripts/deploy.sh stop
# Restart server
./scripts/deploy.sh restart
# Clean up (remove container and image)
./scripts/deploy.sh cleanManual Docker Commands
# Build image
docker build -t openproject-mcp-server .
# Run container
docker run -d \
--name openproject-mcp-server \
--env-file .env \
-p 39127:39127 \
-v ./logs:/app/logs \
-v ./data:/app/data \
--restart unless-stopped \
openproject-mcp-serverTroubleshooting
Connection Issues
Verify OpenProject URL is accessible
Check API key is correct (40 characters)
Ensure OpenProject API is enabled
Permission Issues
Verify your user has project creation permissions
Check work package creation permissions in target project
Date Format Issues
Use YYYY-MM-DD format for all dates
Ensure due_date is after start_date
Docker Issues
# Check container status
docker ps
# View container logs
docker logs openproject-mcp-server
# Test API endpoint
curl http://localhost:39127/sseTesting
# Test basic connection
python3 scripts/test_mvp.py
# Run comprehensive tests
python3 tests/run_tests.py
# Run with pytest
pip install -r requirements-test.txt
python3 -m pytest tests/ -vDevelopment
Project Structure
openproject-mcp-server/
├── src/ # Source code
├── scripts/ # Deployment and test scripts
├── tests/ # Test suite
├── docker-compose.yml # Docker configuration
├── Dockerfile # Container build instructions
└── requirements.txt # Python dependenciesRunning Tests
# Install test dependencies
pip install -r requirements-test.txt
# Run all tests
python3 -m pytest tests/ -v
# Run with coverage
python3 -m pytest --cov=src --cov-report=html tests/Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests for new functionality
Ensure all tests pass
Submit a pull request
License
[License information]
Support
For issues and questions:
Check the troubleshooting section above
Review container logs:
docker logs openproject-mcp-serverTest your OpenProject API connection
Verify your configuration in
.envfile
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/firsthalfhero/openproject-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server