onozaty/redmine-mcp-server で AI にプロジェクトの状況を分析させる
Redmineで管理しているプロジェクトの状況を、AIに分析してもらいたいと思ったことはありませんか?
Model Context Protocol (MCP) を利用すると、Claude DesktopなどのAIエージェントから直接Redmineにアクセスして、プロジェクトの状況分析を依頼できるようになります。
本記事では、onozaty/redmine-mcp-server を使ってAIにプロジェクトを分析させる方法を紹介します。
onozaty/redmine-mcp-server とは
onozaty/redmine-mcp-server は、RedmineのREST APIを包括的にカバーするMCPサーバーです。
MCPは、Anthropic社が提唱するAIアシスタントと外部ツールを連携させるための標準プロトコルです。MCPサーバーを経由することで、AIエージェントが外部のシステムやデータソースと安全かつ標準的な方法で対話できるようになります。
主な機能
本ツールは、RedmineのREST APIで操作できるすべての機能をカバーしています。
- Issues: チケットの作成、更新、削除、検索、関連チケットの管理
- Projects: プロジェクトの作成、更新、削除、アーカイブ、メンバー管理
- Users: ユーザーの作成、更新、削除、グループ管理
- Time Entries: 作業時間の記録、更新、削除
- Wiki: ページの作成、更新、削除、バージョン管理
- その他: ファイル、添付ファイル、クエリ、カスタムフィールド、ロール、トラッカー、ステータスなど
また、Read-Only モードにも対応しており、データの参照のみを許可することで、安全にAIからアクセスさせることができます。
環境構築
前提条件
- Redmineへのアクセス権限
- Claude Desktop (または他のMCPクライアント)
- Redmine API キー
Redmine API キーの取得
- Redmineにログイン
- 個人設定画面で「APIアクセスキー」を表示または生成
詳細はRedmine REST API のドキュメントを参照してください。
Claude Desktop の設定
Claude Desktop の設定ファイル claude_desktop_config.json に以下を追加します。
npxを使用する場合
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": ["-y", "@onozaty/redmine-mcp-server"],
"env": {
"REDMINE_URL": "https://your-redmine.example.com",
"REDMINE_API_KEY": "your-api-key-here",
"REDMINE_MCP_READ_ONLY": "true"
}
}
}
}
Dockerを使用する場合
Node.jsをインストールしたくない場合や、コンテナで分離して実行したい場合はDockerを使用できます。
{
"mcpServers": {
"redmine": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "REDMINE_URL=https://your-redmine.example.com",
"-e", "REDMINE_API_KEY=your-api-key-here",
"-e", "REDMINE_MCP_READ_ONLY=true",
"ghcr.io/onozaty/redmine-mcp-server:latest"
]
}
}
}
設定ファイルの場所は以下の通りです。
-
Windows:
%APPDATA%\Claude\claude_desktop_config.json -
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
設定項目の説明
-
REDMINE_URL: RedmineのベースURL (例:https://redmine.example.com) -
REDMINE_API_KEY: 取得したAPIキー -
REDMINE_MCP_READ_ONLY:trueに設定することで読み取り専用モードになります(分析のみの用途なら推奨)
設定後、Claude Desktop を再起動します。
AI にプロジェクトを分析させる
設定が完了すると、Claude Desktop から Redmine にアクセスできるようになります。
実際にプロジェクトの状況を分析させてみましょう。
プロジェクト全体の状況を分析
プロジェクトの現状を把握したいときは、以下のようにAIに依頼します。
プロジェクト「デモ用プロジェクト」の現在の状況を教えてください。
オープンなチケットを全て確認したうえで分析をお願いします。
Claudeの分析結果(クリックで展開)
Redmineのプロジェクト「デモ用プロジェクト」の現状を確認させていただきます。まず、プロジェクトの一覧を取得して、該当するプロジェクトを特定します。プロジェクトが見つかりました(ID: 1)。次に、このプロジェクトのオープンなチケットを全て取得します。オープンなチケットを全て取得できました。合計103件のチケットが存在しています。これらを詳しく分析してまとめます。
プロジェクト「デモ用プロジェクト」の現状分析
📊 全体サマリー
- オープンチケット総数: 103件
- プロジェクトID: 1
- プロジェクト識別子: demo
- プロジェクト作成日: 2012年2月29日
📈 ステータス別内訳
- 新規: 88件(85.4%)
- 進行中: 13件(12.6%)
- 解決: 2件(1.9%)※クローズされていない解決済みチケット
🏷️ トラッカー別内訳
- バグ: 74件(71.8%)
- 機能: 20件(19.4%)
- サポート: 9件(8.7%)
⚡ 優先度別内訳
- 今すぐ: 5件
- 急いで: 2件
- 高め: 5件
- 通常: 90件
- 低め: 1件
👥 担当者別状況
- Demo Manager: 29件
- Demo Developer: 9件
- Demo Reporter: 6件
- 未割当: 59件(57.3%)
📅 期限超過チケット
現在日(2025年12月21日)時点で期限超過しているチケット:
- #26143: テスト1111(期限: 2025-12-15)
- #26136: Redmineのインストールに失敗する(期限: 2025-12-05)
- #26140: 新規機能追加(期限: 2025-12-08)
- #26137: カスタマイズテスト A-25(期限: 2025-12-10)
- その他多数
🎯 バージョン別内訳
主なバージョン:
- a: 65件
- てすと: 6件
- !テスト_要件定義: 12件
- 分析作業: 2件
- その他複数バージョン
🔍 注目すべき課題
1. 未割当チケットが多い(57.3%)
- 半数以上のチケットに担当者が設定されていません
2. 新規ステータスの滞留(85.4%)
- ほとんどのチケットが新規のままで、作業が開始されていない可能性
3. 期限管理の問題
- 期限切れのチケットが複数存在
4. テスト用チケットの混在
- 実際の業務チケットとテスト用チケットが混在している様子
5. 階層構造の活用
- 親子関係を持つチケットが複数あり、適切にWBS管理されている箇所もある
💡 改善提案
- 未割当チケットの整理: 担当者を明確にアサインする
- テストチケットの整理: 不要なテストチケットをクローズまたは削除
- 期限の見直し: 期限切れチケットの期限を再設定または優先度を調整
- 進捗管理の強化: 新規ステータスに長期滞留しているチケットを進行中に移行
- カテゴリ・バージョンの整理: 使用されていない、または重複しているカテゴリを統合
このプロジェクトは、デモ用としての性質上、多様なテストチケットが作成されていますが、実際の運用を想定した場合は、上記の改善点に取り組むことで、より効率的なプロジェクト管理が可能になります。
このように、AIはオープンされている全てのチケットを自動で分析し、詳細な統計情報と改善提案を提示してくれます。
期限切れチケットの分析
遅延しているタスクを確認したいときは、以下のように依頼します。
プロジェクト「デモ用プロジェクト」で期限切れになっているチケットをリストアップして、担当者別にまとめてください。
Claudeの分析結果(クリックで展開)
期限切れのチケットを担当者別に整理します。現在日(2025年12月21日)を基準に分析します。先ほど取得したデータから期限切れチケットを抽出して整理します。
期限切れチケット一覧(担当者別)
👤 Demo Manager(12件)
| チケット# | 題名 | 期限 | 優先度 | 進捗率 | トラッカー |
|---|---|---|---|---|---|
| #26144 | Redmineテスト実施 | 2025-12-19 | 通常 | 0% | バグ |
| #26140 | 新規機能追加 | 2025-12-08 | 高め | 50% | 機能 |
| #26134 | AAA000a-1作業 | 2025-11-28 | 通常 | 80% | バグ |
| #26133 | AAA000aaa作業 | 2025-11-28 | 通常 | 80% | 機能 |
| #26113 | あちゃあ対応 | 2025-11-30 | 通常 | 20% | バグ |
| #26114 | あちゃあ対応その2 | 2025-11-30 | 通常 | 0% | バグ |
| #26038 | M365アプリ作成勉強会 | 2025-09-24 | 通常 | 0% | 機能 |
| #26057 | test | 2025-10-31 | 通常 | 30% | バグ |
| #26082 | テストチケット - 管理者による自動テスト実行 | 期限なし→進行中 | 通常 | 30% | バグ |
| #26080 | テストチケット - 必須項目のみ(管理者作成) | 期限なし→進行中 | 通常 | 30% | バグ |
| #26076 | 動作確認しています | 期限なし | 通常 | 0% | バグ |
| #26053 | 設計バグ | 2025-10-10 | 通常 | 100% | バグ |
👤 Demo Developer(5件)
| チケット# | 題名 | 期限 | 優先度 | 進捗率 | トラッカー |
|---|---|---|---|---|---|
| #26137 | カスタマイズテスト A-25 | 2025-12-10 | 通常 | 0% | 機能 |
| #26136 | Redmineのインストールに失敗する | 2025-12-05 | 通常 | 100% | サポート |
| #26117 | [追加改修]問い合わせフォームの追加 | 2025-11-17 | 高め | 70% | 機能 |
| #26048 | ユーザー登録ができない | 2025-10-03 | 急いで | 30% | サポート |
| #26081 | 開発者が作成したバグチケット - ログイン機能の不具合 | 2025-12-10 | 通常 | 0% | バグ |
👤 Demo Reporter(5件)
| チケット# | 題名 | 期限 | 優先度 | 進捗率 | トラッカー |
|---|---|---|---|---|---|
| #26131 | test | 2025-11-26 | 今すぐ | 100% | サポート |
| #26115 | テスト ゆ | 2025-12-05 | 通常 | 10% | バグ |
| #26098 | 課題_マスタデータの不整合 | 2025-11-21 | 通常 | 0% | バグ |
| #26093 | 課題_マスタのコード定義書が無い | 2025-11-21 | 通常 | 0% | バグ |
| #26091 | 창신할당 | 期限なし | 通常 | 0% | バグ |
👤 未割当(14件)
| チケット# | 題名 | 期限 | 優先度 | 進捗率 | トラッカー |
|---|---|---|---|---|---|
| #26143 | テスト1111 | 2025-12-15 | 通常 | 0% | 機能 |
| #26099 | システム刷新プロジェクト | 2025-11-21 | 通常 | 12% | バグ |
| #26089 | test | 2025-11-14 | 通常 | 0% | バグ |
| #26086 | サポートテスト | 2025-11-07 | 通常 | 0% | サポート |
| #26075 | おためし | 2025-10-29 | 通常 | 0% | バグ |
| #26073 | 初めまして | 2025-10-30 | 急いで | 50% | サポート |
| #26072 | 新規バグ改修 | 2025-10-29 | 通常 | 0% | バグ |
| #26066 | てすとなのだ1015 | 2025-10-16 | 通常 | 0% | 機能 |
| #26067 | tesuyo | 2025-10-16 | 通常 | 0% | バグ |
| #26056 | バグ | 2025-10-31 | 通常 | 20% | バグ |
| #26055 | バグ | 2025-10-01 | 高め | 100% | バグ |
| #26049 | ログインできない | 2025-10-19 | 通常 | 20% | サポート |
| #26036 | チケット作成③(developer) | 2025-09-21 | 今すぐ | 30% | 機能 |
| #26035 | (親チケット情報取得のため除外) | - | - | - | - |
📊 期限切れチケットのサマリー
担当者別件数
- Demo Manager: 12件
- 未割当: 14件
- Demo Developer: 5件
- Demo Reporter: 5件
重要度が高い期限切れチケット
🔴 優先度「今すぐ」
- #26131: test(Demo Reporter担当、100%完了だがクローズされていない)
- #26036: チケット作成③(未割当、30%)
🟡 優先度「急いで」
- #26073: 初めまして(未割当、50%)
- #26048: ユーザー登録ができない(Demo Developer担当、30%)
🟠 優先度「高め」
- #26140: 新規機能追加(Demo Manager担当、50%)
- #26117: [追加改修]問い合わせフォームの追加(Demo Developer担当、70%)
- #26055: バグ(未割当、100%完了だがクローズされていない)
💡 推奨アクション
- 完了済みチケットのクローズ: #26131、#26055、#26053、#26136は進捗率100%なのでクローズすべき
- 未割当チケットの担当者アサイン: 14件の未割当チケットに担当者を設定
- 期限の再設定: 特に9月、10月期限のチケットは大幅に遅延しているため、期限を見直すか、不要であればクローズ
- 高優先度チケットの対応: 「今すぐ」「急いで」の優先度が設定されているチケットを最優先で対応
これにより、プロジェクトのボトルネックや、リソース配分の見直しが必要な箇所を発見できます。
さらに深掘りして分析
AIからの分析結果に対して、さらに質問を重ねることで、より詳細な分析が可能です。
例えば、上記の期限切れチケット分析の結果を見て、以下のような追加質問ができます。
Demo Managerが担当している期限切れチケットの中で、進捗率が50%未満のものに絞って、作成日が古い順に並べてください。また、それらのチケットの傾向を分析してください。
必要とあればnoteも確認してください。
Claudeの分析結果(クリックで展開)
Demo Managerが担当している期限切れチケットで進捗率50%未満のものについて、noteも含めて詳細に調査します。
まず、該当するチケットのIDをリストアップし、それぞれのnote(ジャーナル)を確認していきます。それでは、収集した情報を基に詳細な分析レポートを作成します。
Demo Manager担当・進捗率50%未満・期限切れチケット詳細分析
📋 チケット一覧(作成日が古い順)
| # | ID | 題名 | 作成日 | 期限 | 遅延 | 進捗 | 工数 | 最終更新 | ジャーナル数 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | #26038 | M365アプリ作成勉強会 | 2025-09-11 | 2025-09-24 | 88日 | 0% | 4h | 2025-09-21 | 3件 |
| 2 | #26057 | test | 2025-10-03 | 2025-10-31 | 51日 | 30% | - | 2025-10-21 | 2件 |
| 3 | #26076 | 動作確認しています | 2025-10-29 | なし | - | 0% | - | 2025-10-30 | 1件 |
| 4 | #26080 | テストチケット - 必須項目のみ | 2025-10-30 | なし | - | 30% | - | 2025-10-30 | 1件 |
| 5 | #26082 | テストチケット - 管理者による自動テスト実行 | 2025-10-30 | なし | - | 30% | - | 2025-10-30 | 1件 |
| 6 | #26113 | あちゃあ対応 | 2025-11-13 | 2025-11-30 | 21日 | 20% | - | 2025-11-14 | 3件 |
| 7 | #26114 | あちゃあ対応その2 | 2025-11-13 | 2025-11-30 | 21日 | 0% | - | 2025-11-14 | 2件 |
| 8 | #26144 | Redmineテスト実施 | 2025-12-14 | 2025-12-19 | 2日 | 0% | - | 2025-12-17 | 2件 |
🔍 Note(ジャーナル)から見える詳細分析
1️⃣ #26038: M365アプリ作成勉強会(最も深刻)
ジャーナル内容:
- 2025-09-21: 関連チケット設定(#26035との先行関係)
- 2025-09-21: 期限を9/19→9/24に延期
- 2025-09-21: プライベートノートで自分の説明を引用
問題点:
- 作成後10日で期限を5日延期したが、その後88日間放置
- 勉強会の具体的な内容(ゴール、メンバー、場所等)は記載されているが実行されず
- 実作業時間0.17時間(約10分)のみ記録
- 根本原因: 計画段階で止まっており、実行に移せていない
2️⃣ #26057: test
ジャーナル内容:
- 2025-10-09: Demo Developerが進捗率を0%→30%に更新
- 2025-10-21: Demo Managerが開始日を10/3→10/15に変更
問題点:
- 他の開発者が進捗を更新したが、その後放置
- 開始日を後ろ倒しにしたが期限は変更せず(矛盾)
- テストチケットだが明確な終了条件なし
3️⃣ #26076: 動作確認しています
ジャーナル内容:
- 2025-10-30: 子チケット#26077を追加
特徴:
- 「Redmine初めて使います。JIRAとどう違うのかな。」という学習目的
- 子チケットを追加したのみで、その後の活動なし
- 判定: 学習・検証用チケットで実業務ではない
4️⃣ #26080: テストチケット - 必須項目のみ
ジャーナル内容:
- 2025-10-30: ステータスを「新規」→「進行中」、進捗率0%→30%に更新
- ノート: 「管理者による更新テスト:ステータスを進行中に変更し、進捗率を30%に設定しました。」
特徴:
- 明確にテスト目的と記載
- 機能検証のための一時的なチケット
- 判定: 本来はテスト完了後にクローズすべき
5️⃣ #26082: テストチケット - 管理者による自動テスト実行
ジャーナル内容:
- 2025-10-30: ステータスを「新規」→「進行中」、進捗率0%→30%に更新
- ノート: 「ステータスを「進行中」に変更し、進捗率を30%に更新しました。テストプランに基づいたテスト実行中です。」
特徴:
- 自動テストの検証目的
- #26080と同日に同様の操作
- 判定: テスト完了後にクローズすべき
6️⃣ #26113: あちゃあ対応
ジャーナル内容:
- 2025-11-13: 期限を11/30に設定
- 2025-11-14: Demo Developerが進捗率を0%→80%に更新
- 2025-11-14: Demo Developerが進捗率を80%→20%に戻す(即座に)
問題点:
- 進捗率が80%まで上がったが、すぐに20%に下方修正
- 重大な懸念: 何らかの問題が発覚して進捗を大幅に巻き戻した可能性
- コメントがないため、巻き戻しの理由不明
7️⃣ #26114: あちゃあ対応その2
ジャーナル内容:
- 2025-11-14: チケット#26100との関連設定
- 2025-11-14: チケット#25910、#26037との関連設定
問題点:
- #26113と同時期に作成され、関連チケットが多数
- しかし進捗0%で全く着手されていない
- 関連チケットとの依存関係が不明確
8️⃣ #26144: Redmineテスト実施
ジャーナル内容:
- 2025-12-14: 「テスト」というプレフォーマット形式のノート
- 2025-12-17: Demo Developerがバージョンを変更(#1884→#1961)
特徴:
- 最も新しいチケットで遅延は2日のみ
- テスト実施が目的だが具体的な内容不明
- カテゴリ「正義の執行」という特殊な命名
📊 傾向分析サマリー
🎯 チケットの性質分類
| 分類 | チケット | 件数 | 割合 |
|---|---|---|---|
| テスト/検証用 | #26057, #26076, #26080, #26082, #26144 | 5件 | 62.5% |
| 実業務 | #26038, #26113, #26114 | 3件 | 37.5% |
🚨 深刻度ランキング
| 順位 | チケット | 深刻度 | 理由 |
|---|---|---|---|
| 🔴 1位 | #26113 | 高 | 進捗80%→20%への巻き戻し、理由不明 |
| 🟠 2位 | #26038 | 高 | 88日遅延、実業務、計画のみで実行なし |
| 🟡 3位 | #26114 | 中 | 21日遅延、関連チケット多数だが進捗0% |
| 🟢 4位 | #26057 | 低 | テストだが他開発者関与あり |
| ⚪ 5-8位 | その他 | 低 | テスト用で業務影響なし |
📈 活動パターン分析
更新頻度:
- 即座に放置: 5件(作成後1-2日で更新停止)
- 短期間活動: 2件(10-30日間活動後停止)
- 長期放置: 1件(88日間進捗なし)
他者の関与:
- Demo Developerが関与: 3件(#26057, #26113, #26144)
- 完全に単独作業: 5件
ノートの有無:
- 意味のあるコメント: 2件のみ(#26080, #26082)
- コメントなし/自動記録のみ: 6件
💡 根本原因の考察
1. テスト環境と本番環境の混在
- テスト用チケットが本番プロジェクトに残り続けている
- クリーンアップのプロセスが欠如
2. 進捗管理の形骸化
- #26113で見られる「進捗率の大幅巻き戻し」は重大な問題を示唆
- しかしコメントがないため詳細不明
3. 計画と実行の乖離
- #26038は詳細な計画があるのに実行されていない
- 開始日・期限の変更が形式的
4. コミュニケーション不足
- ほとんどのチケットでノートが空
- 問題が発生しても記録されていない
5. 優先順位付けの欠如
- 全て「通常」優先度で差別化なし
- 本当に重要なタスクが埋もれている
🎯 具体的な推奨アクション
即座に実施すべき事項
-
#26113の状況確認(最優先)
- 進捗80%→20%巻き戻しの理由をヒアリング
- ブロッカーがあれば明確化してノートに記録
-
#26038の再評価
- 88日遅延の勉強会を実施するか中止するか判断
- 実施する場合は現実的なスケジュールを再設定
-
テストチケットの一括クローズ
- #26076, #26080, #26082, #26057, #26144
- テスト用プロジェクトを別途作成して移行
-
#26114の関連整理
- 複数の関連チケットとの依存関係を整理
- 着手できない理由があればブロッカーとして記録
プロセス改善
-
ノート記入の義務化
- 進捗率変更時は必ず理由をコメント
- 特に巻き戻し時は詳細な説明を必須に
-
定期レビューの実施
- 週次で期限切れ・長期滞留チケットをレビュー
- 不要なチケットを積極的にクローズ
-
テスト環境の分離
- テスト用プロジェクトを作成
- 本番環境にテストチケットを作らないルール化
-
優先度の見直し
- 実業務チケットには適切な優先度を設定
- 「今すぐ」「急いで」を適切に活用
このように、最初の分析結果を踏まえてさらに条件を絞り込んだり、別の視点から分析し直したりすることで、問題の本質に迫ることができます。対話を重ねながら段階的にブレイクダウンしていくことで、効率的に課題を特定できます。
まとめ
onozaty/redmine-mcp-server を使うことで、AIにプロジェクトの状況を自然言語で分析させることができます。
主なメリット
- 自然言語での操作: 複雑なクエリもプログラミング不要で実行可能
- 対話的な深掘り: 初回の分析結果から、さらに詳細な分析へと段階的に掘り下げられる
- 安全なアクセス: Read-Onlyモードで参照のみに制限できる
- 定期分析への活用: 週次のプロジェクト会議前の状況把握などに便利
Redmineを使ったプロジェクト管理の効率化に、ぜひ活用してみてください。
Discussion