4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでRedmine MCP Serverを作ってみた

4
Last updated at Posted at 2026-01-07

はじめに

Redmineを日々使っており、チケット管理や工数管理に多くの時間を使っていることが気になっていました。
そこで、Redmineを柔軟に自動化できるツールとして、Redmine MCP ServerをPythonで作っています。

ターゲット

  • Redmineを使っている人
  • Redmineを使っていて、チケット管理などに煩わしさを感じている人

コンセプト

①ブラウザを使うことで手動と同じセキュリティレベルを実現

ブラウザ(Selenium)を使って手動と同じようにログインできるようにしました。
これにより、認証情報をローカルに持つなどして漏洩するリスクをなくします。
MFA、SSOなど使っている場合にも対応したいなと考えています

②ブラウザ自動操作によりAPIキーの管理を不要とした

Redmine REST APIを使わず、Seleniumによるブラウザでの自動操作としています。
これにより、APIキーの作成と管理を不要にしています。
管理者レベルのRedmine REST APIではできなかった操作も可能にします。
ただ、ブラウザでの操作なので実行時間が長くなりがちといった課題があります

※参考
https://www.redmine.org/projects/redmine/wiki/Rest_api

③定型作業のプロンプト化

プロジェクトによりけりかと思いますが、よく行う作業はプロンプトとして登録しておき、すぐに実行できる形としています
Redmine MCP Serverの機能ではなく、Amazon QやCopilotのプロンプトとして登録できるようなマークダウンファイルを作成しています。

できること

現在、以下のようなツールを実装しています。

概要 ツール名 入力 説明
Redmineにログインして認証セッションを確立 redmine_login ユーザー名、パスワード Webブラウザと同様の認証フローでRedmineにログインする
Redmineからログアウトしてセッションを終了 logout なし 現在のセッションを終了し、ログアウトする
サーバー設定情報と認証状態を取得 get_server_info なし Redmineサーバーの設定情報と現在の認証状態を表示する
プロジェクト一覧を取得 get_projects なし アクセス可能なプロジェクトの一覧を取得する
プロジェクトメンバー一覧を取得 get_project_members プロジェクトID 指定したプロジェクトに所属するメンバー情報を取得する
様々な条件でチケットを検索 search_issues プロジェクトID、ステータスID、トラッカーID、担当者ID、件名、全文検索等 指定した条件にマッチするチケットを検索し、一覧で返す
チケットの詳細情報を取得 get_issue_details チケットID 指定したチケットの詳細情報(件名、説明、ステータス等)を取得する
新しいチケットを作成 create_issue プロジェクトID、トラッカーID、件名、フィールド情報 指定した情報で新しいチケットを作成する
既存チケットを更新 update_issue チケットID、更新フィールド 指定したチケットの情報を更新する
利用可能なトラッカー一覧を取得 get_available_trackers プロジェクトID(省略可) プロジェクトで利用可能なトラッカーとそのフィールド情報を取得する
チケットで利用可能なステータス一覧を取得 get_available_statuses チケットID 指定したチケットで利用可能なステータス一覧を取得する
新規作成時に利用可能なステータス一覧を取得 get_creation_statuses プロジェクトID、トラッカーID 新規チケット作成時に選択可能なステータス一覧を取得する
トラッカーで利用可能なフィールド一覧を取得 get_tracker_fields プロジェクトID、トラッカーID 指定したトラッカーで利用可能なフィールドとその属性を取得する
4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?