redmine-mcp
Manages a self-hosted Redmine instance (projects, issues, wiki, time entries, files, attachments, search) for Claude Code.
Projects: list, get details (enabled trackers/modules/categories), create, update, delete
Issues: list with filters (project, status, assignee, subject, limit), get details (comments, attachments), create, update (notes, status, done_ratio, custom_fields, uploads), delete
Wiki: list, read, create/overwrite, delete pages
Time entries: create, list (user/date/issue/project filters), update, delete
Attachments/files: upload files to obtain tokens, download attachments (text or base64), list and register project files (requires files module)
Search: full-text search across issues, wiki, news, etc.
Metadata: list tracker/status/priority/user/activity IDs needed for ID-based operations
Documents module is unsupported (no core REST API); use files or wiki instead. Writes can be silently ignored by Redmine, so verify with read-back.
Provides tools for interacting with a self-hosted Redmine instance, enabling project and issue listing, ticket creation and updates, full-text search across issues, wiki, and news, as well as metadata lookup for trackers, statuses, priorities, and users.
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 Show me the latest 5 high priority issues in the Mobile 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
An MCP server (stdio) for operating a self-hosted Redmine (redmine.dokkiitech.dev) from Claude Code.
Setup
Prerequisite: uv must be installed.
1. Issue a Redmine API key
Log in to Redmine
Click "My account" in the top right → "API access key" in the right sidebar → "Display"
Note the displayed key
2. Register it with Claude Code
claude mcp add --scope user redmine \
--env REDMINE_API_KEY=<自分のAPIキー> \
-- uvx --from git+https://github.com/dokkiitech/redmine-mcp redmine-mcpAfter registering, restart Claude Code and the redmine server will connect. Verify with claude mcp get redmine.
Related MCP server: Redmine MCP Server
Environment Variables
Variable | Required | Description |
| ✔ | Redmine API access key (issue one per user) |
| - | Connection destination (default: |
Provided Tools
Tool | Description |
| List projects |
| List tickets (filter by project, status, assignee, and subject) |
| Ticket details (including comment history and attachments) |
| Create a ticket |
| Update a ticket (add comments, change status, set progress, etc.) |
| Full-text search (tickets, Wiki, news, etc.) |
| List IDs for trackers / statuses / priorities / users |
Notes
The Redmine server (EC2) is stopped between 0:00 and 12:00 JST. If you get a connection error, check whether it is during operating hours (12:00–24:00 JST).
The Redmine REST API silently ignores invalid values (such as a nonexistent custom field ID) without raising an error. After update operations, it is safest to re-read the ticket with
get_issueand confirm the changes were applied.
Updating
uvx caches git repositories. To pull in a new version:
uv cache clean redmine-mcpDevelopment
git clone https://github.com/dokkiitech/redmine-mcp
cd redmine-mcp
REDMINE_API_KEY=<key> uv run redmine-mcp # stdio で起動(Ctrl+C で終了)License
MIT
Available Tools
24 toolsadd_project_fileA
プロジェクトの「ファイル」にアップロード済みファイルを登録する。
先に upload_attachment でトークンを得る。プロジェクトで files モジュールが有効である必要あり。 文書(Documents)モジュールは API 非対応のためこちらを使う。
Inputs: token (required), project_id (required), filename, description. Returns: result
create_issueA
チケットを新規作成する。
Args: project_id: プロジェクトの identifier または数値 ID subject: 件名(必須) description: 説明(Textile/Markdown は Redmine 設定に従う) tracker_id: トラッカー数値 ID。プロジェクトで有効なもののみ(無効な ID は Redmine が黙って別トラッカーに差し替える。get_project で有効トラッカーを確認) priority_id / assigned_to_id: 数値 ID(list_metadata で確認) parent_issue_id: 親チケット ID(サブタスクにする場合) custom_fields: カスタムフィールド(例: [{"id": 2, "value": "32"}]) uploads: 添付(例: [{"token": "...", "filename": "a.txt"}]。先に upload_attachment)
Inputs: subject (required), project_id (required), uploads, tracker_id, +5 more. Returns: result
create_projectB
プロジェクトを新規作成する。
Args: name: プロジェクト名 identifier: 識別子(半角英小文字・数字・ハイフン。後から変更不可) is_public: 公開プロジェクトにするか(既定 False) enabled_module_names: 有効モジュール(例: ["issue_tracking", "time_tracking", "wiki", "files"]) tracker_ids: 有効にするトラッカー ID(例: [1, 2, 3, 4]。省略時は Redmine の既定で、 全トラッカーとは限らない)
Inputs: name (required), identifier (required), is_public, parent_id, +3 more. Returns: result
create_time_entryC
作業時間を記録する(チケットまたはプロジェクトに紐付け)。
Args: hours: 時間(例: 0.5) issue_id: チケット ID(project_id とどちらか必須) activity_id: 作業分類 ID(list_metadata の time_entry_activities で確認) spent_on: 作業日(YYYY-MM-DD、省略時は今日)
Inputs: hours (required), comments, issue_id, spent_on, +2 more. Returns: result
delete_issueA
チケットを完全削除する(取り消し不可。通常はステータス「却下」等を検討すること)。
Inputs: issue_id (required). Returns: result
delete_projectB
プロジェクトを完全削除する(チケット・Wiki も全て消える。取り消し不可)。
Inputs: project_id (required). Returns: result
delete_time_entryA
作業時間の記録を削除する(取り消し不可)。
Inputs: time_entry_id (required). Returns: result
delete_wiki_pageC
Wiki ページを削除する(取り消し不可)。
Inputs: title (required), project_id (required). Returns: result
download_attachmentB
添付ファイルのメタ情報と中身を取得する(テキストはそのまま、バイナリは base64。上限超は本文省略)。
Inputs: attachment_id (required), max_bytes. Returns: result
get_issueB
チケットの詳細(説明・コメント履歴・添付一覧込み)を返す。
Inputs: issue_id (required). Returns: result
get_projectA
プロジェクトの詳細(有効トラッカー・有効モジュール・カテゴリ込み)を返す。
チケット作成前に対象プロジェクトでトラッカーが有効か確認できる。
Inputs: project_id (required). Returns: result
list_filesC
プロジェクトの「ファイル」(Files モジュール)一覧を返す。
Inputs: project_id (required). Returns: result
list_issuesA
チケット一覧を返す。
Args: project_id: プロジェクトの identifier または数値 ID(省略で全プロジェクト) status_id: "open" / "closed" / "*" / ステータス数値 ID assigned_to_id: 担当者の数値 ID("me" も可) subject: 件名の部分一致フィルタ limit: 最大件数(既定 25、最大 100)
Inputs: limit, subject, status_id, project_id, +1 more. Returns: result
list_metadataA
ID 指定に必要な参照情報(トラッカー / ステータス / 優先度 / ユーザー / 作業分類)をまとめて返す。
Inputs: no named parameters. Returns: result
list_projectsB
Redmine のプロジェクト一覧を返す。
Inputs: no named parameters. Returns: result
list_time_entriesC
作業時間の一覧を返す(フィルタ可)。
Args: user_id: 数値 ID または "me" from_date / to_date: 期間(YYYY-MM-DD)
Inputs: limit, to_date, user_id, issue_id, +2 more. Returns: result
list_wiki_pagesC
プロジェクトの Wiki ページ一覧を返す。
Inputs: project_id (required). Returns: result
read_wiki_pageC
Wiki ページの本文を返す。
Inputs: title (required), project_id (required). Returns: result
searchC
Redmine 全体を全文検索する(チケット・Wiki・ニュース等)。
Inputs: query (required), limit. Returns: result
update_issueA
チケットを更新する。コメント追加は notes だけ渡せばよい。
Args: issue_id: チケット ID notes: 追加するコメント status_id: ステータス数値 ID(list_metadata で確認) done_ratio: 進捗率(0-100) custom_fields: カスタムフィールド(例: [{"id": 2, "value": "32"}])。 Redmine は不正値を 204 のまま黙って捨てるので、更新後に get_issue で検証すること uploads: 添付(例: [{"token": "...", "filename": "a.txt"}]。先に upload_attachment)
Inputs: issue_id (required), notes, subject, uploads, +6 more. Returns: result
update_projectC
プロジェクトを更新する(enabled_module_names / tracker_ids は丸ごと置き換えになる点に注意)。
Inputs: project_id (required), name, is_public, parent_id, +3 more. Returns: result
update_time_entryC
作業時間の記録を修正する。
Inputs: time_entry_id (required), hours, comments, spent_on, +1 more. Returns: result
upload_attachmentA
ファイルを Redmine にアップロードしてトークンを得る。
得たトークンは create_issue / update_issue の uploads、または add_project_file で使う (未使用トークンは一定期間で失効)。テキストは content_text、バイナリは content_base64。
Inputs: filename (required), content_text, content_base64. Returns: result
write_wiki_pageB
Wiki ページを作成または更新する(存在しなければ作成、あれば上書き)。
Args: text: 本文(Textile/Markdown は Redmine 設定に従う) comments: 変更コメント
Inputs: text (required), title (required), project_id (required), comments. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 24 tools
Each tool targets a clearly distinct resource+action pair (issues, projects, wiki pages, time entries, attachments, files). Overlap is minimal and the CRUD verbs on each resource are unambiguous. An agent can confidently select tools from the set.
Predominantly consistent snake_case verb_noun (list_/get_/create_/update_/delete_ across projects and issues). Minor deviations exist: write_wiki_page/read_wiki_page use read/write instead of get/create+update, and add_project_file breaks the create pattern.
24 tools is on the heavy side but justified by the breadth of Redmine (issues, projects, wiki, time entries, files, attachments, metadata, search). Each tool covers a genuine domain operation rather than being redundant.
Strong CRUD coverage for projects, issues, wiki, time entries, attachments, and files, plus search and metadata lookup. Some gaps remain (issue relations, versions/milestones, memberships, news, categories), but core workflows are well supported.
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server for generating rough-draft project plans from natural-language prompts.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Shared memory MCP server for Claude Code, Codex, Gemini CLI and Cursor. Cited, editable.
Related MCP Servers
- AlicenseBqualityCmaintenanceA Model Context Protocol server that enables Claude Code to directly interact with Redmine project management systems, supporting issue management, project operations, and search features.229MIT
- AlicenseCqualityDmaintenanceModel Context Protocol (MCP) server for Redmine that provides comprehensive access to the Redmine REST API, enabling users to operate Redmine from MCP clients such as Claude Desktop.9014 npmMIT
- AlicenseCqualityBmaintenanceModel Context Protocol (MCP) server for Redmine that provides comprehensive access to the Redmine REST API. It allows you to operate Redmine from MCP clients such as Claude Desktop.903,460 npm30MIT
- AlicenseAqualityDmaintenanceEnables natural language interaction with Redmine via Claude Code or other MCP clients, supporting project, issue, and wiki management.111MIT