Redmine MCP Server
Exposes Redmine data and functionality through tools for managing projects, issues, users, and time entries, as well as providing full-text search capabilities.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Redmine MCP Serverlist the high priority issues for the mobile app project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Redmine MCP 1.2.0 — native OAuth, clean reconnect
Requires Redmine 7.0+. MCP tools always enforce the signed-in user's Redmine project, issue, workflow and write permissions. An OAuth scope never grants additional business rights.
Applications are managed in Administration → Applications. Open an MCP application to inspect authorizations and revoke access for one user; deleting an application revokes every grant. Users can revoke their own grants in My account → Authorized applications. There is no separate MCP authorization menu.
Enable Redmine REST API for native OAuth. Configure Administration → Plugins → Redmine MCP → Configure with exact trusted callback URLs. An empty allowlist disables dynamic registration. Public MCP clients request mcp_tools and must use S256 PKCE. Manually registered Applications must include that scope. Discovery points to /oauth/authorize, /oauth/token, /oauth/revoke; MCP dynamic registration remains /mcp/oauth/register. Only MCP-scoped applications receive the PKCE/one-hour access/30-day rolling refresh policies. Other OAuth apps retain Redmine defaults.
Upgrade from 1.0.x
Stop the application and take a complete database + application/files backup.
Upgrade Redmine core and migrate it first; deploy this plugin and run
bundle exec rake redmine:plugins:migrate NAME=redmine_mcp RAILS_ENV=production.Version 1.2.0 deliberately clears historical MCP applications, grants and tokens after the 1.1.0 migration step. Existing MCP connections become invalid; users must remove/reconnect the server in their MCP client and authorize again. This is a one-time migration, including for installations already on 1.1.0. Unrelated native OAuth applications and the separate Azure AD login-provider configuration are preserved.
Verify that old client IDs/tokens are rejected and historical duplicates are absent; reconnect a client and check discovery, fresh S256 authorization, MCP permissions, token refresh and per-user revocation before reopening traffic.
Existing /mcp/oauth/authorize and /mcp/oauth/token URLs remain compatibility routes to the native server; the old mcp:tools authorization scope is normalized to mcp_tools at the compatibility authorization URL. Already-open old consent pages need a new authorization attempt. Legacy client metadata remains for audit only; legacy token and authorization-code rows are deleted. Runtime never accepts legacy credentials, and rerunning the historical importer is forbidden. Keep pre-upgrade backups restricted since they contain legacy plaintext credentials.
Rollback restores the pre-upgrade database and matching old application together. The migration deliberately has no lossy down conversion from hashed native secrets. Do not run the old plugin against the migrated database.
Related MCP server: Redmine MCP server for Cursor
Dynamic registration
Identical public-client name, canonical callback URL set and MCP scope reuse one native Application, backed by a unique database registration key. URI ordering/duplicates and the old mcp:tools scope do not create duplicates. Each user has separate grants and tokens; reconnecting another user does not revoke existing grants. Different metadata creates a separate application. An administrator-edited client is not reused for mismatching metadata. Do not merge by display name alone.
Tests
Run RAILS_ENV=test bundle exec rake redmine:plugins:test NAME=redmine_mcp against a dedicated test database. Standalone checks run separately: ruby test/standalone/tool_authorization_check.rb and ruby test/standalone/tool_serialization_check.rb. CI covers Redmine 7 with MySQL, PostgreSQL and SQLite. Native OAuth integration tests cover migration, PKCE, token rotation, expiry, user lock, scopes, revocation and compatibility URLs.
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to interact with Redmine API for managing tickets, projects, users, and time entries. Supports comprehensive operations including issue creation/updates, project management, time logging, and search with dual authentication (Basic Auth + API Key).1436 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables interacting with a Redmine instance via REST API, allowing issues, projects, time logging, and generic endpoint calls through an MCP agent.3 npmMIT
- AlicenseAqualityCmaintenanceEnables AI assistants to interact with Redmine for task management, time logging, status updates, and progress tracking via the MCP protocol.9MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to manage Redmine issues, projects, time tracking, wiki, and files via the MCP protocol.3323 npm5Apache 2.0