Redmine MCPサーバーの設定と使用方法(VS Code × Codex連携)


My Redmine

こんにちは、開発グループの吉岡です。Redmineをより便利に活用するために、MCP(Model Context Protocol) を使ってAI(Codex / ChatGPT)からRedmineを直接操作する方法を試してみました。今回は、VS Code 上で Codex プラグインを利用し、Docker で動作する MCP Redmine サーバーを設定する手順と、その使用例を紹介します。

環境

今回の環境は以下の通りです。

使用する MCP サーバーは以下の GitHub リポジトリを利用します。
https://github.com/runekaagaard/mcp-redmine

VS Code で Codex を利用するための初期設定については、以下の公式ドキュメントを参考にしてください。
https://developers.openai.com/codex/ide

設定手順

① リポジトリ取得と Docker イメージの作成

まずは MCP Redmine サーバーを取得し、Docker イメージを作成します。

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

これで mcp-redmine イメージが作成されます。

② instructionsファイルの設定

Redmine を操作する際のルールをまとめた instructions.md を作成します。 ファイルパスは ~/.codex/instructions.md とします。

# MCP Redmine Request Instructions 進行中

これらの指示は、Redmine の API リクエストを行う際に使用されます。  
Claude や VS Code の Codex から `redmine_request` ツールを呼び出す際、以下のルールに従ってください。

---

## 基本方針
- 目的は「Redmine を安全かつ一貫した形式で操作すること」。
- **常に最小限の必要データのみ送信**してください。
- `GET` 系操作(閲覧・検索)を優先し、`POST``PUT` はユーザーから明示的な指示がある場合のみ実行します。
- 日本語のタイトルと説明を使用してください。
- `description` には Markdown 形式を用いてください。

## 利用可能なステータス
ステータス更新時は以下のリストを参考にし、適切な ID を使用してください。
- ID 1: 新規
- ID 2: 進行中
- ID 3: 解決
- ID 4: フィードバック
- ID 5: 終了
- ID 6: 却下

## 課題(Issues)作成ルール
- `project_id`: 原則「ID: 1, 識別子: redmine-mcp」を使用。
- `tracker_id`: 明示されていない場合は空欄。
- `priority_id`: 明示されていない場合は空欄。
- `assigned_to_id`: 指定がない場合は空欄。
- `status_id`: 新規は「新規」(=1)で作成。
 
## ファイルを利用した課題(Issues)作成ルール
- ファイル名を課題の `subject` として使用してください。ただし、拡張子(例: `.md`)は除外してください。
- ファイル内容を課題の `description` として使用してください。
- 可能な限り Markdown 形式を維持してください。
- 課題(Issues) 作成ルールに従って、他のフィールドを設定してください。

## Issues更新ルール
- `status_id`: 明示的な指示がない場合は変更しない。
- `assigned_to_id`: 明示的な指示がない場合は変更しない。
- `priority_id`: 明示的な指示がない場合は変更しない。
- その他、指定がないフィールドは変更しないでください。
- ファイルを元にした更新の場合、元の内容を保持しつつ必要な変更のみを加えるようにしてください。

## Issues notes(コメント)更新ルール
- 新規コメントは notes フィールドに追加してください。
- Redmine API では `issue` オブジェクト内に `notes` のみを含む JSON(例: `{"issue": {"notes": "コメント"}}`)を送信すること。
- コメント追加時は notes フィールドのみを含むリクエストを送信し、他のフィールドは更新しないこと。

## Issue取得時のルール
- 以下のフィールドを必ず取得してください
  - `id`
  - `subject`
  - `description`
  - `status`
  - `assigned_to`
  - `notes`
- 取得した Issue の情報は、ユーザーにわかりやすい形式で提供してください。
- 可能な限り Markdown 形式で整形してください。
- data/ ディレクトリに「subject名.md」というファイル名で保存しエディタに表示してください。

このファイルには、Redmineの課題作成・更新・取得のルールを明記しておきます。特に status_idproject_id の扱い、Markdown形式の利用ルールなどを定義しておくと、AIが安全に操作できます。

③ config.tomlの設定

次に VS Code の Codex プラグインから MCP サーバーを呼び出すための設定を行います。

VS Code で Settings > MCP Server > Open config.toml を開き、以下の内容を追加します。


config.tomlの設定
[mcp_servers.redmine]
command = "docker"
args = [
  "run", "-i", "--rm",
  "-e", "REDMINE_URL",
  "-e", "REDMINE_API_KEY",
  "-e", "REDMINE_REQUEST_INSTRUCTIONS",
  "-v", "/path/to/your-home/.codex/instructions.md:/app/INSTRUCTIONS.md",
  "mcp-redmine"
]

[mcp_servers.redmine.env]
REDMINE_URL = "https://YOUR-REDMINE"
REDMINE_API_KEY = "YOUR-API-KEY"
REDMINE_REQUEST_INSTRUCTIONS = "/app/INSTRUCTIONS.md"

/path/to/your-home の部分は自分のホームディレクトリに置き換えてください。

実際に使ってみる

① テスト用ファイルを作成

次のような簡単な Markdown ファイルを作成します。

MCPを利用したチケット登録のテスト.md

# mcpから登録テスト

登録用ファイルを作る

② チャットで指示

Codex のチャット欄で以下のように入力します。

チケットを作成してください。

すると、MCP サーバーを通じて Redmine にチケットが作成されます。


チケット作成の様子

③ Redmine で確認

Redmine の画面を確認すると、以下のように登録されています。


Redmine上のチケット

④ VS Code にチケット内容を表示

Codex のチャット欄で以下のように入力します。

MCPを利用したチケット登録のテスト の詳細を表示してください。

すると、MCPを利用したチケット登録のテスト.md ファイルとして Redmine の内容が VS Code に読み込まれ、次のように表示されます。


チケット内容の表示

⑤ チケットにコメントを追加

新規にテキストファイルを開き、以下の内容を入力します。

# タイトル
## h2見出し

コメント追加のテストです。
コメント追加のテストです。

入力したら、Codex のチャット欄で以下のように入力します。

ID 8 のチケットにコメントとして追加してください。


コメント追加の様子

Redmine上のコメント

まとめ

Codex と MCP サーバーを組み合わせることで、Redmine との連携を自動化できます。 ファイルベースでチケット作成・更新ができるため、エンジニアの開発フローに自然に統合できるのが魅力です。

今回はシンプルなデモでしたが、今後は以下のような応用も考えられます。

今後も引き続き、RedmineとAIを連携させて業務効率化を進めていきたいと思います。

My Redmine
こちらの記事もオススメです!
MySQL互換DB「TiDB」でRedmine互換OSS「RedMica」を動かす検証
TiDB(MySQL互換DB)でRedMica(Redmine互換OSS)を動かす検証を行いました。セットアップ手順・ポイントを紹介します。
デジタル名刺を作る
個人用の名刺としてデジタル名刺を作ってみました。
一畑電車のビール電車「酔電」に乗るイベントを開催しました
社員だけでなく、社外の方々にもご参加いただき貸切運行を実施。特別感のある、楽しい時間となりました。
AWS WAFで不正なリクエストをブロックするため独自のルールを使用しています
My SubversionのAWS WAFは不正なリクエストをブロックするため独自のルールを使用しています。
Kaigi on Rails 2025 にオンラインで参加した
Kaigi on Rails 2025 にオンラインで参加しました。どのセッションも実務に役立つ内容で、とても面白かったです。
ファーエンドテクノロジーからのお知らせ(2025/10/29更新)
2025年11月29日 オライリー本の全冊公開日のお知らせ(もくもく勉強会も同時開催)
ファーエンドテクノロジーが所蔵するオライリー本(全冊)公開日のご案内です。公開日には「もくもく勉強会」も同時開催します。
オープンソースのプロジェクト管理ツール「Redmine 6.1」の最新機能紹介セミナーを10月30日に開催
2025年9月22日にリリースされた Redmine 6.1 の新機能をRedmineコミッターの前田剛(ファーエンドテクノロジー株式会社 代表取締役)が解説します。
【AIがRedmineのチケットを要約】チケット内容が瞬時に分かる新機能「AIチケット要約」をMy Redmineで提供開始!
Redmineのクラウドサービス『My Redmine JP Edition』で、チケット内容を要約する新機能「AIチケット要約」が使えるようになりました。
RubyWorld Conference 2025 (11/6・7開催) にPlatinumスポンサーとして協賛
2025年11月6日(木)〜7日(金)に島根県松江市で開催される「RubyWorld Conference 2025」にPlatinumスポンサーとして協賛しています。
Redmineの最新情報をメールでお知らせする「Redmine News」配信中
新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け