io.github.Nikhilprasad-r/redmine-mcp-connector

Official registry Other

stdio MCP server wrapping the Redmine REST API: issues, projects, users, time, wiki, versions.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package redmine-mcp-connector
Claude Code
claude mcp add redmine-mcp-connector -e 'REDMINE_BASE_URL=<REDMINE_BASE_URL>' -e 'REDMINE_API_KEY=<your redmine_api_key>' -e 'REDMINE_IMPERSONATE_USER=<REDMINE_IMPERSONATE_USER>' -e 'REDMINE_READONLY=false' -e 'REDMINE_ALLOW_RAW_REQUEST=false' -e 'REDMINE_HTTP_TIMEOUT_MS=15000' -e 'REDMINE_MAX_PAGES=20' -e 'REDMINE_MAX_DOWNLOAD_BYTES=5242880' -- npx -y redmine-mcp-connector@1.0.1
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "redmine-mcp-connector": {
            "command": "npx",
            "args": [
                "-y",
                "redmine-mcp-connector@1.0.1"
            ],
            "env": {
                "REDMINE_BASE_URL": "<REDMINE_BASE_URL>",
                "REDMINE_API_KEY": "<your redmine_api_key>",
                "REDMINE_IMPERSONATE_USER": "<REDMINE_IMPERSONATE_USER>",
                "REDMINE_READONLY": "false",
                "REDMINE_ALLOW_RAW_REQUEST": "false",
                "REDMINE_HTTP_TIMEOUT_MS": "15000",
                "REDMINE_MAX_PAGES": "20",
                "REDMINE_MAX_DOWNLOAD_BYTES": "5242880"
            }
        }
    }
}

Environment variables

  • REDMINE_BASE_URL required Base URL of your Redmine instance, no trailing slash (e.g. https://redmine.example.com)
  • REDMINE_API_KEY required secret Redmine API access key (My account -> Show API access key)
  • REDMINE_IMPERSONATE_USER Admin-only impersonation login, sets X-Redmine-Switch-User
  • REDMINE_READONLY If true, blocks all mutating HTTP methods (POST, PUT, PATCH, DELETE)
  • REDMINE_ALLOW_RAW_REQUEST If true, registers the redmine_request escape-hatch tool for arbitrary REST paths
  • REDMINE_HTTP_TIMEOUT_MS HTTP timeout in milliseconds
  • REDMINE_MAX_PAGES Max pages when using fetch_all on list tools
  • REDMINE_MAX_DOWNLOAD_BYTES Cap for redmine_attachment_download, in bytes (default 5 MiB)

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. Redmine MCP Server
  2. Requirements
  3. Install
  4. Configuration
  5. Run
  6. Connecting to a coding agent
  7. MCP resources (read-only)
  8. Tools overview
  9. Safety
  10. Docker
  11. Development
  12. Contributing
  13. License

Redmine MCP Server

stdio-based Model Context Protocol server that wraps a Redmine instance through its REST API (*.json endpoints). It runs as a separate Node.js process; no changes to the Redmine Rails app are required.

Requirements

  • Node.js 20+
  • A Redmine user with an API access key (My account → Show API access key)
  • Network access from this process to your Redmine REDMINE_BASE_URL

Install

No install needed for normal use — coding agents launch it on demand via npx:

npx -y redmine-mcp-connector

See CONNECTING.md for exact setup instructions for Claude Desktop, Claude Code, Cursor, Windsurf, Cline, VS Code, Zed, and any other MCP client, plus a local-build and Docker alternative.

To hack on the server itself, clone this repo instead:

npm install
npm run build

Configuration

Environment variables (see .env.example):

VariableRequiredDescription
REDMINE_BASE_URLyesBase URL, e.g. https://redmine.example.com (no trailing slash)
REDMINE_API_KEYyesX-Redmine-API-Key value
REDMINE_IMPERSONATE_USERnoSets X-Redmine-Switch-User (admin-only in Redmine)
REDMINE_READONLYnoIf true / 1, blocks all mutating HTTP methods
REDMINE_ALLOW_RAW_REQUESTnoIf true / 1, registers the redmine_request escape-hatch tool
REDMINE_HTTP_TIMEOUT_MSnoDefault 15000
REDMINE_MAX_PAGESnoMax pages when using fetch_all on list tools (default 20)
REDMINE_MAX_DOWNLOAD_BYTESnoCap for redmine_attachment_download (default 5 MiB)

Run

REDMINE_BASE_URL=https://your-redmine.example.com REDMINE_API_KEY=secret npm start
# or during development:
REDMINE_BASE_URL=... REDMINE_API_KEY=... npm run dev

Connecting to a coding agent

Full per-client instructions (Claude Desktop, Claude Code, Cursor, Windsurf, Cline, VS Code, Zed, and generic MCP clients) live in CONNECTING.md. Quick example (Claude Desktop / Cursor / Windsurf all share this shape):

{
  "mcpServers": {
    "redmine": {
      "command": "npx",
      "args": ["-y", "redmine-mcp-connector"],
      "env": {
        "REDMINE_BASE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your_api_key_here"
      }
    }
  }
}

MCP resources (read-only)

URIDescription
redmine://projectsGET /projects.json (first 100)
redmine://meGET /users/current.json
redmine://me/issuesGET /issues.json?assigned_to_id=me (limit 100)
redmine://projects/{id}GET /projects/:id.json

Tools overview

Naming: redmine_<resource>_<action>.

Issues: redmine_issues_list, redmine_issue_get, redmine_issue_create, redmine_issue_update, redmine_issue_add_comment, redmine_issue_delete (requires confirm: true), watchers add/remove, relations list/add/remove.

Projects: redmine_projects_list, redmine_project_get, create/update/archive/unarchive/delete (confirm for delete).

Users: redmine_current_user, redmine_users_list, redmine_user_get, create/update/delete (confirm for delete).

Time entries: list/get/create/update/delete (confirm for delete).

News: list/get/create/update/delete (confirm for delete).

Wiki: list pages, get page, create/update (PUT), delete (confirm).

Versions & categories: versions CRUD (confirm on delete), issue categories CRUD (confirm on delete).

Queries & metadata: redmine_queries_list, redmine_enumerations_list, redmine_trackers_list, redmine_issue_statuses_list, redmine_roles_list, redmine_role_get, redmine_custom_fields_list.

Groups (read-only): redmine_groups_list, redmine_group_get.

Memberships: list/create/update/delete (confirm on delete).

Attachments & search: redmine_search, attachment get/update/delete/upload/download (download returns base64, size-capped).

Repository (limited REST in stock Redmine): redmine_repository_revision_link_issue, redmine_repository_revision_unlink_issue (confirm). Listing repositories/revisions over JSON is not exposed by core Redmine; use redmine_request if you enable it, or plugins.

Escape hatch: redmine_request — only if REDMINE_ALLOW_RAW_REQUEST=true; DELETE requires confirm: true.

Safety

  • Destructive tools require explicit confirm: true where noted.
  • Set REDMINE_READONLY=true for read-only deployments.
  • API keys are never logged by this server.

Docker

Build a local image:

docker build -t redmine-mcp-server:local .

Run it (stdio MCP server):

docker run --rm -i   -e REDMINE_BASE_URL="https://redmine.example.com"   -e REDMINE_API_KEY="your_api_key_here"   redmine-mcp-server:local

Use this image in MCP config:

{
  "mcpServers": {
    "redmine": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "REDMINE_BASE_URL",
        "-e", "REDMINE_API_KEY",
        "docker.io/<docker-user>/redmine-mcp-server:latest"
      ],
      "env": {
        "REDMINE_BASE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your_api_key_here"
      }
    }
  }
}
Publish to Docker Hub Catalog
  1. Login:
docker login
  1. Create and use a buildx builder (one-time):
docker buildx create --name redmine-mcp-builder --use --bootstrap
  1. Build and push multi-arch image:
export IMAGE=docker.io/<docker-user>/redmine-mcp-server
export TAG=1.0.0

docker buildx build   --platform linux/amd64,linux/arm64   -t $IMAGE:$TAG   -t $IMAGE:latest   --push .
  1. In Docker Hub, set your repository description from this README and mark it as public for catalog discovery.

Development

npm run lint
npm test

Contributing

Contributions are welcome.

License

GPL-2.0-or-later (same family as Redmine).

Frequently asked questions

What is io.github.Nikhilprasad-r/redmine-mcp-connector?

stdio MCP server wrapping the Redmine REST API: issues, projects, users, time, wiki, versions.

How do I install io.github.Nikhilprasad-r/redmine-mcp-connector?

It runs on your machine. In Claude Code: claude mcp add redmine-mcp-connector -e 'REDMINE_BASE_URL=<REDMINE_BASE_URL>' -e 'REDMINE_API_KEY=<your redmine_api_key>' -e 'REDMINE_IMPERSONATE_USER=<REDMINE_IMPERSONATE_USER>' -e 'REDMINE_READONLY=false' -e 'REDMINE_ALLOW_RAW_REQUEST=false' -e 'REDMINE_HTTP_TIMEOUT_MS=15000' -e 'REDMINE_MAX_PAGES=20' -e 'REDMINE_MAX_DOWNLOAD_BYTES=5242880' -- npx -y redmine-mcp-connector@1.0.1. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.Nikhilprasad-r/redmine-mcp-connector need an API key?

Yes. It expects REDMINE_BASE_URL, REDMINE_API_KEY, which you set in its configuration.

Is io.github.Nikhilprasad-r/redmine-mcp-connector open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.github.Nikhilprasad-r/redmine-mcp-connector?

It is published by Nikhilprasad-r. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.