はじめに

CI/CDパイプラインの自動化ツールとして広く使われているJenkinsですが、最近の生成AI技術の進化により、さらに便利に使えるようになってきました。今回ご紹介する「MCP Server Plugin」を使えば、Jenkinsと生成AIを簡単に連携させることができます。

MCP Server Pluginとは

「○○リポジトリのmainブランチの最新ビルド結果を教えて」「なんでビルドが失敗してるか調べて」「このパラメータを入力してデプロイして」
もしこのようにチャットで生成AIに依頼するだけでJenkinsを操作出来たらどうでしょうか。開発体験がまた変わったものになりそうですよね。Jenkinsでこういったことを実現するのが 「MCP Server Plugin」です。

このプラグインは、Jenkinsを「MCPサーバー」として機能させるためのプラグインです。

MCPサーバーとは

MCP(Model Context Protocol)は、Anthropic社が開発したオープンスタンダードなプロトコルです。簡単に言えば、生成AIと外部のツールやデータソースを安全につなぐための共通ルールのことです。生成AIとアプリケーションのインターフェースとしてイメージすると理解しやすいかもしれません。
詳細についてはWhat is the Model Context Protocol (MCP)?を参照ください。従来生成AIに外部システムの情報を提供するには、それぞれ個別に実装が必要でした。しかしMCPを使うことで様々な生成AIとセキュアに接続することができるようになります。

「MCP Server Plugin」をJenkinsにインストールすることで、生成AIからJenkinsへとアクセスできるようになります。これにより、生成AIを搭載したアプリケーションやIDEといった「MCPクライアント」がJenkinsの様々な機能を直接、自然言語の対話形式で利用できるようになります。

従来Jenkinsに外部からアクセスする場合はRemote Access APIなどでアクセスする必要がありましたが、より自然な形で生成AIとJenkinsを連携させることが可能になります。

MCP Server Pluginでできること

このプラグインを導入すると、生成AIを通じて以下の様な事ができるようになります。

  • ビルド状況の確認:「最新のビルドは成功した?」と生成AIに聞くだけでJenkinsジョブの状況が分かります。
  • ジョブの実行:自然言語でジョブをトリガーすることができます。
  • ログの分析:エラーログを生成AIに分析してもらい、原因を特定することができます。

それ以外にもMCPサーバーとしての機能はあるので、「MCP Server > Available Tools」のセクションを参照ください。

上記で記載したことは、生成AI+「MCP Server Plugin」を利用しなくても当然実現可能です。ログの分析も、JenkinsのエラーログのコンソールからログをコピーしてChatGPTなどに貼り付ければ同じように解析は可能です。
ただ、ClineClaude CodeといったAIエージェントと組み合わせて使うことで快適さが圧倒的に異なると個人的に感じています。

MCP Server Pluginのセットアップ

前提条件(2025/10/10時点)

  • Jenkins(バージョン2.479以上)
  • MCPに対応した生成AIクライアント(本ブログではRooCodeを用います)

インストール手順

プラグインのインストール

  1. Jenkinsのダッシュボードにログイン
  2. 「Jenkinsの管理」→「Plugins」を選択
  3. 「Available plugins」タブで「MCP Server」を検索
  4. チェックボックスを選択して「インストール」をクリック

インストール後のJenkinsの設定は不要です。MCPクライアントからのリクエストを受け付けるためのエンドポイントは自動的にセットアップされます。

認証情報の取得

  1. Jenkinsのダッシュボードにログイン
  2. 「Account」情報→「Security」を選択
  3. APIトークンを発行
  4. 発行したAPIトークンをベーシック認証で利用できるようにエンコード

Windows(PowerShell)の場合、以下になります。

[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("<Jenkinsのusername>:<3で発行したtoken>"))

MCPクライアント側の設定

MCPクライアントには、MCPサーバーに接続するための情報をjsonファイルとして作成します。
作成形式や保存場所はMCPクライアントによって異なります。また、エンドポイントのURLも同様に異なります。「Example Client Configurations」のページを参考に、それぞれのプラットフォームのルールに従ってください。

私の環境はRooCodeをMCPクライアントとして用いているため、以下のjsonファイルを作成しました。

問題なく接続が完了すると、「MCP Server Plugin」で利用可能なツールが表示されます。これで利用準備が完了しました。

実際の使用例

Jenkinsに「ForTTT」というジョブを作成し実行します。このジョブはMultibranch Pipelineで作成し、静的解析のステージで失敗するように作成しています。

ビルド状況の確認

JenkinsのForTTTジョブの状態の確認をお願いします。

使い方はシンプルです。通常の生成AIを使うのと変わらず利用することが可能です。

MCPクライアント側でどのMCPサーバーのツールをつかえばよいか判断し、処理を実行してくれます。
また、通常のAIエージェントと同様に、実行時に承認を挟むことも可能です。

MCPクライアント側でログを取得し、以下のようにジョブの状態をまとめてくれました。

エラー内容の修正

静的解析の低レベルの警告の場合はジョブを失敗扱いにしないように修正してください。

失敗内容を確認すると、SpotBugs静的解析でLowレベル警告によって失敗していることが分かりました。今回はLowレベル警告の場合エラー扱いにしないように修正をすることとします。
ここからはローカルのファイルを読み込み、AIエージェントがファイルを修正します。

その後、Jenkinsfileを更新し、ジョブを再度実行します。

ジョブの実行もJenkinsに直接アクセスすることなく、MCPクライアントから実行が可能です。

静的解析について修正が完了しました。静的解析ステージが通るようになったことにより、単体テストステージでの失敗も見つかりましたが、こちらの修正については割愛します。

自分でMCPサーバーを実装する

少し発展的な内容となりますが、自分でMCPサーバーの実装も可能です。
例えばJavaの場合はSDKが公開されています。また、実装方法についてもJava MCP Serverというページにまとまっています。

試しに自分でJenkinsのプラグインを作成し、MCPサーバーのツールを追加しました。

例えば「getBuildMetrics」は前回実行時よりも4時間以上遅くなったジョブを一覧で取得するものです。ほかにもいろいろ機能を実装していくことも可能です。

ただ、あまりMCPサーバーのツールを増やしすぎてしまうと、MCPクライアントがどのMCPツールを利用するかを迷ってしまい、求めている結果を得るということができないことが何度かありました(当時Claude 3.7 sonnetで検証)。
そのため、少なくとも現状の生成AIの性能では、標準の「MCP Server Plugin」で取得できる範囲で情報を取得し、MCPクライアント側で処理したほうがうまくいきそうだという印象を持ちました。

まとめ

MCPサーバーを使わない場合でも、今回実施した「Jenkinsのジョブの状態を確認する」「Jenkinsのログを確認する」「Jenkinsfileを修正する」ということを生成AIを用いて行うことは可能です。ただ、従来の生成AIと異なり、コピペや参照する場所を行き来するということがなくなるだけで体感が圧倒的に変わります。

「MCP Server Plugin」を導入することで、Jenkinsという堅牢なCIサーバーに生成AIという柔軟な機能を追加することができます。もし、実行可能な環境をお持ちの方は検証するに値する機能だと思います。

By nagakubo

主にCI環境構築をメインで担当しています。 Certified CloudBees Jenkins Engineer (CCJE)