redmine-mcp
redmine-mcp
Redmine用のステートレスなModel Context Protocolサーバーです。任意のRedmineインスタンスの前に配置することで、Claude(またはMCP対応のLLMクライアント)がユーザーの代わりにチケットの読み書き、工数の記録、Wikiの閲覧、プロジェクトの検索を行えるようになります。各ユーザーは自身のAPIキーを使用します。
ステートレス: データベース、セッション、共有シークレットは一切ありません。サーバーは各リクエストを、リクエストに含まれるAPIキーを使用してRedmineに転送します。
1つのサーバーで多ユーザー対応: オペレーターが設定するのはアップストリームの
REDMINE_URLのみです。各MCPクライアントは独自のX-Redmine-API-Keyを提供します。権限はRedmine側の設定に従います。対応範囲: チケット(CRUD + ノート)、プロジェクト、メンバーシップ、ユーザー、工数記録、Wiki(PUTによるアップサート)、添付ファイル(アップロード + ダウンロード)、全文検索、ステータス、トラッカー、カテゴリ、カスタムフィールド、列挙型。
クイックスタート
ローカル (uv)
uv sync
REDMINE_URL=https://redmine.example.com uv run redmine-mcpMCPエンドポイントは http://127.0.0.1:8080/mcp になります。
コンテナ (GHCR)
docker run --rm -p 8080:8080 \
-e REDMINE_URL=https://redmine.example.com \
ghcr.io/kalvadtech/redmine-mcp:latestこのイメージはマルチステージのAlpineベースで、非rootユーザーとして実行され、8080ポートを公開します。
Related MCP server: Redmine MCP Server
MCPクライアントへの組み込み
RedmineのAPIキーは マイアカウント > APIアクセスキー から取得してください。以下の両クライアントは、Streamable HTTP経由で同じMCPエンドポイントと通信します。その他のクライアント設定は不要です。
Claude Code
プロジェクトルートの .mcp.json:
{
"mcpServers": {
"redmine": {
"type": "http",
"url": "http://127.0.0.1:8080/mcp",
"headers": {
"X-Redmine-API-Key": "your-40-char-key"
}
}
}
}opencode
プロジェクトルート(またはopencode設定ディレクトリ)の opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"redmine": {
"type": "remote",
"url": "http://127.0.0.1:8080/mcp",
"enabled": true,
"headers": {
"X-Redmine-API-Key": "{env:REDMINE_API_KEY}"
}
}
}
}opencodeは headers 内での {env:VAR} 補間をサポートしているため、APIキーを構成ファイルに含める必要はありません: REDMINE_API_KEY=... opencode。
設定
変数 | 必須 | デフォルト | 用途 |
| はい | - | RedmineインスタンスのベースURL (httpまたはhttps) |
redmine-mcp のCLIフラグ:
--host bind address (default 127.0.0.1)
--port port (default 8080)
--log-level uvicorn log level (default info)REDMINE_URL が欠落しているか、http(s)でない場合、サーバーは起動時に即座に失敗します。
認証モデル
RedmineのURLはユーザーが指定するものではなく、REDMINE_URL を通じてデプロイメントごとに固定されます。これによりSSRFのリスクが排除され、クライアントがサーバーを任意のホストに向けることはできません。
クライアントが送信する唯一の認証情報は、X-Redmine-API-Key ヘッダーに含まれる自身のRedmine APIキーです。サーバーはこれを同じヘッダーとしてRedmineに転送し(クエリ文字列としてRedmineのアクセスログに残らないようにするため)、1回のリクエストに使用した後、破棄します。キャッシュ、共有サービスアカウント、なりすまし機能はありません。
ツール
59種類のツールが、RedmineのREST APIで公開されているすべてのリソースファミリーをカバーしています。リスト取得ツールは、ページングを容易にするために {items, total_count, limit, offset} を返します。
チケット
list_issues(プロジェクト、ステータス、担当者、トラッカー、カテゴリ、バージョン、保存済みクエリ、フリーテキストクエリ、ソート、include)get_issue(include: ジャーナル、添付ファイル、関連、子チケット、ウォッチャー)create_issue(incl.uploadsトークン、custom_fields、watcher_user_ids)update_issue(incl.notes、private_notes)add_issue_note(簡易ラッパー)delete_issue
チケットの関連
list_issue_relations,get_relation,create_issue_relation(関連 / ブロック / 先行 / 後続など、先行/後続にはdelayを指定可能)、delete_relation
ジャーナル(チケットのノート)
update_journal_note- 既存のノートのテキストやプライバシー設定を編集します。新しいノートを追加するにはadd_issue_noteを使用してください。
プロジェクトとバージョン
list_projects,get_projectlist_versions,get_version,create_version,update_version,delete_version
メンバーシップ
list_memberships,get_membership,add_project_member(ユーザーまたはグループ)、update_membership,remove_membership
ユーザー、マイアカウント、グループ、ロール
list_users,get_user(リテラル文字列"current"を受け付けます)get_my_account,update_my_accountlist_groups,get_group,create_group,update_group,delete_group,add_user_to_group,remove_user_from_grouplist_roles,get_role(権限を含む)
工数記録
list_time_entries(日付範囲、ユーザー、プロジェクト、チケット)create_time_entry(チケットまたはプロジェクト、時間、作業分類、作業日、コメント)update_time_entry,delete_time_entry
Wiki
list_wiki_pages,get_wiki_page(バージョン指定可能)create_or_update_wiki_page(PUTによるアップサート)delete_wiki_page
添付ファイルとファイル
get_attachment,download_attachment(25 MiB上限、base64出力)upload_attachment(create_issue / update_issue でuploadsを介して添付するためのトークンを返します)list_files,upload_file(1回でアップロード + プロジェクトのファイルエリアへ添付、オプションで version_id と説明を指定可能)
ニュース、クエリ、検索、メタデータ
list_news(プロジェクト横断またはプロジェクトごと)list_queries(保存済みクエリ。IDをquery_idとしてlist_issuesに渡します)search(チケット、ニュース、ドキュメント、Wikiなどの全文検索)list_issue_statuses,list_trackers,list_issue_categories,list_custom_fieldslist_issue_priorities,list_time_entry_activities,list_document_categories
デプロイメント
単一のRedmineインスタンスに対しては、環境ごとに1つのコンテナを実行してください:
docker run -d --name redmine-mcp \
--restart unless-stopped \
-p 8080:8080 \
-e REDMINE_URL=https://redmine.example.com \
ghcr.io/kalvadtech/redmine-mcp:latest通常のリバースプロキシとTLS終端の背後に配置してください。MCPプロトコルはサーバー側ではHTTPのみですが、ユーザーはプロキシ経由でTLSを利用できます。
複数のRedmineインスタンスがある場合は、インスタンスごとに独自の REDMINE_URL を持つコンテナを実行し、プロキシでホスト名やパスに基づいてルーティングしてください。
開発
uv sync
uv run pytest
uv run ruff check .
uv run mypy srcテストスイートは完全にオフラインで、respx を使用してRedmine HTTP APIをモックします。稼働中のRedmineに対する統合テストはありません。各自で用意してください。
貢献
プルリクエストを歓迎します。以下の点にご協力ください:
Conventional Commits に従うこと
変更を簡潔かつ適切にスコープすること(1コミットにつき1つの論理的な変更)
動作変更がある場合はテストを追加または更新すること
PRを開く前に
pytest,ruff,mypyを実行してクリーンな状態にすること
ライセンス
MIT (c) 2026 Kalvad.
This server cannot be deployed
Maintenance
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
MCP server for Linear project management and issue tracking
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server providing 63 tools to interact with Redmine instances, covering issues, projects, time entries, and wiki pages. It utilizes streamable HTTP transport and supports per-client authentication for secure management of Redmine resources.6 npm-
- 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.8911 npm1MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Redmine that enables interaction with issues, wiki pages, and time entries through natural language.ISC
- AlicenseAqualityDmaintenanceA local STDIO server that exposes Redmine REST API as MCP tools, allowing MCP clients to browse Redmine projects and tickets.6MIT