はじめに

とある案件でredmineの情報をjsonで出力しそれをRAG化してAIに読ませるというプロジェクトに参画していたのですが、
昨今のMCPを使えばそのままRedmineにAIが接続できるのではという発想から実際にやってみました。

MCPとは?

Model Context Protocol(MCP)とは、Anthropicが提唱したLLM(大規模言語モデル)と外部のデータソースやツールを連携させるためのオープンソース標準プロトコルです。AIシステムがデータやツールを「AI用のUSB-Cポート」のように利用できるようにすることで、手動設定の削減、AIの関連性の向上、開発の効率化を目指します。

※詳しくはこちらを参照下さい。
Model Context Protocol(MCP)とは?生成 AI の可能性を広げる新しい標準

導入手順

①、まずは接続確認用のRedmineを立てます。
compose.yaml

version: '3'

services:
  redmine:
    image: redmine:latest
    ports:
      - "3000:3000"
    environment:
      # 接続先のMySQLを指定
      REDMINE_DB_MYSQL: ${REDMINE_DB_MYSQL:-localhost}
      REDMINE_DB_PASSWORD: ${REDMINE_DB_PASSWORD:-root}
      REDMINE_DB_USERNAME: ${REDMINE_DB_USERNAME:-root}
      REDMINE_DB_DATABASE: ${REDMINE_DB_DATABASE:-redmine}

volumes:
  redmine_data:

②、MCPを使う為のimageを作る
※今回はこちらを使いました。
mcp-redmine
※dockerを使って接続をします

git clone git@github.com:runekaagaard/mcp-redmine.git
cd mcp-redmine
docker build -t mcp-redmine .

③、mcp.jsonに設定を追加する

"mcpServers": {
      "redmine": {
        "command": "docker",
        "args":  [
            "run",
            "-i",
            "--rm",
            "-e", "REDMINE_URL",
            "-e", "REDMINE_API_KEY",
            "-e", "REDMINE_REQUEST_INSTRUCTIONS",
            "-v", "/path/to/instructions.md:/app/INSTRUCTIONS.md",
            "mcp-redmine"
        ],
        "env": {
          "REDMINE_URL": "https://your-redmine-instance.example.com",
          "REDMINE_API_KEY": "your-api-key",
          "REDMINE_REQUEST_INSTRUCTIONS": "/app/INSTRUCTIONS.md"
        }
      }
    }
  }

実際に確認してみます。
今回はGithub Copilotから接続を試してみます。

まずは、Redmineに仮チケットを作成します。

Github Copilotに確認してみます。

ちゃんとチケットを取得することができました。

まとめ

AIとRedmineの連携において、従来のRAG(Retrieval-Augmented Generation)方式に代わる、Model Context Protocol(MCP)を活用した新しいアプローチを紹介しました。

従来のRAG方式は、RedmineのデータをJSONとして定期的に出力し、AIに読み込ませる手間がありました。
一方で、MCP方式では、AIが「AI用のUSB-Cポート」のようにRedmineに直接接続し、リアルタイムで最新の情報を取得できます。
これにより、データの出力・更新作業が不要になります。
AIが単に情報を「読む」だけでなく、外部システムからリアルタイムで情報を「参照・操作」する新たなアプローチが可能となります。