mcpField
M
MCP Jenkins

MCP Jenkins

ローカル
pypi.orgクラウド・インフラ1562 週間前に更新

MCP Jenkins について

MCP Jenkinsは、AnthropicのMCP仕様を通じてJenkinsの操作をAIクライアントに提供します。CI/CD情報の参照や操作を必要とするチーム向けで、ビルド、ノード、キュー、テストレポート、アーティファクト、プラグインを扱い、読み取り専用モードも選べます。

主な機能

  1. 01ジョブ、ノード、ビルドキューの検索
  2. 02ビルドログ、テスト結果、アーティファクトの確認
  3. 03ビルドの開始・停止とパイプライン入力の送信
  4. 04プラグインの状態と依存関係グラフの確認
  5. 05読み取り専用モードと複数のトランスポート

活用シーン

  1. 01AIクライアントからJenkinsのビルド状況を確認
  2. 02失敗したテストやビルドコンソール出力を確認
  3. 03キュー内のジョブをキャンセル、または実行中ビルドを停止
  4. 04プラグインの更新、問題、依存関係を確認

MCP 対応

MCPサーバーは、Jenkinsのジョブ、ビルド、ノード、キュー、アーティファクト、プラグインの操作をツールとしてMCPクライアントに公開します。stdio、SSE、streamable HTTPに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"jenkins": {
"command": "uvx",
"args": [
"mcp-jenkins"
]
}
}
}
起動コマンドuvx mcp-jenkins

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-jenkins

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP Jenkins

PyPI Version PyPI Downloads test codecov License

Model Context Protocol(MCP)は、Anthropic の MCP 仕様に準拠し、Jenkins と AI 言語モデルを橋渡しするオープンソースの実装です。このプロジェクトでは、データのプライバシーとセキュリティを維持しながら、Jenkins ツールとの安全でコンテキストに応じた AI インタラクションを実現します。

インストール

次のインストール方法から 1 つ選択してください。

# Using uv (recommended)
pip install uv
uvx mcp-jenkins

# Using pip
pip install mcp-jenkins
mcp-jenkins

# Docker
docker pull ghcr.io/lanbaoshen/mcp-jenkins:latest
docker run -p 9887:9887 --rm ghcr.io/lanbaoshen/mcp-jenkins:latest --transport streamable-http

コマンドライン引数

コマンドライン引数を使用する場合、次のように Jenkins サーバーの詳細を指定できます。

# Simple streamable-http example
uvx mcp-jenkins --transport streamable-http
引数説明必須
--env-file設定の読み込み元となる .env ファイルのパスです。以下の環境変数/.env ファイルを参照してください。いいえ
--jenkins-urlJenkins サーバーの URL です。(HTTP アプリではヘッダー x-jenkins-url で設定できます)いいえ
--jenkins-usernameJenkins 認証用のユーザー名です。(HTTP アプリではヘッダー x-jenkins-username で設定できます)パスワードと併せて設定するか、両方とも未設定にすると、Jenkins に匿名でアクセスできます。いいえ
--jenkins-passwordJenkins 認証用のパスワードまたは API トークンです。(HTTP アプリではヘッダー x-jenkins-password で設定できます)ユーザー名と併せて設定するか、両方とも未設定にすると、Jenkins に匿名でアクセスできます。その場合にサーバーが実行できる操作は、Jenkins における匿名ユーザーの権限によって決まります。いいえ
--jenkins-timeoutJenkins API リクエストのタイムアウト時間(秒)です。デフォルトは 5 秒です。いいえ
--jenkins-verify-ssl/--no-jenkins-verify-sslJenkins への接続時に SSL 証明書を検証するかどうかを指定します。デフォルトでは検証します。いいえ
--jenkins-session-singleton/--no-jenkins-session-singleton同じセッション内のすべてのリクエストで、単一の Jenkins クライアントを使用するかどうかを指定します。デフォルトは True です。いいえ
--read-only読み取り専用モードを有効にするかどうかを指定します。デフォルトは False です。いいえ
--transport通信に使用するトランスポート方式です。選択肢は stdio、sse、streamable-http です。デフォルトは stdio です。いいえ
--hoststreamable-http トランスポートのホストアドレスです。デフォルトは 0.0.0.0 です。いいえ
--portstreamable-http トランスポートのポート番号です。デフォルトは 9887 です。いいえ

環境変数/.env ファイル

コマンドラインで認証情報を渡す代わりに、環境変数として設定するか、.env ファイルに記述できます。

JENKINS_URL=https://jenkins.example.com
JENKINS_USERNAME=alice
JENKINS_PASSWORD=xxxx
JENKINS_TIMEOUT=5
JENKINS_VERIFY_SSL=true

現在のディレクトリ(または親ディレクトリ)に .env ファイルがある場合、フラグを指定しなくても自動的に読み込まれます。

uvx mcp-jenkins --transport streamable-http

特定の場所にある .env ファイルを読み込むには、--env-file を使用します。

uvx mcp-jenkins --env-file /path/to/.env --transport streamable-http

実際の環境ですでに設定されている値は .env ファイルより優先され、--jenkins-* CLI フラグはその両方より優先されます。

設定と使用方法

Jetbrains Github Copilot
  1. Jetbrains の設定を開きます。
  2. Github Copilot > MCP > Configure に移動します。
  3. 次の設定を追加します。
{
  "servers": {
    "my-mcp-server": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-jenkins",
        "--jenkins-url=xxx",
        "--jenkins-username=xxx",
        "--jenkins-password=xxx"
      ]
    }
  }
}
VSCode Copilot Chat
  1. ローカルで設定する場合は、ワークスペースに mcp.json ファイルを含む .vscode フォルダーを作成するか、設定メニューから settings.json を編集します。
  2. 次の設定を挿入します。
  • SSE モード
{
    "servers": {
        "jenkins": {
            "url": "http://localhost:9887/sse",
            "type": "sse"
        }
    }
}
  • Streamable-Http モード
{
    "servers": {
        "mcp-jenkins-mcp": {
            "autoApprove": [],
            "disabled": false,
            "timeout": 60,
            "type": "streamableHttp",
            "url": "http://localhost:9887/mcp"
        }
    }
}

次のコマンドで Jenkins MCP サーバーを実行します。

uvx mcp-jenkins \
  --jenkins-url xxx \
  --jenkins-username xxx  \
  --jenkins-password xxx \
  --transport sse

ヘルスチェックエンドポイント

--transport streamable-http または --transport sse を指定して実行すると、サーバーはプレーンな HTTP 稼働状態エンドポイントを公開します。

GET /healthz  ->  200 OK

常に 200 を返し、x-jenkins-* 認証ヘッダーを迂回するため、Jenkins の認証情報なしで Kubernetes の稼働状態/準備状態プローブとして直接安全に使用できます。プローブの例:

livenessProbe:
  httpGet:
    path: /healthz
    port: 9887
  initialDelaySeconds: 5
  periodSeconds: 10

注:これは稼働状態のチェックのみです。上流の Jenkins サーバーへの接続は確認しません。

利用可能なツール

ツール説明
get_item名前を指定して特定の項目を取得します。
get_item_config特定の項目の設定を取得します。
get_item_parameters特定の項目のパラメーターを取得します。
get_all_itemsJenkins のすべての項目を取得します。
query_itemsパターンに基づいて項目を検索します。
build_item項目をビルドします。
get_all_nodesJenkins のすべてのノードを取得します。
get_node名前を指定して特定のノードを取得します。
get_node_config特定のノードの設定を取得します。
get_all_queue_itemsJenkins のすべてのキュー項目を取得します。
get_queue_itemID を指定して特定のキュー項目を取得します。
cancel_queue_itemID を指定して特定のキュー項目をキャンセルします。
get_buildジョブ名とビルド番号を指定して特定のビルドを取得します。
get_build_scripts特定のビルドに関連付けられたスクリプトを取得します。
get_build_console_output特定のビルドのコンソール出力を取得します。
get_build_parameters特定のビルドのパラメーターを取得します。
get_build_test_report特定のビルドのテストレポートを取得します。
get_build_test_failures特定のビルドで失敗したテストを取得します。
get_running_buildsJenkins で現在実行中のすべてのビルドを取得します。
stop_buildジョブ名とビルド番号を指定して特定のビルドを停止します。
get_pending_inputs入力待ちで一時停止しているビルドの保留中の入力ステップを取得します。
submit_inputビルドのパイプライン入力ステップを続行または中止します。
get_all_build_artifacts特定のビルドのアーティファクトを一覧表示します。
get_build_artifact特定のビルドからアーティファクトをダウンロードします。
get_build_artifact_url特定のビルドのアーティファクトの直接 URL を取得します。
get_view名前を指定して特定のビューを取得します。
get_all_views特定のビューの設定を取得します。
get_all_pluginsインストール済みのすべてのプラグインを取得します。
get_plugin短縮名を指定して特定のプラグインを取得します。
get_plugins_with_problems問題(依存関係の不足、バージョンの不一致など)があるプラグインを取得します。
get_plugins_with_backupダウングレード可能なプラグインを取得します。
get_plugins_with_updates利用可能なアップデートがあるプラグインを取得します。
get_plugin_dependency_graphプラグインの依存関係グラフを Graphviz 形式で取得します。
run_groovy_scriptJenkins で任意の Groovy スクリプトを実行します。

注:get_pending_inputs は、pipeline-stage-view に同梱されている pipeline-rest-api プラグインが提供する wfapi エンドポイントを読み取ります。submit_input でこのプラグインが必要になるのは input_id を省略した場合のみです。input_id を明示的に渡せば、pipeline-input-step プラグインを備えた任意の Jenkins で動作します。

コントリビューション

CONTRIBUTING.md

ライセンス

MIT ライセンスの下で公開されています。詳細は LICENSE ファイルをご覧ください。これは Jenkins の公式製品ではありません。

スター履歴

スター履歴チャート

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。