Redmine MCP Server
Allows AI agents to find, view, and manage Redmine tickets via the Redmine REST API, including listing assigned issues, retrieving issue details with comment history, updating issue status and progress, adding comments, and listing projects.
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 ServerWhat are my open tickets?"
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 Server
An MCP server that lets Claude find and manage your Redmine tickets, using the Redmine REST API.
Is this a real MCP server?
Yes. This is not a wrapper or mock of the interface — it's a standards-compliant MCP (Model Context Protocol) server:
Built with the official
@modelcontextprotocol/sdk(McpServer+StdioServerTransport).Speaks real JSON-RPC 2.0 over stdio, per the MCP spec. Verified directly by sending a raw
initializerequest and getting back a correct MCP handshake response (protocolVersion,capabilities,serverInfo).Exposes proper MCP tools (
list_my_issues,get_issue,update_issue, etc.) with Zod-validated input schemas, discoverable via the standardtools/listmethod and callable viatools/call— the same mechanism any MCP client (Claude Code, Claude Desktop, or other MCP-aware apps) uses.
Related MCP server: Redmine MCP Server
Setup
Enable the REST API on your Redmine instance (if not already on): Administration → Settings → API → "Enable REST web service".
Get your API key: click your name (top right) → "My account" → "API access key" → "Show".
Install, build and link:
npm install npm run build npm linkSave your credentials once:
redmine-mcp-server loginPrompts for your Redmine URL and API key (key input is hidden) and writes them to
~/.config/redmine-mcp/config.jsonwith mode0600. Re-run it any time to change them.
That's it — no .env, and no credentials in your MCP config.
Installing as a global command
The package ships a bin entry (redmine-mcp-server), so once built it can be linked or
installed globally and run from anywhere, instead of pointing at an absolute path to
dist/index.js.
From a local clone (not yet published to npm):
npm install
npm run build
npm link # registers the `redmine-mcp-server` command globallyRun npm unlink -g redmine-mcp-server to remove it later.
If published to npm:
npm install -g redmine-mcp-serverEither way, you can now just run redmine-mcp-server from any directory.
Registering with Claude Code
After redmine-mcp-server login, registration needs no credentials at all:
claude mcp add redmine-mcp-server -- redmine-mcp-serverOr in .mcp.json — safe to commit, since it holds no secrets:
{
"mcpServers": {
"redmine-mcp-server": {
"command": "redmine-mcp-server"
}
}
}If you'd rather not link it globally, use "command": "node", "args": ["/absolute/path/to/dist/index.js"].
Environment variables still work and take priority over the saved config, for CI or one-off overrides:
Variable | Purpose |
| Redmine base URL |
| API access key |
| Alternate config file path |
| Alternate log file path |
Logging
Every action is logged as one JSON object per line: server start/stop, each tool call with its arguments, each tool result or failure, and every HTTP request/response with status and duration. The API key is never logged, and any field named like a key/token/password/secret is redacted. Nothing is ever written to stdout — that channel belongs to the MCP protocol.
The log goes to ~/.redmine-mcp.log; set REDMINE_MCP_LOG to choose another path. Tail it with:
tail -f ~/.redmine-mcp.logThere is no rotation — point REDMINE_MCP_LOG at a path covered by logrotate/newsyslog if
the volume ever matters.
Tools
list_my_issues — list issues assigned to you (
status: open/closed/all).get_issue — full details, custom field values (with ids) and comment history for one issue.
search_issues — filter issues by project/subject/status/assignee.
search — full-text search across issues (and optionally wiki + news).
list_enumerations — valid status, tracker, priority and time-entry-activity names/ids for this Redmine instance.
update_issue — change status/% done/assignee and/or add a note.
add_comment — add a comment without changing fields.
create_issue — create an issue: tracker, priority, status, category, target version, assignee and custom field values.
list_project_fields — a project's custom field ids, target versions and issue categories.
find_user — look up user ids by name/login, to assign issues (pass a project if you are not admin).
log_time — log hours against an issue or project.
list_projects — list visible projects (id/identifier/name).
Example prompts
"What are my open tickets?"
"Show me the details and history of issue 1234."
"Find open bugs in the web project mentioning login."
"Create a bug in the web project: checkout page 500s on submit."
"What custom fields does the web project have?"
"Create that same issue in the web project, copying the custom fields from issue 1234."
"Assign issue 1234 to Raja."
"Log 2 hours on issue 1234 for code review."
"Mark issue 1234 as Resolved and note that it's deployed to prod."
"Add a comment to issue 1234 saying I'm blocked on QA."
Manual testing
npx @modelcontextprotocol/inspector node dist/index.jsThis opens the MCP Inspector so you can invoke each tool directly against your real Redmine instance before wiring it into Claude Code.
This server cannot be deployed
Maintenance
Related MCP Connectors
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Read and write KukGit repositories, files, issues and pull requests from an AI assistant.
Create and manage MeisterTask projects, tasks, and notes from your AI assistant.
Search, read and create Linear issues, projects, teams and cycles.
Related MCP Servers
- AlicenseBqualityBmaintenanceEnables AI assistants to interact with Redmine project management systems, providing comprehensive access to issues, projects, time tracking, users, and wiki pages through natural language commands.3324 npmApache 2.0
- 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 AI assistants to interact with Redmine instances to manage issues, projects, and users. It provides comprehensive tools for issue tracking, project oversight, and user management through the Redmine REST API.13 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI applications to interact with Redmine project management systems for issue tracking, time logging, and project management through natural language.11 npmMIT