mcp-server-redmine
Allows interaction with the Redmine REST API, providing tools for managing issues, issue relations, projects, users, time entries, wiki pages, news, files, search, and roles within a Redmine instance.
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., "@mcp-server-redmine list my open issues"
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.
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-redmineOr use directly via npx:
npx mcp-server-redmineRelated MCP server: Redmine MCP Server
Configuration
Two environment variables are required, and one is optional:
Variable | Description |
| Base URL of your Redmine instance, e.g. |
| Your Redmine API access key (found in My account → API access key) |
| Optional. Absolute path; when set, |
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.jsonin 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 |
| ✓ | List issues with filters: project, status, tracker, assignee, priority, pagination |
| ✓ | Get a single issue by numeric ID |
| ✓ | Create a new issue in a project, optionally attaching uploaded files |
| ✓ | Update fields on an existing issue, optionally attaching uploaded files |
| ✓ | Permanently delete an issue |
Issue Relations
Tool | Status | Description |
| ⚠ | List all relations for a given Redmine issue |
| ⚠ | Get a single relation by its numeric ID |
| ⚠ | Create a relation between two issues (relates, blocks, precedes, duplicates, …) |
| ⚠ | Permanently delete a relation |
Projects
Tool | Status | Description |
| ✓ | List all accessible projects |
| ✓ | Get a project by identifier (slug) or numeric ID |
| ✓ | Create a new project |
| ✓ | Update an existing project |
Users
Tool | Status | Description |
| ✓ | List users (requires admin privileges) |
| ✓ | Get a user by numeric ID |
| ✓ | Get the authenticated user's profile |
My Account
Tool | Status | Description |
| ⚠ | Get the authenticated user's account details, API key, and custom fields |
Time Entries
Tool | Status | Description |
| ✓ | List time entries with filters: project, issue, user, date range |
| ✓ | Get a single time entry by numeric ID |
| ✓ | Log hours against an issue or project |
| ✓ | Update an existing time entry |
| ✓ | Permanently delete a time entry |
Wiki Pages
Tool | Status | Description |
| ⚠ | List all wiki pages in a project |
| ⚠ | Get wiki page content by project and title |
| ⚠ | Create or update a wiki page |
| ⚠ | Permanently delete a wiki page (requires admin) |
News
Tool | Status | Description |
| ⚡ | List news articles with optional project filtering |
Files
Tool | Status | Description |
| ⚠ | List all files in a project with metadata |
| ⚠ | Upload a local file and get an attachment token for issues or project files |
| ⚠ | Add an already-uploaded file (by token) to a project's Files module |
Search
Tool | Status | Description |
| ⚠ | Search issues, wiki pages, news, documents, changesets, messages, and projects |
Roles
Tool | Status | Description |
| ⚠ | List all roles with IDs and names |
| ⚠ | 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 typecheckContributing
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 toolscreate_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_searchB
[Alpha] Search Redmine content across issues, wiki pages, news, documents, changesets, messages, projects, and attachments. Use this to discover related work before fetching details.
Inputs: q (required), news, limit, scope, +11 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
Scored across 33 tools
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.
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.
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.
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
Related MCP Connectors
Read and update tickets, deals, tasks, and contacts in 18 Cores Tracker.
Read Weblate projects, strings, stats and changes; translate, suggest, comment and autotranslate.
Search and read Zammad tickets, customers and organizations; add notes, replies and ticket updates.
Manage ONES projects, issues, tests, work hours, and Wiki knowledge.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Redmine projects, issues, users, time entries, memberships, groups, versions, custom fields, and queries via 53 API endpoints, with OAuth authentication.1MIT
- AlicenseBqualityDmaintenanceMCP 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.8921 npm1MIT
- AlicenseNot gradedqualityCmaintenanceProvides MCP tools for interacting with Redmine, including issues, projects, wiki pages, time entries, and more.15 npm1MIT
- AlicenseAqualityCmaintenanceA local Model Context Protocol server (stdio) for Redmine that allows you to work with Redmine issues, projects, and time entries directly from your editor.1276 npmMIT