ReportPortal MCP Server について
ReportPortal MCP Server は ReportPortal インスタンスと AI チャットアシスタントを橋渡しし、テスト実行結果を自然言語で照会できるようにします。対象は QA テスターやマネージャーです。2.x ではテストケース管理システム(TMS)にも対応しています。
主な機能
- 01テスト実行と失敗情報の自然言語による照会
- 02TMS のテストケース・フォルダ・マイルストーンの参照と管理
- 03stdio と HTTP の両方のトランスポートモードに対応
- 04Docker と事前ビルド済みバイナリによるインストール
活用シーン
- 01チャットで直近のテスト実行の失敗を確認
- 02AI アシスタントから Smoke フォルダーのテストケースを参照
- 03現在のスプリントのマイルストーン向けテスト計画の作成
MCP 対応
本プロジェクトは MCP サーバーであり、ReportPortal の実行データと TMS データをツールとして Claude Desktop、Cursor、GitHub Copilot などの MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ReportPortal MCP サーバー
ドキュメントに関する注意: この README は現在の開発ブランチの内容を反映しています。利用可能なツールと機能の最新リストについては、
mainブランチの README をご確認ください。
ReportPortal MCP サーバーとは?
ReportPortal MCP サーバーは、お使いの ReportPortal インスタンスと AI チャットアシスタント(Claude Desktop、GitHub Copilot、Cursor など)をつなぐブリッジです。簡単に言えば、テスト実行について自然な英語で質問すると、ReportPortal から直接回答を得られます。公式の MCP ガイドラインに準拠しています。
バージョン 2.x 以降、このサーバーは ReportPortal テストケース管理システム(TMS)(テストケース、フォルダー、マイルストーン、テスト計画)とも連携し、同じチャットインターフェースからテスト設計データを参照、管理できるようになりました。
たとえば、ReportPortal の UI にログインする代わりに、AI アシスタントに「直近の実行で失敗したテストは何ですか?」や「最新のテスト実行を 5 件一覧表示して」と尋ねると、ReportPortal から情報を取得してくれます。
TMS に対応しているため、「Smoke フォルダー内のテストケースを一覧表示して」や「現在のスプリントのマイルストーンに対するテスト計画を作成して」といった質問もできます。これにより、QA テスターやマネージャーは自然言語を使ってテストケースを管理し、テスト結果やテスト資産を照会できるため、計画、分析、レポート作成を効率化できます。
使用するメリット
- テスト状況をすばやく把握:コードを書いたり UI を操作したりすることなく、テスト実行の概要、失敗件数、エラーの詳細をすぐに取得できます。
- チャットから TMS を操作:AI アシスタントから離れずに、ReportPortal TMS のテストケース、フォルダー、マイルストーン、テスト計画を参照、作成、更新できます。
- チャットベースの照会:お好みの AI アシスタント(Claude、Cursor など)を使って ReportPortal のデータとやり取りできます。チャットウィンドウに、便利なテストレポート担当者がいるようなものです。
- 柔軟な連携:MCP 対応の AI ツールであれば、どれでも使用できます。ツールの接続先としてこのサーバーを指定するだけで、ReportPortal へのクエリを内部で実行できます。
- カスタムスクリプト不要:実行の一覧表示、失敗の取得、分析、TMS の検索といった一般的なクエリが、チャットから呼び出せる簡単な「コマンド」として組み込まれています。
前提条件
MCP サーバーをセットアップする前に、お使いの ReportPortal インスタンスから以下の情報を用意してください。
ReportPortal ホスト URL(RP_HOST)
ReportPortal インスタンスの URL です。
- 例:
https://reportportal.example.com - ローカル環境の場合:
http://localhost:8080
プロジェクトキー(RP_PROJECT)— 任意
この値は任意です。設定すると、すべてのリクエストで使用するデフォルトのプロジェクトキーになります。projectKey ツール引数は、コンテキストからプロジェクトを取得できない場合(stdio モードでは RP_PROJECT 環境変数、HTTP モードでは X-Project HTTP ヘッダー)に限り、フォールバックとして使用されます。
プロジェクトキーは、ReportPortal インスタンス内でプロジェクトを一意に識別する値です。プロジェクトキーとしてプロジェクトの表示名を使用しないでください。ReportPortal の一般設定ページで確認できます。
https://your-rp-instance.com/ui/#organizations/{your-organization}/projects/{your_project}/settings/general
API トークン(RP_API_TOKEN)
API トークンは ReportPortal のプロフィールから取得するか、新たに生成できます。 セキュリティに関する注意: トークンをバージョン管理システムにコミットしたり、公開したりしないでください。
サーバーモード(MCP_MODE)
MCP_MODE は、MCP サーバーのトランスポートモードを制御するシステム環境変数です。
| 値 | 説明 |
|---|---|
stdio | (デフォルト) 標準入出力 — ローカルの AI ツールとの統合で使用します(Claude Desktop、Cursor、VS Code Copilot など)。 |
http | HTTP/SSE ストリーミング — リモートアクセスまたは複数クライアントからのアクセス用に HTTP エンドポイントを公開します。 |
この変数が必要なのは、サーバーを HTTP モードで実行する場合のみです。ローカルの AI ツールとの統合では、デフォルトの stdio モードが使用されるため、追加の設定は必要ありません。
重要:
httpモードは、サーバーのデプロイ用です。AI ツールがリモート接続するには、その前にMCP_MODE=httpを設定して MCP サーバーをデプロイし、実行しておく必要があります。デプロイ手順については、開発者向けセクションを参照してください。
インストール
ReportPortal MCP サーバーへの接続方法は 2 つあります。
- ローカル — Docker(推奨)またはビルド済みバイナリを使用します。
- リモート MCP サーバーへの接続(サーバーがすでにデプロイされている場合)
いずれの方法も、すべての LLM プロバイダーで利用できます。
ローカルインストール
以下の設定では、デフォルトの stdio モード(MCP_MODE=stdio)を使用します。これは、すべてのローカル AI ツールとの統合に適した選択肢です。代わりにサーバーを HTTP モードで実行するには、env ブロックに MCP_MODE=http を追加してください(詳しくは開発者向けセクションを参照してください)。
Docker を使用する(推奨)
MCP サーバーは、ReportPortal 公式の DockerHub から入手できます。
設定:
{
"reportportal": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"RP_API_TOKEN",
"-e",
"RP_HOST",
"-e",
"RP_PROJECT",
"reportportal/mcp-server"
],
"env": {
"RP_API_TOKEN": "your-api-token",
"RP_HOST": "https://your-reportportal-instance.com",
"RP_PROJECT": "YourProjectKeyFromReportPortal"
}
}
}
ビルド済みバイナリを使用する
OS 用のビルド済みバイナリは、GitHub の公式リリースからダウンロードできます。
設定:
{
"reportportal": {
"command": "/path/to/reportportal-mcp-server-binary",
"args": ["stdio"],
"env": {
"RP_API_TOKEN": "your-api-token",
"RP_HOST": "https://your-reportportal-instance.com",
"RP_PROJECT": "YourProjectKeyFromReportPortal"
}
}
}
リモート MCP サーバーへの接続
ReportPortal MCP サーバーがすでにデプロイ済みで、HTTP 経由でアクセスできる場合は、ローカルで実行せずにリモート接続できます。サーバーが集中管理された環境や共有環境でホストされている場合に便利です。
注: AI ツールが接続するには、その前にリモートサーバーを HTTP モード(システム環境変数
MCP_MODE=http)でデプロイし、実行しておく必要があります。デプロイと設定の詳細については、開発者向けセクションを参照してください。
リモートサーバーの設定:
{
"reportportal": {
"url": "http://your-mcp-server-host:port/mcp",
"headers": {
"Authorization": "Bearer ${RP_API_TOKEN}",
"X-Project": "YourProjectKeyFromReportPortal"
}
}
}
設定パラメーター:
url:リモート MCP サーバーの HTTP エンドポイント URL(/mcpまたは/api/mcpを使用)headers.Authorization:認証用の Bearer トークン(必須)headers.X-Project:ReportPortal のプロジェクトキー — 表示名ではなく、一意のプロジェクト識別子です(任意)
AI ツールのセットアップ
接続する AI ツールを選択してください。
Cursor(AI コードエディター)
クリックするだけです。
または、以下の手順に従ってください。
- Cursor で Settings から Tools & MCP に移動し、Add Custom MCP をクリックします。
mcp.jsonファイルが開きます。ここに、ReportPortal MCP サーバーを実行する新しい MCP サーバーエントリーを追加します。
ローカルインストール(Docker またはバイナリ)の場合:
インストールセクションから希望する設定を選び、
reportportalブロック内に貼り付けてください。
{
"mcpServers": {
"reportportal": {
// paste your chosen configuration here
}
}
}
リモートサーバーの場合:
注: 接続する前に、リモートサーバーを HTTP モードでデプロイし、実行しておく必要があります。
{
"mcpServers": {
"reportportal": {
"url": "http://your-mcp-server-host:port/mcp/",
"headers": {
"Authorization": "Bearer ${RP_API_TOKEN}",
"X-Project": "YourProjectKeyFromReportPortal"
}
}
}
}
ドキュメント:Cursor MCP。
GitHub Copilot(VS Code および JetBrains IDE)
VS Code
- GitHub Copilot プラグインをインストールまたは更新します。
Ctrl+Pを押し、検索バーに>mcpと入力して、MCP: Open User Configuration を選択します。- ReportPortal MCP Server を実行する新しい MCP サーバーエントリを追加する
mcp.jsonファイルが開きます。
ローカルインストール(Docker またはバイナリ)の場合:
インストールのセクションから希望する構成を選び、
reportportalブロック内に貼り付けてください。
{
"servers": {
"reportportal": {
// paste your chosen configuration here
}
}
}
リモートサーバーの場合:
注: 接続する前に、リモートサーバーを HTTP モードでデプロイして実行中にしておく必要があります。
{
"servers": {
"reportportal": {
"url": "http://your-mcp-server-host:port/mcp/",
"requestInit": {
"headers": {
"Authorization": "Bearer ${RP_API_TOKEN}",
"X-Project": "YourProjectKeyFromReportPortal"
}
}
}
}
}
ドキュメント:VS Code Copilot ガイド。
JetBrains IDEs
- GitHub Copilot プラグインをインストールまたは更新します。
- ステータスバーの GitHub Copilot アイコン → Edit Settings → Model Context Protocol → Configure をクリックします。
- 構成を追加します。
ローカルインストール(Docker またはバイナリ)の場合:
インストールのセクションから希望する構成を選び、
reportportalブロック内に貼り付けてください。
{
"servers": {
"reportportal": {
// paste your chosen configuration here
}
}
}
リモートサーバーの場合:
注: 接続する前に、リモートサーバーを HTTP モードでデプロイして実行中にしておく必要があります。
{
"servers": {
"reportportal": {
"url": "http://your-mcp-server-host:port/mcp/",
"requestInit": {
"headers": {
"Authorization": "Bearer ${RP_API_TOKEN}",
"X-Project": "YourProjectKeyFromReportPortal"
}
}
}
}
}
Ctrl + SまたはCommand + Sを押して保存するか、mcp.jsonファイルを閉じます。構成はすぐに反映され、定義されているすべての MCP サーバーが再起動します。必要に応じて IDE を再起動してください。
ドキュメント:JetBrains Copilot ガイド。
Claude Desktop
- Claude Desktop を開き、Settings → Developer → Edit Config に移動します。
- ReportPortal MCP Server を実行する新しい MCP サーバーエントリを追加します。
ローカルインストール(Docker またはバイナリ)の場合:
インストールのセクションから希望する構成を選び、
reportportalブロック内に貼り付けてください。
{
"mcpServers": {
"reportportal": {
// paste your chosen configuration here
}
}
}
- 保存して Claude Desktop を再起動します。
リモートサーバーの場合:
Claude Desktop は、主にローカルの標準入出力(stdio)を介した通信を前提に設計されているため、リモートの Model Context Protocol(MCP)サーバーへの Server-Sent Events(SSE)トランスポートを標準では直接サポートしていません。リモートの SSE サーバーに接続するには、stdio を SSE にブリッジするローカルラッパースクリプトまたはブリッジツール(例:mcp-remote、npx)を claude_desktop_config.json で使用する必要があります。
Claude Code CLI
- ターミナルを開きます。
- 次のいずれかのコマンドを実行します。
ローカルインストール(Docker)の場合:
claude mcp add-json reportportal '{"command": "docker", "args": ["run", "-i", "--rm", "-e", "RP_API_TOKEN", "-e", "RP_HOST", "-e", "RP_PROJECT", "reportportal/mcp-server"], "env": {"RP_API_TOKEN": "${RP_API_TOKEN}", "RP_HOST": "https://your-reportportal-instance.com", "RP_PROJECT": "YourProjectKeyFromReportPortal"}}'
リモートサーバーの場合:
注: 接続する前に、リモートサーバーを HTTP モードでデプロイして実行中にしておく必要があります。
claude mcp add-json reportportal '{"url": "http://your-mcp-server-host:port/mcp/", "headers": {"Authorization": "Bearer ${RP_API_TOKEN}", "X-Project": "YourProjectKeyFromReportPortal"}}'
構成オプション:
-s userを使用すると、ユーザー構成にサーバーを追加できます(すべてのプロジェクトで利用可能です)。-s projectを使用すると、プロジェクト固有の構成にサーバーを追加できます(.mcp.jsonを介して共有されます)。- デフォルトのスコープは
localです(現在のプロジェクトで自分だけが利用できます)。
ドキュメント:Claude Code ガイド。
その他のコーディングエージェント
ReportPortal MCP Server は、MCP に対応するすべてのコーディングエージェントと互換性があります。正確な構成形式は異なる場合がありますが、ほとんどのエージェントは次のいずれかをサポートしています。
ローカルインストール(stdio モード):
{
"reportportal": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "RP_API_TOKEN", "-e", "RP_HOST", "-e", "RP_PROJECT", "reportportal/mcp-server"],
"env": {
"RP_API_TOKEN": "your-api-token",
"RP_HOST": "https://your-reportportal-instance.com",
"RP_PROJECT": "YourProjectKeyFromReportPortal"
}
}
}
リモートサーバー(HTTP モード):
注: 接続する前に、リモートサーバーを HTTP モードでデプロイして実行中にしておく必要があります。
{
"reportportal": {
"url": "http://your-mcp-server-host:port/mcp/",
"headers": {
"Authorization": "Bearer your-api-token",
"X-Project": "YourProjectKeyFromReportPortal"
}
}
}
正確な構成形式と構成ファイルの配置場所については、お使いのコーディングエージェントのドキュメントを参照してください。
接続すると、AI アシスタントに ReportPortal 関連の呼び出し可能な「ツール」が一覧表示されます。その後、チャットで質問すると、アシスタントが代わりにそれらのツールを呼び出します。
注: セットアップが完了したら、構成のテスト方法についてセットアップの確認セクションを参照してください。
ReportPortal との互換性
最新バージョンの ReportPortal を使用することを強くおすすめします。
この MCP サーバーのバージョン 1.x は、25.1 以降の ReportPortal 製品バージョン(API サービスのバージョンが 5.14.0 以上)をサポートしています。
それ以前のバージョンとの互換性はテストされておらず、MCP サーバーが正しく動作しない可能性があります。
バージョン 2.x(現在開発中)では ReportPortal TMS ツールが追加され、Test Case Management API が利用可能な ReportPortal 製品バージョン 26.1+ が必要です。
機能
ReportPortal MCP サーバーは、ReportPortal と連携するための包括的な機能を提供します。
起動管理
- 起動(テスト実行)を取得およびフィルタリングします(ページネーション対応)
- 名前または ID で起動の詳細を取得します
- 実行中の起動を強制終了します
- 起動を削除します
- 起動に対して自動分析(自動分析、一意エラー分析、品質ゲート)を実行します
- ReportPortal インポートプラグインを使用してファイルから起動をインポートします(対応形式は ReportPortal インスタンスにインストールされているプラグインによって異なり、通常は XML レポートや ZIP アーカイブです。例:JUnit XML、Allure ZIP)
テスト項目の分析
- 起動または保存済みフィルターでテスト項目を取得します。オプションのフィルター(不具合/問題の種類を含む)を指定できます
- 各テスト項目の詳細情報を取得します
- テスト実行の統計情報と失敗を確認します
- テストログと添付ファイルを取得します
- テスト項目の不具合タイプを更新して、テスト結果を判定します
- 起動をまたいだテスト項目の過去の実行データを取得します
レポート生成
- 起動を分析して、テスト実行に関する詳細な分析情報を取得します
- 統計情報と失敗分析を含む構造化レポートを生成します
テストケース管理(TMS)
MCP サーバーのバージョン 2.x から利用できます(ReportPortal 26.1+ が必要です)。
- オプションのフィルターと limit/offset ページネーションを使用して、マイルストーン、テストフォルダー、テストケースを参照します
- ID を指定して特定のテスト計画を取得します
- テストフォルダーを作成して整理します(入れ子のサブフォルダーを含む)
- 対応している次のいずれかの形式で、手動テストケースを作成、更新、削除します:
textシナリオ(手順と期待結果)またはstepsシナリオ(順序付きの手順リスト) - マイルストーンとテスト計画を作成し、テストケースをテスト計画に割り当てたり、テスト計画から削除したりします
- オプションの limit/offset ページネーションを使用して、特定のテスト計画に関連付けられたテストケースを取得します
- テスト計画のテストケースを含む手動起動を一度に作成します
- ページネーションを使用して、フィルター(名前、項目のステータス、完了状態、期間、テスト計画、属性)に一致する手動起動を一覧表示します
- ページネーションを使用して、フィルター(名前、優先度、タグ)に一致する手動起動のテストケース実行を一覧表示します
- 既存の手動起動にテストケースを一括追加します
- 手動起動内のテストケース実行のステータスとコメントを更新します
注: TMS の書き込みツール(
create_*、update_*、delete_*、add_test_cases_to_test_plan、delete_test_cases_from_test_plan、add_test_cases_to_manual_launch、update_manual_launch_execution)は、ReportPortal のデータを変更します。本番プロジェクトでは慎重に使用してください。
利用可能なツール(コマンド)
ツール。テスト結果
| ツール名 | 説明 | パラメーター |
|---|---|---|
| フィルターによる起動の取得 | フィルターを使って ReportPortal の起動をページネーション付きで一覧表示します | name、description、owner、number、start_time、end_time、attributes、sort、page、page-size(すべて省略可能) |
| 名前による最新の起動の取得 | 名前を指定して最新の起動を取得します | launch(必須) |
| ID による起動の取得 | ID を直接指定して特定の起動を取得します | project(省略可能、文字列)、launch_id(必須、文字列) |
| 品質ゲートの実行 | 起動に対して品質ゲート分析を実行します | launch_id(必須)、project(省略可能) |
| 自動分析の実行 | 起動に対して自動分析を実行します | launch_id(必須)、analyzer_mode(省略可能)、analyzer_type(省略可能)、analyzer_item_modes(省略可能) |
| 一意エラー分析の実行 | 起動に対して一意エラー分析を実行します | launch_id(必須)、remove_numbers(省略可能) |
| 起動の更新 | 起動の説明および/または属性を更新します | launch_id(必須)、description(省略可能、既存の値を置き換えます)、attributes(省略可能、{key, value} オブジェクトの配列 — 既存の属性をすべて置き換えます) |
| 起動の強制終了 | 起動を強制終了します | launch_id(必須) |
| 起動の削除 | 特定の起動を削除します | launch_id(必須) |
| ファイルから起動をインポート | ReportPortal のインポートプラグインを使ってファイルから起動をインポートします。サポートされるファイル形式は、サーバーにインストールされているプラグインによって異なります(例:JUnit XML、Allure ZIP)。使用可能なプラグインと受け付ける MIME タイプは、GET /api/v1/plugin(groupType: "IMPORT" でフィルター)を使って確認できます。ハンドラーでは、デコード後のアップロードサイズの上限がデフォルトで最大 50 MiB に設定されており、選択したプラグインがより小さい details.maxFileSize を提示している場合は、それより低い上限が適用されることがあります。base64 でエンコードされたアップロードは、デコード後にサイズが計測されます。有効な上限を超えるインポートは拒否されます。ファイルを分割するか、アップロード前に圧縮してください。 | plugin_name(必須)、file_name(必須、例:results.xml)、file_content(必須、テキスト形式ではプレーンテキスト、バイナリ形式では base64)、content_encoding(省略可能、"none"(デフォルト)または "base64")、project(省略可能) |
| フィルターによるスイートの取得 | 特定の起動のテストスイートを一覧表示します | launch-id(必須)、name、description、start_time_from、start_time_to、attributes、parent_id、sort、page、page-size(すべて省略可能) |
| フィルターによるテスト項目の取得 | 特定の起動または保存済みフィルターのテスト項目を一覧表示します | launch-id または filter-name(いずれか一方が必須)、include-before-after-hooks、name、description、status、has_retries、start_time_from、start_time_to、attributes、parent_id、defect_comment、auto_analyzed、ignored_in_aa、pattern_name、ticket_id、filter-eq-defect-type(get_project_defect_types の省略可能な不具合/課題タイプロケーター)、sort、page、page-size(すべて省略可能) |
| フィルターによるログの取得 | 特定のテスト項目またはネストされたステップのログを一覧表示します | parent-item-id(必須)、log_level、log_content、logs_with_attachments、status、sort、page、page-size(すべて省略可能) |
| ID による添付ファイルの取得 | ID を指定して添付ファイルのバイナリデータを取得します | attachment-content-id(必須) |
| ID によるテスト項目の取得 | 特定のテスト項目の詳細を取得します | test_item_id(必須) |
| プロジェクトの不具合タイプの取得 | 特定のプロジェクトで使用可能な不具合タイプを取得します | なし |
| 項目 ID による不具合タイプの更新 | 複数のテスト項目の不具合タイプを更新します | test_items_ids(必須)、defect_type_id(必須)、defect_type_comment(省略可能) |
| テスト項目の履歴の取得 | 特定の起動または親スイートにおけるテスト項目の実行履歴を取得します | filter-eq-launchId または filter-eq-parentId(いずれか一方が必須)、historyDepth、type、name、description、status、start_time_from、start_time_to、attributes、has_retries、defect_comment、auto_analyzed、ignored_in_aa、ticket_id、pattern_name、page、page-size、page-sort(すべて省略可能) |
ツール。テストケース管理
MCP サーバーのバージョン 2.x から利用できます。TMS を有効にした ReportPortal 26.1 以降が必要です。
| ツール名 | 説明 | パラメーター |
|---|---|---|
| フィルターによるマイルストーンの取得 | プロジェクトの TMS マイルストーンを一覧表示します。名前または ID で絞り込むこともできます。limit/offset によるページネーションに対応しています。 | filter-cnt-name(任意)、filter-id(任意)、limit(任意、整数 ≥ 1、デフォルト 50)、offset(任意、整数 ≥ 0、デフォルト 0) |
| ID によるテスト計画の取得 | ID で TMS テスト計画を取得します | id(必須) |
| テスト計画のテストケースの取得 | TMS テスト計画に割り当てられたテストケースを一覧表示します。limit/offset によるページネーションに対応しています。 | test-plan-id(必須)、limit(任意、整数 ≥ 1、デフォルト 50)、offset(任意、整数 ≥ 0、デフォルト 0) |
| フィルターによるテストフォルダーの取得 | プロジェクトの TMS テストフォルダーを一覧表示します。すべてのフィルターとページネーションパラメーターは任意です。 | filter-eq-id(任意、整数 ≥ 1)、filter-eq-parentId(任意、整数 ≥ 1)、filter-cnt-name(任意)、limit(任意、整数 ≥ 1、デフォルト 50)、offset(任意、整数 ≥ 0、デフォルト 0) |
| フィルターによるテストケースの取得 | プロジェクトの TMS テストケースを一覧表示します。すべてのフィルターとページネーションパラメーターは任意です。 | filter-eq-id(任意、整数 ≥ 1)、filter-eq-testFolderId(任意、整数 ≥ 1)、filter-cnt-name(任意)、filter-has-attributeKey(任意、絞り込みに使用するタグキーのカンマ区切りリスト。例:smoke,regression,login)、filter-in-priority(任意、列挙配列:BLOCKER | CRITICAL | HIGH | LOW | MEDIUM | UNSPECIFIED)、limit(任意、整数 ≥ 1、デフォルト 50)、offset(任意、整数 ≥ 0、デフォルト 0) |
| フォルダーの作成 | TMS に新しいテストフォルダー(またはサブフォルダー)を作成します。TMS データを変更します。 | name(必須)、description(任意)、parent-test-folder-id(任意、整数 ≥ 1) |
| フォルダーの削除 | ID で TMS からテストフォルダーを削除します。TMS データを変更します。元に戻せません。 | folderId(必須、整数 ≥ 1) |
| テストケースの作成 | 新しいテストケースを作成します。test-case-type で手動シナリオの形式を選択します。添付ファイル({ id, fileName, fileType, fileSize, content }。Update Manual Launch Execution の添付ファイルと同じ形式です。事前にアップロードした id またはインラインの base64 content のいずれかを指定すると、自動的にアップロードされます)は、text の場合はシナリオ全体に、steps の場合は各ステップおよび前提条件にリンクできます。TMS データを変更します。 | name(必須)、test-folder-id(必須、整数 ≥ 1 — テストケースを配置するフォルダーの ID)、description(任意)、priority(任意、列挙値:LOW | MEDIUM | HIGH | CRITICAL | BLOCKER | UNSPECIFIED)、test-case-type(任意、列挙値:text(デフォルト) | steps)、instructions(任意、text タイプ用)、expected-result(任意、text タイプ用)、steps(任意、{ instructions, expected-result, attachments } の配列。steps タイプ用。各ステップの attachments はそのステップのみに添付されます)、preconditions(任意)、preconditions-attachments(任意、前提条件用の添付ファイル配列。test-case-type が steps で、preconditions が指定されている場合のみ有効です)、requirements(任意、値文字列の配列。各項目に一意の ID が自動生成されます)、attachments(任意、シナリオ全体用の添付ファイル配列。test-case-type が text の場合のみ有効です)、attributes(任意、{ key } オブジェクトの配列 — 添付するタグです。キーに一致する既存のプロジェクト属性は再利用され、一致するものがない場合は自動作成されます) |
| テストケースの更新 | 既存のテストケースを更新します。指定されたフィールドのみが変更されます。TMS データを変更します。 | testCaseId(必須、整数 ≥ 1)、name(任意)、description(任意)、priority(任意、列挙値:LOW | MEDIUM | HIGH | CRITICAL | BLOCKER | UNSPECIFIED)、test-folder-id(任意、整数 ≥ 1)、test-case-type(任意、列挙値:text | steps。instructions、expected-result、preconditions、requirements、steps、attachments、preconditions-attachments のいずれかを指定する場合は必須です)、instructions(任意、text タイプ用)、expected-result(任意、text タイプ用)、steps(任意、{ instructions, expected-result, attachments } の配列。steps タイプ用)、preconditions(任意)、preconditions-attachments(任意、前提条件用の添付ファイル配列。test-case-type が steps で、preconditions が指定されている場合のみ有効です)、requirements(任意、値文字列の配列。各項目に一意の ID が自動生成されます)、attachments(任意、シナリオ全体用の添付ファイル配列。test-case-type が text の場合のみ有効です)、attributes(任意、{ key } オブジェクトの配列 — 添付するタグです。既存のタグをすべて削除するには [] を渡します。変更しない場合は省略します) |
| テストケースの削除 | ID で TMS からテストケースを削除します。TMS データを変更します。元に戻せません。 | testCaseId(必須、整数 ≥ 1) |
| マイルストーンの作成 | TMS に新しいマイルストーンを作成します。**TMS データを変更します。**日付は RFC3339 形式で指定してください(例:2026-01-01T00:00:00Z)。end-date は start-date より前にできません。 | name(必須)、type(必須、列挙値:RELEASE | SPRINT | PLAN | FEATURE | OTHER)、start-date(必須、RFC3339)、end-date(必須、RFC3339)、status(任意、列挙値:SCHEDULED | TESTING | COMPLETED) |
| テスト計画の作成 | 既存のマイルストーンに紐づく新しいテスト計画を作成します。TMS データを変更します。 | name(必須)、milestone-id(必須、整数 ≥ 1)、description(任意) |
| テスト計画へのテストケースの追加 | 既存の TMS テスト計画に 1 つ以上のテストケースを追加します。TMS データを変更します。 | test-plan-id(必須、整数 ≥ 1)、test-case-ids(必須、整数 ≥ 1 の空でない配列) |
| テスト計画からのテストケースの削除 | 既存の TMS テスト計画から 1 つ以上のテストケースを削除します。TMS データを変更します。 | test-plan-id(必須、整数 ≥ 1)、test-case-ids(必須、整数 ≥ 1 の空でない配列) |
| 手動ローンチの作成 | TMS に新しい手動ローンチを作成し、テスト計画のテストケースを追加します。TMS データを変更します。 | name(必須)、startTime(必須、ISO-8601。例:2026-07-29T11:59:04.221Z)、test-plan-id(必須、整数 ≥ 1)、test-case-ids(必須、整数 ≥ 1 の空でない配列)、description(任意)、attributes(任意、{ key, value } オブジェクトの配列 — 各属性に value が必要です) |
| 手動ローンチの取得 | TMS からプロジェクトの手動ローンチを一覧表示します。名前、実行ステータス、完了状態、時間範囲、テスト計画、または属性で絞り込めます。limit/offset によるページネーションに対応しています。 | filter-cnt-name(任意)、filter-in-itemStatus(任意、配列:PASSED | FAILED | SKIPPED | IN_PROGRESS)、filter-eq-completion(任意、列挙値:has_not_executed | done。すべてを対象とする場合は省略)、filter-gt-startTime(任意、RFC3339 または Unix エポック)、filter-lt-endTime(任意、RFC3339 または Unix エポック)、filter-eq-testPlanId(任意、整数 ≥ 1)、filter-has-compositeAttribute(任意、形式:key1:value1,key2:value2)、limit(任意、整数 ≥ 1)、offset(任意、整数 ≥ 0) |
| 手動ローンチのテストケース実行の取得 | TMS から特定の手動ローンチのテストケース実行を一覧表示します。すべてのフィルターとページネーションパラメーターは任意です。 | launchId(必須、整数 ≥ 1)、filter-cnt-name(任意)、filter-in-priority(任意、配列:BLOCKER | CRITICAL | HIGH | LOW | MEDIUM | UNSPECIFIED)、filter-in-attributeKey(任意、形式:tag1,tag2,tag3)、limit(任意、整数 ≥ 1)、offset(任意、整数 ≥ 0) |
| 手動ローンチへのテストケースの追加 | 既存の TMS 手動ローンチに 1 つ以上のテストケースを追加します。TMS データを変更します。 | launchId(必須、整数 ≥ 1)、test-case-ids(必須、整数 ≥ 1 の空でない配列) |
| 手動ローンチ実行の更新 | TMS 手動ローンチ内のテストケース実行のステータスを更新します(任意で添付ファイル付きコメントを追加できます)。各添付ファイルでは、POST /project/{projectKey}/tms/attachment/upload でアップロード済みのファイルを参照する(id/fileName/fileType/fileSize を指定)か、ファイルの生データを base64 としてインラインで指定(fileName + content)できます。後者の場合、ツールが自動的にエンドポイントへアップロードし、生成された添付ファイルを実行にリンクします。ハンドラーはインライン添付ファイルごとに、デコード後のアップロード上限を 52,428,800 バイト(50 MiB)に制限します。base64 エンコードされたコンテンツのサイズはデコード後に計測されます。この上限を超える添付ファイルは拒否されます。TMS データを変更します。 | launchId(必須、整数 ≥ 1)、testCaseExecutionId(必須、整数 ≥ 1)、status(必須、列挙値:IN_PROGRESS | PASSED | FAILED | SKIPPED)、executionComment(任意、オブジェクト:comment(任意、文字列)、attachments(任意、{ id, fileName, fileType, fileSize, content } の配列 — id(アップロード済みの添付ファイル。fileType/fileSize が必須)または content(自動アップロードする base64 エンコード済みバイト列。fileType/fileSize は任意で、自動判定されます)のいずれかを指定し、fileName は常に必須です) |
利用可能なプロンプト
起動を分析
ReportPortal の起動を分析し、テスト結果、失敗、統計情報について詳しく説明します。
パラメーター:
launch_id:分析する起動の ID
独自のプロンプトを作成する際は、参考としてプロンプトのテキストと構成を参照できます。
クエリの例(自然言語)
セットアップ後に AI に尋ねられる、実際のユースケースの例をいくつか紹介します(アシスタントの回答は ReportPortal のデータに基づきます)。
- 「直近のテスト起動を5件一覧表示して。」 – 名前とステータスを含む、最近のテスト実行のページ分割されたリストを返します。
- 「最新の実行で失敗したテストは?」 – 最新の起動で失敗したテスト項目を表示します。
- 「ID 119000 の起動の詳細を表示して。」 – ページ分割せず、ID を指定して特定の起動を取得します。
- 「番号 1234 の起動の詳細を表示して。」 – その起動の情報(ID、名前、説明、統計情報)を取得します。
- 「起動 12345 で品質ゲートを実行して。」 – 品質ゲート分析を実行し、起動が定義済みの品質基準を満たしているか確認します。
- 「起動 ABC を分析して。」 – ReportPortal の自動分析を実行し、起動「ABC」の結果と失敗を要約します。
- 「ID 4321 の実行中の起動を終了して。」 – 現在実行中のテスト起動を強制的に停止します。
- 「過去1時間の500レベルエラーの上位5件を表示して。」 - 最近のテスト結果から、該当するエラーの上位5件を一覧表示します。
- 「junit プラグインを使って、この JUnit XML レポートをプロジェクト 'my_project' にインポートして。」 – 提供されたレポートファイルを ReportPortal にアップロードし、新しい起動を作成します。
上記の各クエリは、MCP サーバーが提供する「ツール」に対応していますが、自然な言葉で尋ねるだけでかまいません。 AI は背後で適切なコマンドを呼び出します。 これらの機能により、シンプルなチャットでさまざまな方法でテストレポートを検索、管理できます。
開発者向け
前提条件
- Go 1.24.4 以降
- ReportPortal インスタンス
ソースからビルド
# Clone the repository
git clone https://github.com/reportportal/reportportal-mcp-server.git
cd reportportal-mcp-server
# Build the binary
go build -o reportportal-mcp-server ./cmd/reportportal-mcp-server
これにより、reportportal-mcp-server という名前の実行可能ファイルが作成されます。
設定
サーバーが ReportPortal の接続先と認証方法を把握できるようにする必要があります。シェルで次の環境変数を設定してください。
stdio モード(デフォルト)の場合:
| 変数 | 説明 | 必須 |
|---|---|---|
RP_HOST | ReportPortal のインストール先 URL(例:https://myreportportal.example.com) | はい |
RP_PROJECT | ReportPortal のデフォルトのプロジェクトキー(ReportPortal インスタンス内で一意のプロジェクト識別子。例:myorganization_myproject) | いいえ |
RP_API_TOKEN | ReportPortal API トークン(アクセス用) | はい |
HTTP モードの場合:
MCP_MODE=http を設定し、次の項目を構成します。
RP_HOST:必須 - ReportPortal の URLRP_PROJECT:HTTP モードでは使用されません。設定されていても無視されます。リクエストごとにX-Projectリクエストヘッダーで指定してください。MCP_SERVER_PORT:任意 - HTTP サーバーのポート(デフォルト:8080)MCP_SERVER_HOST:任意 - HTTP のバインド先ホスト(デフォルト:空)- 認証トークンは、リクエストごとに
Authorization: Bearer <token>ヘッダーで渡す必要があります RP_API_TOKEN環境変数は HTTP モードでは使用されません
stdio モードの例:
export RP_HOST="https://your-reportportal-instance.com"
export RP_PROJECT="YourProjectKeyFromReportPortal"
export RP_API_TOKEN="your-api-token"
./reportportal-mcp-server
HTTP モードの例:
export MCP_MODE=http
export RP_HOST="https://your-reportportal-instance.com"
export MCP_SERVER_PORT=8080
./reportportal-mcp-server
# Tokens and project key are passed per-request via HTTP headers:
# Authorization: Bearer <token>
# X-Project: <projectKey>
HTTP API エンドポイント
HTTP モード(MCP_MODE=http)で実行すると、サーバーは次のエンドポイントを公開します。
MCP エンドポイント(ツール呼び出しおよび MCP プロトコル用)
POST /mcp- JSON-RPC リクエスト用のメイン MCP エンドポイントPOST /api/mcp- 代替 MCP エンドポイント(機能は同じ)GET /mcp- MCP プロトコル用の SSE(Server-Sent Events)ストリームエンドポイントGET /api/mcp- 代替 SSE ストリームエンドポイント
重要: POST リクエストはルートエンドポイント / ではなく、/mcp または /api/mcp に送信する必要があります。
リクエスト形式:
すべての MCP リクエストは、JSON-RPC 2.0 仕様に従う必要があります。
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_launches",
"arguments": {
"filter-cnt-name": "test",
"page": 1,
"page-size": 10
}
}
}
リクエストの例:
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-reportportal-token" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_launches",
"arguments": {
"page": 1,
"page-size": 10
}
}
}'
情報エンドポイント(GET のみ)
GET /- ルートエンドポイント。サーバー情報と利用可能なエンドポイントを返しますGET /health- ヘルスチェックエンドポイントGET /info- サーバー情報と設定GET /api/status- サーバーのステータス(/infoと同じ)GET /metrics- 分析メトリクス(分析が有効な場合)
注: ルートエンドポイント / は GET リクエストのみを受け付けます。/ への POST リクエストは 404 エラーを返します。MCP プロトコルのリクエストには /mcp または /api/mcp を使用してください。
サーバーの起動
サーバーは、MCP_MODE 環境変数で指定されたモード(デフォルト:stdio)で起動します。
起動すると、MCP サーバーは AI ツールからのクエリを受け付ける準備が整います。
開発
開発環境をセットアップする、またはプロジェクトに貢献するには、以下を実行してください。
Task ツール
Go Task v3 をインストールします。
go install github.com/go-task/task/v3/cmd/task@latest
依存関係
task deps を実行して Go の依存関係をインストールします。
task deps
ビルド
task build
テスト
task test
Docker を使用したビルド
task docker:build
MCP Inspector を使用したデバッグ
modelcontextprotocol/inspector ツールは、MCP サーバーをローカルでテストおよびデバッグする際に便利です。
npx @modelcontextprotocol/inspector docker run -i --rm -e "RP_API_TOKEN=$RP_API_TOKEN" -e "RP_PROJECT=$RP_PROJECT" -e "RP_HOST=$RP_HOST" reportportal-mcp-server
または、Task コマンドを使用できます。
# Run inspector against your local server
task inspector
コード品質
# Lint
task lint
# Format
task fmt
プロジェクトドキュメント
この README で説明している内容をさらに詳しく知りたい場合は、docs/ のドキュメントを参照してください。
- アーキテクチャと制限事項 — プロセス構成、リクエストのライフサイクル、パッケージ構成、および既知の設計上の制限や注意点。
- 開発およびスタイルガイド — 環境のセットアップ、コーディング規約、設定、検証、分析、テストに関する確立されたアプローチ。
- リリースのワークフロー — ブランチモデル、CI/CD パイプライン、公式リリースを公開する手順。
サーバーの拡張
新しいツールの追加
新しいツールを追加するには、適切なリソースファイルにメソッドを追加し、NewServer 関数でそのツールをサーバーに登録します。
// In your resource file (e.g., launches.go)
func (lr *LaunchResources) toolNewFeature() (tool mcp.Tool, handler server.ToolHandlerFunc) {
// Implement your tool
}
// In server.go
func NewServer(...) *server.MCPServer {
// ...
s.AddTool(launches.toolNewFeature())
// ...
}
新しいプロンプトの追加
新しいプロンプトを追加するには、プロンプトを記述した YAML ファイルを作成し、プロジェクトルートの prompts フォルダーに配置するだけです。サーバーは起動時に、このディレクトリからすべてのプロンプトを自動的に読み込んで初期化するため、コードの変更は必要ありません。
例:
promptsフォルダーにある既存のファイルを使用するか、my_custom_prompt.yamlなどの新しいファイルを作成します。- プロンプトのロジックとパラメーターを YAML 形式で定義します。
- サーバーを再ビルドして、新しいプロンプトを読み込みます。
この方法を使うと、コードベースを変更せずに、カスタムプロンプトでサーバーの機能をすばやく拡張できます。
セットアップの確認
1. ReportPortal にアクセスできることを確認する
MCP サーバーをテストする前に、ReportPortal のインスタンスにアクセスできることを確認してください。
ブラウザーを使用する場合:
- Web ブラウザーで ReportPortal の URL(
RP_HOST)を開きます - ReportPortal のログインページまたはダッシュボードが表示されることを確認します
- 認証情報を使ってログインできることを確認します
コマンドラインを使用する場合(curl):
# Test basic connectivity
curl -I https://your-reportportal-instance.com
# Test API access with your token
curl -H "Authorization: Bearer your-api-token" \
https://your-reportportal-instance.com/api/v1/YourProjectKey/launch
PowerShell を使用する場合:
# Test basic connectivity
Invoke-WebRequest -Uri "https://your-reportportal-instance.com" -Method Head
# Test API access
$headers = @{
"Authorization" = "Bearer your-api-token"
}
Invoke-RestMethod -Uri "https://your-reportportal-instance.com/api/v1/YourProjectKey/launch" -Headers $headers
期待される結果:
- HTTP 200 OK の応答
- 起動データを含む有効な JSON 応答(プロジェクトに起動データがある場合)
- 認証エラー(401)やアクセス拒否エラー(403)がないこと
2. リモート MCP サーバーを確認する(リモートデプロイを使用している場合)
リモート MCP サーバーに接続する場合は、アクセスできることを確認してください。
ブラウザー経由:
http://your-mcp-server-host:port/
サーバー情報と利用可能なエンドポイントが返されます。
curl 経由(GET リクエスト):
# Check server health
curl http://your-mcp-server-host:port/health
# Check server info
curl http://your-mcp-server-host:port/info
curl 経由(MCP プロトコルのテスト):
# Test MCP endpoint with JSON-RPC request
curl -X POST http://your-mcp-server-host:port/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-token" \
-H "X-Project: YourProjectKey" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}'
PowerShell 経由:
# Check server health
Invoke-RestMethod -Uri "http://your-mcp-server-host:port/health"
# Test MCP endpoint
$headers = @{
"Content-Type" = "application/json"
"Authorization" = "Bearer your-api-token"
"X-Project" = "YourProjectKey"
}
$body = @{
jsonrpc = "2.0"
method = "tools/list"
id = 1
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://your-mcp-server-host:port/mcp" -Method Post -Headers $headers -Body $body
ping 経由(ネットワーク接続のみ):
ping your-mcp-server-host
期待される結果:
- サーバーがヘルスチェックに応答する
/infoがサーバー設定を返す- MCP エンドポイントが利用可能なツールの一覧を返す
- 接続拒否やタイムアウトのエラーが発生しない
3. MCP サーバーの統合を確認する
設定後、AI アシスタントが MCP サーバーと通信できることを確認してください。
ステップ 1:利用可能なツールを確認する
AI アシスタントに次のように尋ねます。
"What ReportPortal tools are available?"
期待される応答:launch、test item、analysis tool、TMS tool など、37 個のツールの一覧。
ステップ 2:基本的なクエリをテストする
簡単なクエリを試します。
"List the 5 most recent test launches"
期待される応答:最近の launch について、名前、ステータス、タイムスタンプを含む整形された一覧。
ステップ 3:サーバーログを確認する
リクエストが処理されていることを確認するため、ログを監視します。
Docker:
# View logs
docker logs <container-name>
# Follow logs in real-time
docker logs -f <container-name>
# View last 50 lines
docker logs --tail 50 <container-name>
バイナリ(stdio モード): サーバーを実行しているターミナルの出力を確認します。各リクエストのログエントリが表示されます。
バイナリ(HTTP モード):
# If redirecting to file
./reportportal-mcp-server > server.log 2>&1
# Then view logs
tail -f server.log
期待されるログ出力:
INFO: MCP server started
INFO: Received request: tools/list
INFO: Processing tool call: get_launches
DEBUG: Calling ReportPortal API: /api/v1/projectKey/launch
4. よくある確認時の問題
| 問題 | 原因 | 解決策 |
|---|---|---|
| AI に ReportPortal のツールが表示されない | MCP サーバーに接続されていない | 設定ファイルの構文を確認し、AI アシスタントを再起動してください |
| 「Connection refused」エラー | サーバーが起動していないか、ポートが間違っている | サーバーが実行中であることを確認してください:docker ps を実行するか、プロセスを確認します |
| 「401 Unauthorized」 | API トークンが無効 | ReportPortal のプロフィールでトークンを再生成してください |
| 「403 Forbidden」 | トークンは有効だが、プロジェクトへのアクセス権がない | RP_PROJECT キーを確認してください(表示名ではなく、Project KEY と一致する必要があります)。ユーザーにアクセス権があることも確認してください |
| 「404 Not Found」 | エンドポイント URL が間違っている | リモート URL の末尾が /mcp/ になっていることを確認してください |
| クエリの結果が空 | ReportPortal にデータがない | データを登録するため、先にテストを実行してください |
| タイムアウトエラー | ネットワークの問題、または ReportPortal の応答が遅い | ネットワーク接続と ReportPortal のパフォーマンスを確認してください |
トラブルシューティング
接続の問題
問題:ReportPortal に接続できない
症状:
- 「Connection refused」エラー
- 「Could not resolve host」エラー
- タイムアウトエラー
解決策:
RP_HOSTが正しく、プロトコル(https://またはhttp://)を含んでいることを確認します- ネットワーク接続を確認します:
ping your-reportportal-host - ReportPortal が実行中で、アクセス可能であることを確認します
- ファイアウォールのルールで ReportPortal への接続が許可されていることを確認します
- HTTPS の場合は、SSL 証明書が有効であることを確認します
問題:リモート MCP サーバーに接続できない
症状:
- MCP サーバーで「Connection refused」
- 「No route to host」エラー
解決策:
- MCP サーバーが実行中であることを確認します:
curl http://host:port/healthで確認してください - サーバーで
MCP_MODE=httpが設定されていることを確認します - ポートが正しいことを確認します(デフォルト:8080)
- ファイアウォール/セキュリティグループでポートへのアクセスが許可されていることを確認します
- サーバーが正しいネットワークインターフェース(
MCP_SERVER_HOST)にバインドされていることを確認します
認証に関する問題
問題:401 Unauthorized エラー
解決方法:
- API トークンが正しく、有効期限が切れていないことを確認します
- ReportPortal でトークンを再生成します:Profile → API Keys → Generate New Token
- 環境変数または設定にトークンが正しく設定されていることを確認します
- リモートサーバーの場合、
Authorization: Bearer <token>ヘッダーが送信されていることを確認します - トークン値の前後に余分な空白や引用符がないことを確認します
問題:403 Forbidden エラー
解決方法:
- ユーザーが指定されたプロジェクトにアクセスできることを確認します
- プロジェクトキー(
RP_PROJECT)が完全に一致していることを確認します(大文字と小文字を区別します。表示名ではなく、Project Keyを指定する必要があります) - ユーザーロールに十分な権限があることを確認します
- リモートサーバーの場合、
X-Projectヘッダーが正しく設定されていることを確認します
Docker に関する問題
問題:Docker コンテナがすぐに終了する
解決方法:
- コンテナのログを確認します:
docker logs <container-name> - 必要な環境変数がすべて設定されていることを確認します
- 環境変数の値に構文エラーがないことを確認します
- Docker にネットワークへのアクセス権限があることを確認します
問題:「docker: command not found」
解決方法:
- 使用している OS 用の Docker Desktop をインストールします
- Docker が実行中であることを確認します:
docker --version - Linux の場合、ユーザーを docker グループに追加します:
sudo usermod -aG docker $USER
AI アシスタントとの統合に関する問題
問題:AI アシスタントが MCP サーバーを認識しない
解決方法:
- 設定ファイルの構文が有効な JSON であることを確認します
- 設定ファイルが正しい場所にあることを確認します
- 設定を変更した後、AI アシスタントを再起動します
- Cursor/VS Code の場合、MCP 拡張機能がインストールされ、有効になっていることを確認します
- AI アシスタントのログでエラーメッセージを確認します
問題:ツールの一覧が空
解決方法:
- MCP サーバーが実行中で、アクセス可能であることを確認します
- サーバーのログで起動時のエラーを確認します
- サーバーモードがクライアントの設定と一致していることを確認します(stdio と HTTP)
- リモートサーバーの場合、URL が
/mcp/で終わっていることを確認します
パフォーマンスに関する問題
問題:応答が遅い、またはタイムアウトする
解決方法:
- ReportPortal API のパフォーマンスを確認します(curl でテストします)
- クエリのページサイズ(
page-sizeパラメーター)を小さくします - フィルターを使用してデータ取得を制限します
- サーバーと ReportPortal 間のネットワーク遅延を確認します
- サーバーのリソース(CPU、メモリ)を監視します
問題:メモリ使用量が多い
解決方法:
- 同時リクエスト数を減らします
- ページネーションで結果セットのサイズを制限します
- MCP サーバーを定期的に再起動します
- ログでメモリリークがないか確認します
設定に関する問題
問題:「Environment variable not set」
解決方法:
- 変数名が正しいことを確認します:
RP_HOST、RP_PROJECT、RP_API_TOKEN - Docker の場合、
-eフラグが正しく指定されていることを確認します - バイナリの場合、同じシェルセッションで変数をエクスポートします
echo $VAR_NAME(Linux/Mac)または$env:VAR_NAME(PowerShell)を使用して確認します
問題:「Invalid JSON」設定エラー
解決方法:
- JSON バリデーターを使用して JSON 構文を検証します
- JSON オブジェクト内の末尾のカンマを削除します
- すべての文字列が正しく引用符で囲まれていることを確認します
- コメントがないことを確認します(JSON はコメントをサポートしていません)
- パスのエスケープ文字を確認します(Windows のパスでは
\\を使用します)
ヘルプの利用
引き続き問題が発生する場合:
- ログを確認:デバッグログを有効にし、詳細なエラーメッセージを確認します
- コンポーネントをテスト:各コンポーネントを個別に確認します(ReportPortal → MCP サーバー → AI アシスタント)
- GitHub の Issue:reportportal-mcp-server で検索するか、Issue を作成します
- ドキュメント:MCP 仕様と ReportPortal API ドキュメントを確認します
- コミュニティ:サポートを受けるには、ReportPortal コミュニティに参加します
ライセンス
このプロジェクトは、Apache 2.0 License に基づいてライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。