mcp_jenkins
Jenkins MCP サーバー。モデルコンテキストプロトコル (MCP) を使用すると、AI ツール (チャットボットなど) が Jenkins のセットアップと通信して制御し、情報を取得したり設定を変更したりできます。
**注:**これは MCP Jenkins サーバーの最小限の実験バージョンであり、現在は開発初期段階です。
説明
このプロジェクトは、Jenkinsと連携するためのモデルコンテキストプロトコル(MCP)サーバーを提供します。ユーザーはMCPインターフェースを介して、Jenkinsジョブのトリガー、ビルドステータスの取得、その他のJenkins関連操作を実行できます。
Related MCP server: mcp-jenkins
コンポーネント
server.py: コア MCP Jenkins サーバー アプリケーション。functions_schema.md: MCP Jenkins サーバーによって公開される関数のスキーマを定義します。client.py: MCP Jenkins サーバーと対話する方法を示すサンプル クライアント (参照のみを目的として提供されています)。functional tests: MCP Jenkins サーバーの機能テストが含まれています。
インストール
パッケージをインストールするには、次のコマンドを実行します。
pip install .使用法
一般的なワークフロー
サーバーの実行
MCP サーバーを実行するには:
./docker/run.serverサンプルクライアントの実行
サンプルクライアントを実行するには:
./docker/run.clientたとえば、特定のモデルを使用して「backups」という名前のジョブのビルドを一覧表示するには、次のコマンドを実行します。
./docker/run.client --model gemini-2.0-flash-001 "list builds backups"注: パッケージがpip install .経由でインストールされている場合は、 mcp_jenkins_clientコンソール スクリプトも利用できます。
次のような出力が生成される場合があります:
Query: list builds backups
Result:
Recent builds for backups:
- Build #1086: FAILURE (http://myjenkins:8080/job/backups/1086/)Dockerを使ったビルドとテスト
開発とテストの一般的なワークフローは、最初に Docker イメージをビルドし、次にテストを実行することです。
**Docker イメージをビルドする:**この手順では、テストに必要な環境を準備します。
./docker/build**テストの実行:**ビルドが完了したら、テストを実行します。
./docker/run.tests
このシーケンスにより、一貫した Docker 環境で最新のビルドに対してテストが実行されるようになります。
テスト環境の展開
ローカル Jenkins テスト インスタンスをデプロイするには (認証なし、機能テストのみ):
./docker/deploy.test.environment既存のJenkinsインスタンスへの接続
既存の Jenkins インスタンスで MCP Jenkins サーバーを使用するには、次の環境変数を設定する必要があります。
JENKINS_URL: Jenkinsインスタンスの完全なURL(例:http://your-jenkins-host:8080)。これは必須です。JENKINS_USER: (オプション) 認証が必要な場合の Jenkins ユーザー名。JENKINS_API_TOKEN: (オプション) Jenkins APIトークン。認証を使用する場合は、JENKINS_USERと一緒に指定する必要があります。APIトークンは、Jenkinsユーザー設定ページ (<Jenkins URL>/me/configure) で生成できます。MCP_API_KEY: このMCPサーバーを保護するための秘密APIキー。MCPサーバーへのリクエストでは、このキーをX-API-Keyヘッダーに含める必要があります。DEBUG_MODEDEBUG_MODE``trueに設定されていない限り、これは必須です。DEBUG_MODE:trueに設定すると、MCP サーバーがデバッグモードで実行されます。これにより、MCP_API_KEY要件が回避され、より詳細なログが出力されます。本番環境では使用しないでください。
設定例 (Bash):
export JENKINS_URL="http://your-jenkins-host:8080"
export JENKINS_USER="your_jenkins_username"
export JENKINS_API_TOKEN="your_jenkins_api_token"
export MCP_API_KEY="your_mcp_secret_key"
# export DEBUG_MODE="true" # Uncomment for development/testing without MCP_API_KEYこれらの環境変数が設定されると、Docker スクリプトを使用して MCP サーバーを実行できます。
./docker/run.serverその後、MCP サーバーは指定された Jenkins インスタンスへの接続を試みます。
OpenWebUI統合
ファイルopen-webui/open_webui_interface.pyは、この MCP Jenkins サーバーを OpenWebUI インスタンスと統合する方法の例が示されています。
使用するには:
OpenWebUI インターフェースで、ツールを追加または構成するためのセクションに移動します。
新しいツールを作成します。
open-webui/open_webui_interface.pyファイルの内容全体をコピーし、OpenWebUI のツール構成に貼り付けます。重要: 貼り付けたコード内の接続パラメータを調整する必要があります。具体的には、次のとおりです。
MCP_JENKINS_SERVER_URL: OpenWebUI 環境でこの環境変数を、実行中の MCP Jenkins サーバーの URL (例:http://localhost:5000) に設定します。この変数が設定されていない場合、スクリプトはデフォルトでhttp://localhost:5000を使用します。MCP_API_KEY: MCP Jenkins サーバーが API キーを要求するように設定されている場合、OpenWebUI 環境でこの環境変数が設定されていることを確認してください。このキーが見つからない場合、スクリプトは警告を表示しますが、リクエストの送信は試行されます。
設定が完了すると、 open_webui_interface.pyで定義されたツール (例: list_jobs 、 trigger_build 、 get_build_status ) が OpenWebUI チャット インターフェース内で使用できるようになります。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています。
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.