Skip to main content
Glama
mcp-server-redmine

mcp-server-redmine

by jesusr00

mcp-server-redmine

MCP server for the Redmine REST API. Exposes 33 tools covering Issues, Issue Relations, Projects, Users, My Account, Time Entries, Wiki Pages, News, Files, Search, and Roles via stdio transport.

Installation

pnpm add mcp-server-redmine

Or use directly via npx:

npx mcp-server-redmine

Related MCP server: Redmine MCP Server

Configuration

Two environment variables are required, and one is optional:

Variable

Description

REDMINE_URL

Base URL of your Redmine instance, e.g. https://redmine.example.com

REDMINE_API_KEY

Your Redmine API access key (found in My account → API access key)

REDMINE_UPLOAD_DIR

Optional. Absolute path; when set, redmine_upload_attachment can only read files inside this directory (symlinks are resolved; hard links and bind mounts are not detected). Recommended to limit what the model can upload.

Claude Desktop Setup

Add to claude_desktop_config.json:

Note: In Claude Desktop, open Settings → Developer → Edit Config. This opens (or creates) claude_desktop_config.json in your default editor. After saving, fully quit Claude Desktop (not just minimize) and reopen it for the changes to take effect.

{
  "mcpServers": {
    "redmine": {
      "command": "npx",
      "args": ["mcp-server-redmine"],
      "env": {
        "REDMINE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your-api-key"
      }
    }
  }
}

Claude Code Setup

Run from your project root:

claude mcp add-json redmine '{"command":"npx","args":["mcp-server-redmine"],"env":{"REDMINE_URL":"https://redmine.example.com","REDMINE_API_KEY":"your-api-key"}}'

Or add manually to .mcp.json at the root of your project:

{
  "mcpServers": {
    "redmine": {
      "command": "npx",
      "args": ["mcp-server-redmine"],
      "env": {
        "REDMINE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your-api-key"
      }
    }
  }
}

Tools

Issues

Tool

Status

Description

redmine_list_issues

✓

List issues with filters: project, status, tracker, assignee, priority, pagination

redmine_get_issue

✓

Get a single issue by numeric ID

redmine_create_issue

✓

Create a new issue in a project, optionally attaching uploaded files

redmine_update_issue

✓

Update fields on an existing issue, optionally attaching uploaded files

redmine_delete_issue

✓

Permanently delete an issue

Issue Relations

Tool

Status

Description

list_issue_relations

⚠

List all relations for a given Redmine issue

get_issue_relation

⚠

Get a single relation by its numeric ID

create_issue_relation

⚠

Create a relation between two issues (relates, blocks, precedes, duplicates, …)

delete_issue_relation

⚠

Permanently delete a relation

Projects

Tool

Status

Description

redmine_list_projects

✓

List all accessible projects

redmine_get_project

✓

Get a project by identifier (slug) or numeric ID

redmine_create_project

✓

Create a new project

redmine_update_project

✓

Update an existing project

Users

Tool

Status

Description

redmine_list_users

✓

List users (requires admin privileges)

redmine_get_user

✓

Get a user by numeric ID

redmine_get_current_user

✓

Get the authenticated user's profile

My Account

Tool

Status

Description

redmine_get_my_account

⚠

Get the authenticated user's account details, API key, and custom fields

Time Entries

Tool

Status

Description

redmine_list_time_entries

✓

List time entries with filters: project, issue, user, date range

redmine_get_time_entry

✓

Get a single time entry by numeric ID

redmine_log_time

✓

Log hours against an issue or project

redmine_update_time_entry

✓

Update an existing time entry

redmine_delete_time_entry

✓

Permanently delete a time entry

Wiki Pages

Tool

Status

Description

redmine_list_wiki_pages

⚠

List all wiki pages in a project

redmine_get_wiki_page

⚠

Get wiki page content by project and title

redmine_update_wiki_page

⚠

Create or update a wiki page

redmine_delete_wiki_page

⚠

Permanently delete a wiki page (requires admin)

News

Tool

Status

Description

redmine_list_news

⚡

List news articles with optional project filtering

Files

Tool

Status

Description

redmine_list_files

⚠

List all files in a project with metadata

redmine_upload_attachment

⚠

Upload a local file and get an attachment token for issues or project files

redmine_upload_file

⚠

Add an already-uploaded file (by token) to a project's Files module

Tool

Status

Description

redmine_search

⚠

Search issues, wiki pages, news, documents, changesets, messages, and projects

Roles

Tool

Status

Description

redmine_list_roles

⚠

List all roles with IDs and names

redmine_get_role

⚠

Get role details including permissions

API Stability

The tools follow Redmine's API resource stability levels:

Status

Meaning

✓ Stable

Feature complete, no major changes planned

⚠ Alpha

Major functionality in place, needs feedback from integrators

⚡ Prototype

Rough implementation, possible breaking changes. Not recommended for production

Development

# Install dependencies
pnpm install

# Build
pnpm build

# Watch mode
pnpm dev

# Tests
pnpm test

# Type check
pnpm typecheck

Contributing

Contributions are welcome! Please read the Contributing Guide for setup instructions, the project structure, and how to add a new tool. Bug reports and feature requests go through the issue templates.

Security

Found a vulnerability? Please report it privately — see our Security Policy. Do not open a public issue for security problems.

License

MIT © Jesus Reikel Lopez Martin

Available Tools

33 tools
create_issue_relationB

[Alpha] Create a relation between two Redmine issues. Supported types: relates, duplicates, duplicated, blocks, blocked, precedes, follows, copied_to, copied_from.

Inputs: issue_id (required), issue_to_id (required), delay, relation_type.

delete_issue_relationB

[Alpha] Permanently delete a Redmine issue relation by its numeric ID. This action cannot be undone.

Inputs: id (required).

get_issue_relationB

[Alpha] Get a single Redmine issue relation by its numeric ID.

Inputs: id (required).

list_issue_relationsA

[Alpha] List all relations for a given Redmine issue. Returns each relation's ID, related issue ID, type, and optional delay.

Inputs: issue_id (required).

redmine_create_issueC

[Stable] Create a new Redmine issue. Returns the created issue with its assigned ID.

Inputs: subject (required), project_id (required), uploads, due_date, +10 more.

redmine_create_projectC

[Stable] Create a new Redmine project. Returns the created project.

Inputs: name (required), identifier (required), is_public, description, +1 more.

redmine_delete_issueA

[Stable] Permanently delete a Redmine issue and all its journals and attachments. This action cannot be undone.

Inputs: id (required).

redmine_delete_time_entryB

[Stable] Permanently delete a Redmine time entry. This action cannot be undone.

Inputs: id (required).

redmine_delete_wiki_pageA

[Alpha] Permanently delete a Redmine wiki page. Requires admin privileges. This action cannot be undone.

Inputs: title (required), project_id (required).

redmine_get_current_userA

[Stable] Get the details of the currently authenticated Redmine user (identified by REDMINE_API_KEY).

Inputs: no named parameters.

redmine_get_issueA

[Stable] Get full details of a single Redmine issue by its numeric ID, including description, status, dates, and optional extras like journals (comments) and attachments.

Inputs: id (required), include.

redmine_get_my_accountA

[Stable] Get the full account details of the currently authenticated Redmine user, including email address, API key, and custom fields.

Inputs: no named parameters.

redmine_get_projectA

[Stable] Get details of a single Redmine project by its identifier (string slug) or numeric ID.

Inputs: id (required).

redmine_get_roleA

[Alpha] Get detailed information about a role including permissions, visibility settings, and assignability (requires Redmine 2.2+).

Inputs: id (required).

redmine_get_time_entryB

[Stable] Get details of a single time entry by its numeric ID.

Inputs: id (required).

redmine_get_userB

[Stable] Get details of a single Redmine user by numeric ID.

Inputs: id (required), include.

redmine_get_wiki_pageB

[Alpha] Get the content and metadata of a Redmine wiki page by project and page title.

Inputs: title (required), project_id (required).

redmine_list_filesA

[Alpha] List all files in a Redmine project. Returns file metadata including name, size, type, author, and download URL.

Inputs: project_id (required), limit, offset.

redmine_list_issuesA

[Stable] List Redmine issues with optional filters. Returns paginated results with issue ID, subject, status, priority, and assignee. Use this to browse or search for issues before fetching details.

Inputs: sort, limit, offset, include, +5 more.

redmine_list_newsA

[Alpha] List Redmine news articles. Returns paginated results with title, summary, author, project, and creation date. Omit project_id to fetch news across all projects, or provide it to scope results to a single project.

Inputs: limit, offset, project_id.

redmine_list_projectsC

[Stable] List all Redmine projects the API user has access to, with pagination support.

Inputs: limit, offset, include.

redmine_list_rolesB

[Alpha] List all roles in the Redmine instance. Returns role IDs and names for role assignment.

Inputs: limit, offset.

redmine_list_time_entriesC

[Stable] List Redmine time entries with optional filters. Returns hours logged, activity, issue, and project for each entry.

Inputs: to, from, limit, offset, +3 more.

redmine_list_usersA

[Stable] List Redmine users. Requires admin privileges. Returns user IDs, login names, and email addresses.

Inputs: name, limit, offset, status, +1 more.

redmine_list_wiki_pagesC

[Alpha] List all wiki pages in a Redmine project.

Inputs: project_id (required).

redmine_log_timeB

[Stable] Log time against a Redmine issue or project. Either issue_id or project_id is required. Returns the created time entry.

Inputs: hours (required), activity_id (required), comments, issue_id, +2 more.

redmine_update_issueA

[Stable] Update an existing Redmine issue. Only provided fields are changed. Use 'notes' to add a journal comment.

Inputs: id (required), notes, subject, uploads, +11 more.

redmine_update_projectB

[Stable] Update an existing Redmine project. Only provided fields are changed.

Inputs: id (required), name, is_public, description, +1 more.

redmine_update_time_entryB

[Stable] Update an existing Redmine time entry. Only provided fields are changed.

Inputs: id (required), hours, comments, spent_on, +1 more.

redmine_update_wiki_pageA

[Alpha] Create or update a Redmine wiki page. If the page does not exist, it will be created. IMPORTANT: Always fetch the page first with redmine_get_wiki_page and pass the current 'version' number to avoid silently overwriting concurrent edits.

Inputs: text (required), title (required), project_id (required), version, +1 more.

redmine_upload_attachmentA

[Alpha] Upload a local file to Redmine and get an attachment token. Reads the file at the given absolute path and posts its content to Redmine's attachment API. Pass the returned token in the 'uploads' array of redmine_create_issue or redmine_update_issue to attach the file to an issue, or to redmine_upload_file to add it to a project's Files module. If the server is configured with REDMINE_UPLOAD_DIR, only files inside that directory can be uploaded.

Inputs: file_path (required), filename, content_type.

redmine_upload_fileA

[Alpha] Add an already-uploaded file to a Redmine project's Files module. First call redmine_upload_attachment to get an upload token, then pass that token here to associate the file with the project.

Inputs: token (required), project_id (required), filename, version_id, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 33 tools

    Disambiguation4/5

    Most tools are cleanly separated by resource and action, but redmine_get_current_user and redmine_get_my_account overlap in purpose, and redmine_upload_attachment vs redmine_upload_file could be misread despite helpful descriptions. Otherwise, issue/project/time/wiki tools are clearly distinct.

    Naming Consistency4/5

    The dominant redmine_<verb>_<noun> pattern is easy to follow, but the issue-relation tools (list_issue_relations, get_issue_relation, create_issue_relation, delete_issue_relation) break the redmine_ prefix convention, and redmine_search doesn't fit the verb_noun shape.

    Tool Count2/5

    33 tools is well beyond the ideal 3-15 range and falls into the 25+ overgrown category. While Redmine is a broad system, many tools are simple read operations (list/get) that could be consolidated, making the set feel heavy.

    Completeness3/5

    Core Redmine workflows are well covered: issues, projects, time entries, and wiki pages have full CRUD, and issue relations are complete. However, there are notable gaps such as no project deletion, no file deletion, read-only users/roles, and news limited to listing, which prevents full lifecycle coverage.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables interaction with Redmine projects, issues, users, time entries, memberships, groups, versions, custom fields, and queries via 53 API endpoints, with OAuth authentication.
      1
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      MCP server for Redmine project management, enabling tools for managing projects, issues, users, time entries, groups, memberships, versions, wiki, news, attachments, search, and Agile sprints via the Redmine REST API.
      89
      21 npm
      1
      MIT