OpenProject MCP Server
by brunofin
README.md
# OpenProject MCP Server
A Model Context Protocol (MCP) server that enables AI agents to interact with OpenProject's APIv3 for autonomous project management.
## Overview
This MCP server provides a comprehensive set of tools that allow an AI agent to:
- List, create, update, and delete projects
- Manage work packages (tasks, bugs, features, etc.)
- Handle project members and versions
- Query statuses, types, priorities, users, and roles
- Search across work packages
## Features
### Projects
- List all projects with pagination and filtering
- Get detailed project information
- Create new projects
- Update project details (name, description, status)
- Delete projects
- Manage project members (add/remove)
- Manage project versions
### Work Packages
- List work packages with advanced filtering
- Get detailed work package information
- Create new work packages
- Update work packages (status, priority, assignee, dates, etc.)
- Delete work packages
- View activity history and comments
- Add comments to work packages
- Manage relations between work packages
### Reference Data
- List all available statuses
- List all work package types
- List all priorities
- List all users
- List users available for assignment in a project
- List all roles
- List all groups
### Search
- Full-text search across work packages
## Prerequisites
- Node.js 18+
- An OpenProject instance with API access
## Installation
```bash
# Clone or download this repository
cd openproject-mcp
# Install dependencies
npm install
# Build the TypeScript code
npm run build
```
## Configuration
Set the following environment variables:
```bash
export OPENPROJECT_BASE_URL="https://your-openproject-instance.com"
export OPENPROJECT_API_KEY="your-api-key"
```
To get an API key:
1. Log into OpenProject
2. Go to My Account → API Access Keys
3. Generate a new API key
## Running
```bash
# Set environment variables first
export OPENPROJECT_BASE_URL="https://your-openproject-instance.com"
export OPENPROJECT_API_KEY="your-api-key"
# Run the server
node dist/index.js
```
## Claude Desktop Integration
Add to your `claude.json`:
```json
{
"mcpServers": {
"openproject": {
"command": "node",
"args": ["/path/to/openproject-mcp/dist/index.js"],
"env": {
"OPENPROJECT_BASE_URL": "https://your-openproject-instance.com",
"OPENPROJECT_API_KEY": "your-api-key"
}
}
}
}
```
## Usage Example
Here's how an agent might use the tools:
1. **List projects** to see what's available
2. **Get project types** to understand what work package types exist
3. **Get statuses** to know what transitions are possible
4. **List users** to find assignable team members
5. **Create a work package** with subject, type, priority
6. **Update the work package** as work progresses (change status, update assignee)
7. **Add comments** to document progress
8. **Search** to find related work packages
## Tool Reference
| Tool | Description |
|------|-------------|
| `op_list_projects` | List all projects |
| `op_get_project` | Get project details |
| `op_create_project` | Create a new project |
| `op_update_project` | Update project |
| `op_delete_project` | Delete a project |
| `op_list_project_members` | List project members |
| `op_add_project_member` | Add member to project |
| `op_remove_project_member` | Remove member from project |
| `op_list_project_versions` | List project versions |
| `op_create_version` | Create a version |
| `op_list_work_packages` | List work packages |
| `op_get_work_package` | Get work package details |
| `op_create_work_package` | Create a work package |
| `op_update_work_package` | Update work package |
| `op_delete_work_package` | Delete work package |
| `op_list_work_package_activities` | List activities |
| `op_add_work_package_comment` | Add comment |
| `op_list_work_package_relations` | List relations |
| `op_create_work_package_relation` | Create relation |
| `op_delete_work_package_relation` | Delete relation |
| `op_get_project_work_packages` | Get all WPs in project |
| `op_list_statuses` | List all statuses |
| `op_list_types` | List all types |
| `op_get_project_types` | List types in project |
| `op_list_priorities` | List all priorities |
| `op_list_users` | List all users |
| `op_get_user` | Get user details |
| `op_get_current_user` | Get current user |
| `op_list_project_assignees` | List assignable users |
| `op_list_roles` | List all roles |
| `op_list_groups` | List all groups |
| `op_search` | Search work packages |
## Architecture
- **client.ts**: OpenProject API client using axios with Basic Auth
- **index.ts**: MCP server implementation with all tool handlers
## License
MITThis server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues