Skip to main content
Glama
redmine-mcp

redmine-mcp

by dokkiitech

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

  1. Log in to Redmine

  2. Click "My account" in the top right → "API access key" in the right sidebar → "Display"

  3. 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-mcp

After 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_KEY

✔

Redmine API access key (issue one per user)

REDMINE_URL

-

Connection destination (default: https://redmine.dokkiitech.dev)

Provided Tools

Tool

Description

list_projects

List projects

list_issues

List tickets (filter by project, status, assignee, and subject)

get_issue

Ticket details (including comment history and attachments)

create_issue

Create a ticket

update_issue

Update a ticket (add comments, change status, set progress, etc.)

search

Full-text search (tickets, Wiki, news, etc.)

list_metadata

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_issue and confirm the changes were applied.

Updating

uvx caches git repositories. To pull in a new version:

uv cache clean redmine-mcp

Development

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 tools
add_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

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

    B3.3/5.0

    Scored across 24 tools

    Disambiguation5/5

    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.

    Naming Consistency4/5

    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.

    Tool Count4/5

    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.

    Completeness4/5

    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

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      C
      maintenance
      A Model Context Protocol server that enables Claude Code to directly interact with Redmine project management systems, supporting issue management, project operations, and search features.
      22
      9
      MIT
    • A
      license
      C
      quality
      D
      maintenance
      Model 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.
      90
      14 npm
      MIT
    • A
      license
      C
      quality
      B
      maintenance
      Model 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.
      90
      3,460 npm
      30
      MIT