MCP server to manage OpenProject work-packages realized in Java. The server acts as a proxy to your OpenProject API. The user's' OpenProject API
Spring Openproject MCP server exists for a simple reason — assistants are far more useful when they can act on Spring Openproject directly instead of describing what you should do. MCP server to manage OpenProject work-packages realized in Java. The server acts as a proxy to your OpenProject API. The user's' OpenProject API token is used for authentication (not stored in the container!).
Installation goes through your MCP client rather than a global install: point it at docker.io/tmskln/spring-openproject-mcp-server on a container image and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.
Once Spring Openproject is connected, these are the calls the assistant has available:
build — The build tool exposed by this serverYou will need 2 environment variables: OPENPROJECT_URL, OPENPROJECT_ALLOW_HEADER_BASE_URL. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Among the developer tooling options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Spring Openproject's toolset — build — is a fair guide to whether it matches your workflow. It is maintained by tmskln; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| build | The build tool exposed by this server. |
{
"mcpServers": {
"spring-openproject": {
"command": "docker",
"args": ["run", "-i", "--rm", "docker.io/tmskln/spring-openproject-mcp-server"],
"env": {
"OPENPROJECT_URL": "your-value",
"OPENPROJECT_ALLOW_HEADER_BASE_URL": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| OPENPROJECT_URL | Endpoint or connection string the server talks to. | Yes |
| OPENPROJECT_ALLOW_HEADER_BASE_URL | Endpoint or connection string the server talks to. | Yes |
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.