72 tools for the OpenProject API v3: work packages, attachments, git activity, time, reporting
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
An MCP (Model Context Protocol) server for the OpenProject API v3. It gives Claude and any other MCP client 88 tools covering work packages, comments and relations, attachments, git/PR activity, projects, saved queries, notifications, time tracking, versions, people and memberships, meetings, news, documents, budgets and reporting โ plus 4 report/workflow prompts and 3 resource templates. Built on FastMCP 3.x and httpx (HTTP/2).
This project is aimed at the OpenProject Community edition. OpenProject's Enterprise edition now ships with its own built-in MCP integration; this server brings the same capability to self-hosted Community instances. It runs fine against any edition โ it only needs the public API v3.
Design principles, all enforced in code:
outputSchema and machine-readable structuredContent, not prose. Errors come back as a
JSON envelope with a stable type, the upstream http_status, a message and a hint
describing how to correct the call.confirm=true guard on every destructive tool, TLS always verified, and
credentials that never appear in logs.Two exchanges against a fictional "Website Relaunch" project โ every id, name and date below is invented. You describe the outcome; the model picks the tools, and what comes back to it is a typed object rather than prose to re-parse.
The rows above are abridged: each one also carries priority, project, start_date,
percentage_done and updated_at, and the envelope keeps groups, sums and notes slots
for the calls that fill them.
The prompt templates cut out the tool round trips: the server reads OpenProject itself and hands back a finished document rather than instructions to go and fetch one. It arrives prefaced with a note that the numbers are already computed and must not be recomputed or embellished.
That last block is the house style: a report says which of its numbers are partial, and a tool that could not read something returns the gap as a note instead of guessing. The whole surface is in Tools and Prompts and resources.
The distribution name is openproject-mcp-server. It installs two identical console scripts,
openproject-mcp-server and openproject-mcp; the long form is canonical (an unrelated PyPI
package also installs a bin named openproject-mcp).
Run one-shot with uv, no install step:
Or install persistently:
The minimal configuration is two environment variables:
Validate the configuration without starting the server:
--check verifies the configuration and exits; it does not contact your instance. Once
connected through a client, call the get_instance_info tool for a live end-to-end check.
When configuration is missing or invalid, the server prints the specific problems to stderr
and exits with code 2 โ never a traceback.
Add to claude_desktop_config.json (or your client's equivalent mcpServers config):
When a token is regenerated, revoked or invalidated (OpenProject major upgrades can do this โ
the symptom is every tool suddenly failing with authentication_failed / HTTP 401), generate
a fresh one in OpenProject under My account โ Access tokens and update it wherever your
key lives:
Shell environment (easiest to rotate). The server reads OPENPROJECT_API_KEY straight
from the OS environment, so you can export it globally โ e.g. in ~/.zshenv โ and register
the server with no --env flags at all:
Rotation is then: edit the export, open a fresh terminal, reconnect. The client config never contains a secret. (This does not work for GUI apps like Claude Desktop, which don't read your shell profile.)
Claude Code with --env. The registration stores the key, so replace it:
Then reconnect via /mcp (a running session keeps the old environment until it does).
Claude Desktop and other JSON-configured clients. Edit the OPENPROJECT_API_KEY value
in the client config and restart the client.
.env file. Edit the file and restart the server.
Recent OpenProject versions allow several API tokens in parallel, so you can rotate with zero downtime: create the new token, switch your clients over, then revoke the old one.
Configuration is entirely environment-driven. The table below is the authoritative reference:
the server binds exactly these 25 names and no others. Bare, unprefixed names such as
READ_TIMEOUT or API_KEY are deliberately ignored (a stray variable in your shell cannot
change or break the server), as is any other unknown variable. A .env file in the server's
working directory is read with the same names; real environment variables take precedence.
From-source users can start from
.env.example.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/openproject)<a href="https://allmcps.com/mcp/openproject"><img src="https://allmcps.com/api/badge/openproject?style=directory" alt="OpenProject on AllMCPs" /></a>