OpenProject MCP Server for AI Integration - Production Ready v0.0.1
Project description
MCP OpenProject Server
A Model Context Protocol (MCP) server for integrating OpenProject with AI assistants like Claude, Windsurf, and other MCP-compatible clients.
Version: 0.0.1 | Status: Production Ready | PyPI: mcp-openproject
🚀 Quick Start - 5 Minutes to Running
Option 1: Install from PyPI (Recommended for Users)
# Install from PyPI (recommended)
pip install mcp-openproject
# or with pipx (isolated environment)
pipx install mcp-openproject
# Set environment variables
export OPENPROJECT_BASE_URL="http://localhost:8090/"
export OPENPROJECT_API_KEY="your-api-key-here"
export ENCRYPTION_KEY="your-encryption-key-here"
# Test installation
mcp-openproject --help
✅ PyPI Verified: mcp-openproject v0.0.1 - Production ready
Option 2: Development Installation
# Clone repository
git clone https://github.com/boma086/mcp-openproject.git
cd mcp-openproject
# Install in development mode
pip install -e .
# Set environment variables
export OPENPROJECT_BASE_URL="http://localhost:8090/"
export OPENPROJECT_API_KEY="your-api-key-here"
export ENCRYPTION_KEY="your-encryption-key-here"
Option 3: Smithery Platform (Cloud Deployment)
For cloud deployment without local installation, use the Smithery Platform:
- Visit the MCP OpenProject server on Smithery
- Configure your OpenProject instance URL and API key
- Start using immediately - no installation required
⚙️ MCP Client Configuration
Claude Code / Windsurf Configuration
Add this to your MCP client configuration:
{
"mcpServers": {
"openproject": {
"command": "mcp-openproject",
"args": ["server", "--stdio"],
"env": {
"OPENPROJECT_BASE_URL": "http://localhost:8090/",
"OPENPROJECT_API_KEY": "your-api-key-here",
"ENCRYPTION_KEY": "your-encryption-key-here"
}
}
}
}
Two-step process for MCP clients:
- Install:
pip install mcp-openprojectorpipx install mcp-openproject - Configure: Add the JSON configuration above to your MCP client
Features
- 🚀 PyPI Installation: Install from PyPI with
pip install mcp-openproject - 📡 Multiple Transport Modes: Stdio and HTTP support (SSE planned)
- 🔗 OpenProject API Integration: Complete access to projects, work packages, and tasks
- 🛡️ Security: Encrypted configuration and API key management
- 🖥️ CLI Interface: Comprehensive command-line tools
- 🎯 MCP Compatible: Works with Claude Code, Windsurf, and other MCP clients
- ☁️ Cloud Ready: Smithery platform support for zero-install deployment
- ✅ Production Tested: Verified installation and CLI functionality
Configuration
Required Environment Variables
OPENPROJECT_BASE_URL: Your OpenProject instance URL (e.g.,http://localhost:8090/)OPENPROJECT_API_KEY: Your OpenProject API keyENCRYPTION_KEY: Encryption key for sensitive data (generate one:openssl rand -hex 32)
Example Configuration
# Add to your ~/.bashrc or ~/.zshrc
export OPENPROJECT_BASE_URL="http://localhost:8090/"
export OPENPROJECT_API_KEY="your-api-key-here"
export ENCRYPTION_KEY="your-32-byte-encryption-key-here"
CLI Commands
# Show help
mcp-openproject --help
# Test connection to OpenProject
mcp-openproject test
# Show current configuration
mcp-openproject config
# Start MCP server in different modes
mcp-openproject server --stdio # Stdio mode (for MCP clients)
mcp-openproject server --http --port 8000 # HTTP mode
# Check server status
mcp-openproject status
Available MCP Tools
- Project Management: List projects, get project details, project statistics
- Work Packages: Create, read, update work packages and tasks
- Weekly Reports: Generate weekly reports for projects
- Time Tracking: Log time entries, track project hours
- Team Management: Access user information and team assignments
MCP Client Integration
Claude Code Configuration
Add to your Claude Code configuration:
{
"mcpServers": {
"openproject": {
"command": "mcp-openproject",
"args": ["server", "--stdio"],
"env": {
"OPENPROJECT_BASE_URL": "http://localhost:8090/",
"OPENPROJECT_API_KEY": "your-api-key-here",
"ENCRYPTION_KEY": "your-encryption-key-here"
}
}
}
}
Windsurf Configuration
Step 1: Install MCP Server
pip install mcp-openproject
# or with pipx (recommended)
pipx install mcp-openproject
Step 2: Add to Windsurf MCP Configuration
{
"mcpServers": {
"openproject": {
"command": "mcp-openproject",
"args": ["server", "--stdio"],
"env": {
"OPENPROJECT_BASE_URL": "http://localhost:8090/",
"OPENPROJECT_API_KEY": "your-api-key-here",
"ENCRYPTION_KEY": "your-encryption-key-here"
}
}
}
}
General MCP Client Configuration
For any MCP-compatible client:
- Install the server:
pip install mcp-openprojectorpipx install mcp-openproject - Configure environment variables (as shown above)
- Add MCP server configuration:
{ "mcpServers": { "openproject": { "command": "mcp-openproject", "args": ["server", "--stdio"] } } }
Deployment Options
Local Development
# Clone and install
git clone https://github.com/boma086/mcp-openproject.git
cd mcp-openproject
pip install -e .
# Run in development mode
uv run mcp-openproject server --stdio
uv run mcp-openproject server --http --port 8000
Production Installation
# Install from PyPI (recommended for production)
pip install mcp-openproject
# or with pipx for isolated environment
pipx install mcp-openproject
# Run as system service
sudo systemctl enable mcp-openproject
sudo systemctl start mcp-openproject
Cloud Deployment (Smithery)
No installation required - configure and run directly on Smithery platform:
- Visit Smithery MCP OpenProject
- Configure OpenProject connection
- Start using immediately
Architecture
This project uses a comprehensive architecture with:
- MCP Server: FastMCP-based implementation with multiple transport modes
- OpenProject Integration: Generated API client with full OpenProject support
- Security Framework: Encrypted configuration and API key management
- CLI Interface: Comprehensive command-line tools for all operations
- Documentation: Complete project documentation and guides
Key Components
mcp_server/: Core MCP server implementationdocs/: Comprehensive documentation and guidespyproject.toml: Project configuration with comprehensive dependency managementsmithery.yaml: Smithery platform deployment configuration
Transport Modes
✅ Stdio Mode (Recommended for MCP Clients)
- Use Case: Direct integration with Claude Code, Windsurf, and other MCP clients
- Command:
mcp-openproject server --stdio - Benefits: Standard MCP protocol, low latency, secure
✅ HTTP Mode (For Web Integration)
- Use Case: Web applications, HTTP API integration
- Command:
mcp-openproject server --http --port 8000 - Benefits: RESTful API, web-friendly, CORS support
🚧 SSE Mode (Planned)
- Status: Planned for future release
- Use Case: Real-time updates, streaming responses
- Command:
mcp-openproject server --sse --port 8001(future)
Support
Documentation
- Installation Guide: docs/installation.md
- Configuration Guide: docs/guides/configuration-guide.md
- Troubleshooting: docs/troubleshooting.md
- Architecture: docs/architecture/
Getting Help
- GitHub Issues: Report bugs
- GitHub Discussions: Community discussions
- Documentation: Full documentation
Contributing
We welcome contributions! Please see our Contributing Guide for details.
Development Setup
# Clone the repository
git clone https://github.com/boma086/mcp-openproject.git
cd mcp-openproject
# Install development dependencies
pip install -e ".[dev]"
# Run tests
uv run pytest
# Run linting
uv run ruff check
uv run black .
License
MIT License - see LICENSE file for details.
Verification
✅ Production Testing Completed
PyPI Installation:
- ✅
pip install mcp-openproject- Successfully installs from production PyPI - ✅
uv pip install mcp-openproject- Successfully installs with uv package manager
CLI Functionality:
- ✅
mcp-openproject --help- Complete help system working - ✅
mcp-openproject config- Configuration display and environment variable reading - ✅ All server modes (stdio, http) operational
MCP Integration:
- ✅ Stdio mode for Claude Code/Windsurf integration
- ✅ HTTP mode with fastapi_mcp library
- ✅ OpenProject API client generation and integration
Tested Environments
- Package Managers: pip, uv, pipx
- Python Versions: 3.10+ (tested on 3.11)
- Platforms: macOS, Linux (expected Windows compatibility)
- MCP Clients: Claude Code, Windsurf (configuration verified)
Changelog
See CHANGELOG.md for version history and updates.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_openproject-0.0.2.tar.gz.
File metadata
- Download URL: mcp_openproject-0.0.2.tar.gz
- Upload date:
- Size: 394.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe8eba62f60ab60b677de063e49b0fd0ce3befb693a94a2202b43019bad7c22d
|
|
| MD5 |
3ebd56036bd19dd76e81136a78f4d9ff
|
|
| BLAKE2b-256 |
db9437bf8dfab93107c4e391cb4da37cf37d095bd601a3c05cd2b31f52c19823
|
File details
Details for the file mcp_openproject-0.0.2-py3-none-any.whl.
File metadata
- Download URL: mcp_openproject-0.0.2-py3-none-any.whl
- Upload date:
- Size: 1.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a150a9259f209e8539311cdf141b41d3c8ca08d3798b381eb23cadb4e3a4ddb
|
|
| MD5 |
942b080dfece2a7056fa513725be6d8f
|
|
| BLAKE2b-256 |
c2bfe41e39c254f42a231b38887dd2cadc8a5763f4b558295d5affd87fec2af5
|