spring-openproject-mcp-server

by tmskln

Not rated
GitHub

About

MCP server to manage OpenProject work-packages realized in Java.

Details

Author
tmskln
Categories
Productivity, Project Management, Other

Setup

Install spring-openproject-mcp-server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/tmskln/spring-openproject-mcp-server

Follow the installation instructions in the repository README, then restart your MCP client.

MCP server to manage OpenProject work-packages realized in Java.

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!).

Tested against OpenProject 14,15,16.6,17.5
- Launch the Docker container
docker run -d -p 0.0.0.0:8080:8080 -e OPENPROJECT_URL=https://${yourOpenProjectUrl} --tmpfs /tmp docker.io/tmskln/spring-openproject-mcp-server:latest
or if you built the image locally
docker run -d -p 0.0.0.0:8080:8080 -e OPENPROJECT_URL=https://${yourOpenProjectUrl} --tmpfs /tmp spring-openproject-mcp-server:dev
- Run LM Studio and choose an appropriate model for your project domain.qwen/qwen3-coder-30bworks well to create technical epics and user stories. For simple translations and text refinements, a smaller model is enough.
- Configure LM Studio'smcp.jsonfile below"mcpServers":{...}and set the API token for the project to use (see below)
- If you see"mcp/openproject-mcp"on the right side, below Integrations start prompting.
- Examples:
- Prompt: "List all projects in OpenProject using mcp/openproject-mcp."
- Prompt: "Use mcp/openproject-mcp to get work-packages from project id=10 and analyze the project."
- Prompt: "Use mcp/openproject-mcp and translate all epics in the project 'MyApp' to German."
- Prompt: "You are a precise Agile assistant. Help with the specification of the project. Use mcp/openproject-mcp and project id=10. Add INVEST criteria. Add Gherkin acceptance criteria. Add Definition of Done (checklist). Add Risks & Mitigations. Goals & measurable KPIs/OKRs (SMART, incl. target values)"
- Prompt: "Create 10 Epics for a new WebApp which does the following: ... Use mcp/openproject-mcp and project 'NewWebApp'."

Find the latest image athttps://hub.docker.com/r/tmskln/spring-openproject-mcp-server

# convert java SBOM to optimized OCI format docker run --rm \ -v "./target/classes/META-INF/sbom:/work" --platform linux/amd64 \ cyclonedx/cyclonedx-cli \ convert \ --input-file /work/application.cdx.json \ --output-file /work/application.spdx.json \ --output-format spdxjson PKG_VERSION="dev" && docker build \ -f docker/Dockerfile \ -t spring-openproject-mcp-server:${PKG_VERSION} \ --attest type=sbom,generator=docker/scout-sbom-indexer:latest \ --label org.opencontainers.image.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \ --label org.opencontainers.image.revision=$(git rev-parse HEAD) \ --label org.opencontainers.image.version=${PKG_VERSION} \ --platform linux/amd64,linux/arm64 \ .
docker run -d -p 0.0.0.0:8080:8080 -e OPENPROJECT_URL=https://${yourOpenProjectUrl} --tmpfs /tmp spring-openproject-mcp-server:dev
{ "mcpServers": { "openproject-mcp": { "url": "http://127.0.0.1:8080/sse", "headers": { "Authorization": "Bearer {yourOpenProjectApiToken}" } } } }

If you want to control the OpenProject server from the MCP-client or run against multiple OpenProject servers set start the container with-e OPENPROJECT_ALLOW_HEADER_BASE_URL=trueand set the server URL in MCP config:

... "headers": { "Authorization": "Bearer {yourOpenProjectApiToken}" "X-OpenProject-Base-Url": "https://{yourOpenProjectUrl}" } ...
mvn test -Dopenproject.container.tag=17.5.1 -Dopenproject.container.port=18080

- MCP OpenProject with OTEL
- use results after patch JSON
- add kubernetes deployment+service (helm?)

spring.ai.mcp.server.protocol=SSE spring.ai.mcp.server.protocol=STREAMABLE

Spring creates one MCP server bean with one transport:

- SSE protocol → exposes:

- GET /sse for server → client streaming
- POST /mcp/message for client → server communication

Because the transport defines the wiring, endpoints, and message routing, Spring cannot bind two protocols simultaneously.

- Why wasn't a generated OpenAPI client used, but JSONNode value mapping with MapStruct?

- The first approach was using a generated OpenAPI client, but there were many issues:

- code generation with org.openapitools:openapi-generator-maven-plugin wasn't totally clean and needed lots of manual corrections.
- client is very strict and would fail minimal spec changes
- Spec lacks values, e.g. 'storyPoints' and manually enhancing generated code is not applicable
- compatibility to a wider range of versions can better be realized with direct value mapping and integration tests against multiple versions of OpenProject

This project is licensed under the MIT License – see theLICENSEfile for details.

Interact with task, doc, and project data in Dart, an AI-native project management tool

Remote MCP server for MeisterTask. Create and manage projects, tasks, and notes from your AI assistant. Hosted (streamable-HTTP) — connect at https://mcp.meistertask.com/mcp

The official Plane MCP server provides integration with Plane APIs, enabling full AI automation of Plane projects, work items, cycles and more.

Keep teams & agents coordinated automatically

From the creators of Wunderlist — the all-in-one task management app for to-do lists, notes, and projects. AI-powered productivity that replaces 5 apps.

Connect to the Taskade platform via MCP. Access tasks, projects, workflows, and AI agents in real-time through a unified workspace and API.

Official Taskeract MCP Server for integrating your Taskeract project tasks and load the context of your tasks into your MCP enabled app.

Manage your Todoist tasks and projects directly from your LLM.

AI-native trade business management for Australian tradies. 11 MCP tools for leads, quotes, jobs, invoicing, financials, and client CRM.

Interact with Asana tasks, projects, workspaces, and comments using the Asana API.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.