🤖

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サーバーです。

https://github.com/onozaty/redmine-mcp-server

MCPは、Anthropic社が提唱するAIアシスタントと外部ツールを連携させるための標準プロトコルです。MCPサーバーを経由することで、AIエージェントが外部のシステムやデータソースと安全かつ標準的な方法で対話できるようになります。

https://www.anthropic.com/news/model-context-protocol

主な機能

本ツールは、RedmineのREST APIで操作できるすべての機能をカバーしています。

  • Issues: チケットの作成、更新、削除、検索、関連チケットの管理
  • Projects: プロジェクトの作成、更新、削除、アーカイブ、メンバー管理
  • Users: ユーザーの作成、更新、削除、グループ管理
  • Time Entries: 作業時間の記録、更新、削除
  • Wiki: ページの作成、更新、削除、バージョン管理
  • その他: ファイル、添付ファイル、クエリ、カスタムフィールド、ロール、トラッカー、ステータスなど

また、Read-Only モードにも対応しており、データの参照のみを許可することで、安全にAIからアクセスさせることができます。

環境構築

前提条件

  1. Redmineへのアクセス権限
  2. Claude Desktop (または他のMCPクライアント)
  3. Redmine API キー

Redmine API キーの取得

  1. Redmineにログイン
  2. 個人設定画面で「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管理されている箇所もある

💡 改善提案

  1. 未割当チケットの整理: 担当者を明確にアサインする
  2. テストチケットの整理: 不要なテストチケットをクローズまたは削除
  3. 期限の見直し: 期限切れチケットの期限を再設定または優先度を調整
  4. 進捗管理の強化: 新規ステータスに長期滞留しているチケットを進行中に移行
  5. カテゴリ・バージョンの整理: 使用されていない、または重複しているカテゴリを統合

このプロジェクトは、デモ用としての性質上、多様なテストチケットが作成されていますが、実際の運用を想定した場合は、上記の改善点に取り組むことで、より効率的なプロジェクト管理が可能になります。

このように、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%完了だがクローズされていない)

💡 推奨アクション

  1. 完了済みチケットのクローズ: #26131、#26055、#26053、#26136は進捗率100%なのでクローズすべき
  2. 未割当チケットの担当者アサイン: 14件の未割当チケットに担当者を設定
  3. 期限の再設定: 特に9月、10月期限のチケットは大幅に遅延しているため、期限を見直すか、不要であればクローズ
  4. 高優先度チケットの対応: 「今すぐ」「急いで」の優先度が設定されているチケットを最優先で対応

これにより、プロジェクトのボトルネックや、リソース配分の見直しが必要な箇所を発見できます。

さらに深掘りして分析

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. 優先順位付けの欠如

  • 全て「通常」優先度で差別化なし
  • 本当に重要なタスクが埋もれている

🎯 具体的な推奨アクション

即座に実施すべき事項

  1. #26113の状況確認(最優先)

    • 進捗80%→20%巻き戻しの理由をヒアリング
    • ブロッカーがあれば明確化してノートに記録
  2. #26038の再評価

    • 88日遅延の勉強会を実施するか中止するか判断
    • 実施する場合は現実的なスケジュールを再設定
  3. テストチケットの一括クローズ

    • #26076, #26080, #26082, #26057, #26144
    • テスト用プロジェクトを別途作成して移行
  4. #26114の関連整理

    • 複数の関連チケットとの依存関係を整理
    • 着手できない理由があればブロッカーとして記録

プロセス改善

  1. ノート記入の義務化

    • 進捗率変更時は必ず理由をコメント
    • 特に巻き戻し時は詳細な説明を必須に
  2. 定期レビューの実施

    • 週次で期限切れ・長期滞留チケットをレビュー
    • 不要なチケットを積極的にクローズ
  3. テスト環境の分離

    • テスト用プロジェクトを作成
    • 本番環境にテストチケットを作らないルール化
  4. 優先度の見直し

    • 実業務チケットには適切な優先度を設定
    • 「今すぐ」「急いで」を適切に活用

このように、最初の分析結果を踏まえてさらに条件を絞り込んだり、別の視点から分析し直したりすることで、問題の本質に迫ることができます。対話を重ねながら段階的にブレイクダウンしていくことで、効率的に課題を特定できます。

まとめ

onozaty/redmine-mcp-server を使うことで、AIにプロジェクトの状況を自然言語で分析させることができます。

主なメリット

  • 自然言語での操作: 複雑なクエリもプログラミング不要で実行可能
  • 対話的な深掘り: 初回の分析結果から、さらに詳細な分析へと段階的に掘り下げられる
  • 安全なアクセス: Read-Onlyモードで参照のみに制限できる
  • 定期分析への活用: 週次のプロジェクト会議前の状況把握などに便利

Redmineを使ったプロジェクト管理の効率化に、ぜひ活用してみてください。

参考リンク

Discussion