Claude Media
ClaudeにSmartBear MCPをつないでBugSnagとZephyrを操作する手順

ClaudeにSmartBear MCPをつないでBugSnagとZephyrを操作する手順

SmartBear MCPをClaudeにつなぐとき、リモート版とnpmのローカル版のどちらを選ぶかが最初の分かれ目です。BugSnagとZephyrの接続手順、認証の違い、書き込み系ツールの挙動をまとめます。

SmartBear MCPは、SmartBearのテスト・監視系プロダクトをAIアシスタントから呼べるようにするMCPサーバーです。リポジトリのREADMEが挙げる対象はBearQ、BugSnag、Reflect、Swagger、PactFlow、Pact Broker、QMetry、QTM4J、Zephyr、Collaboratorの10製品です。

Claudeにつなぐ前に決めることが1つあります。リモート版で使うか、npmのローカル版で使うかです。この選択で、認証の方法も、使える製品の範囲も変わります。

まず決める:リモート版かローカル版か

SmartBearが自社でホストするリモートMCPサーバーがあるのは、Swagger、BugSnag、Zephyrの3製品だけです。それ以外の製品は、ローカル版でしか使えません。

製品リモート版ローカル版(npm)
BugSnagリモート版ありローカル版(npm)あり
Swaggerリモート版ありローカル版(npm)あり
Zephyrリモート版ありローカル版(npm)あり
BearQ・Reflect・QMetry・QTM4J・PactFlow・Collaborator・Functional Testingリモート版なしローカル版(npm)あり

リモート版のURLは次の3つです。

  • BugSnag: https://bugsnag.mcp.smartbear.com/mcp
  • Zephyr: https://zephyr.mcp.smartbear.com/mcp
  • Swagger: https://swagger.mcp.smartbear.com/mcp

リモート版はNode.jsもAPIトークンも要りません。初回接続でブラウザが開き、OAuthでログインします。複数のリモートサーバーを同時に登録することもできます。

ローカル版はNode.js 22以上とnpmが前提で、製品ごとにAPIトークンや認証トークンを環境変数で渡します。1つのサーバーに全製品がまとまる代わりに、トークンの管理は自分の仕事になります。

迷ったら、使いたい製品がBugSnag・Zephyr・Swaggerだけならリモート版です。QMetryやPactFlowも触るならローカル版になります。

BugSnagをリモート版でつなぐ

エラー監視のBugSnagを使う場合の手順です。提供元のドキュメントは、サインインがSmartBear IDのOAuthだと説明しています。

Claude Codeに登録する

Claude Codeなら、コマンド1本で登録できます。

claude mcp add --transport http smartbear-bugsnag \
  https://bugsnag.mcp.smartbear.com/mcp

登録後にClaude Codeを起動して /mcp を開き、smartbear-bugsnag を選ぶとブラウザでログイン画面が開きます。ブラウザが開かない環境では、シェルから claude mcp login smartbear-bugsnag を実行する方法もあります。SSH接続のように手元にブラウザがない場合は --no-browser を付けると、認可用のURLが表示されます。

JSONのまま登録したいときはclaude mcp add-jsonの手順が使えます。

Claude Desktopに登録する

claude_desktop_config.json に次のように書きます。ドキュメントに載っている形です。

{
  "mcpServers": {
    "smartbear-bugsnag": {
      "transport": {
        "type": "http",
        "url": "https://bugsnag.mcp.smartbear.com/mcp"
      }
    }
  }
}

Connectorsの画面からカスタムコネクタとして追加する方法もあります。名前とURLを入れてログインを承認する流れは、ClaudeとSwaggerの連携記事に画面順で書いています。URLを差し替えるだけで同じです。

BugSnagで任せられる操作

BugSnagのツールは、エラーの調査、リリース、パフォーマンスの3系統に分かれます。ドキュメントに載っている主なものは次のとおりです。

ツール

BugSnagのツールの3系統

  • エラーを調べる

    プロジェクトの一覧、オープンなエラーの一覧、エラーの詳細、エラーごとのイベント一覧、イベント1件の詳細を取れます。ダッシュボードのURLを渡してイベント詳細を引くツールもあります。

  • リリースとビルドを見る

    リリースの一覧と詳細、ビルドの詳細を取れます。リリースの一覧には安定性スコアと対象の情報が含まれます。

  • パフォーマンスを見る

    スパングループ、スパン、トレースを引けます。p50からp99までの分布や、CPU・メモリ・フレームレート・HTTPエラー率で並べ替えられます。

読み取りだけではありません。エラーのステータスをOpen、Fixed、Ignored、Snoozed、Discarded、Undiscardedに変えるツールと、重大度の上書き、課題の紐づけ・解除をするツールがあります。ネットワークのエンドポイントをまとめるURLパターンを設定するツールもあります。

こう頼む

プロンプトの例を挙げます。ドキュメントの説明に沿った形で、実際の返答は環境のデータで変わります。

本番リリースの安定性スコアが低い順に5件出して。
いちばん低いリリースで多発しているオープンなエラーを、
直近7日のイベント数で並べて、スタックトレースの要点を教えて。

エラー一覧のフィルターは、7d や 24h のような相対指定と、ISO 8601のUTC形式の両方に対応します。期間を明示すると、取得するデータが絞られます。

ZephyrをリモートでつなぐのはAtlassian認証

テスト管理のZephyrは、リモート版でも認証の入口が違います。ドキュメントによると、ログインはSmartBear IDではなくAtlassianのOAuthです。ZephyrがJira上で動くためです。

Claude Codeでは、コールバックのポートを固定するオプションが付いています。

claude mcp add --transport http smartbear-zephyr \
  https://zephyr.mcp.smartbear.com/mcp --callback-port 8080

Claude Desktopでも、同じ8080をJSONに書きます。

{
  "mcpServers": {
    "smartbear-zephyr": {
      "transport": {
        "type": "http",
        "url": "https://zephyr.mcp.smartbear.com/mcp",
        "oauth": {
          "callbackPort": 8080
        }
      }
    }
  }
}

Claude Codeの公式ドキュメントでは、--callback-port は事前に登録されたリダイレクトURIに合わせるためのオプションとして説明されています。形式は http://localhost:PORT/callback です。ドキュメントにはBugSnagの設定にこのオプションがなく、Zephyrにだけ付いています。ログインが失敗したら、まずポート8080が別のプロセスに使われていないかを確かめてください。

使える対象プランに注意

Zephyrのドキュメントには、MCPクライアントを使えるのはZephyr StandardとAdvancedのプランだけで、Zephyr Essentialは対象外と書かれています。Essentialで接続しても使えない可能性があるため、先にプランを確認します。

Zephyrで任せられる操作

ツールは、プロジェクト、テストケース、テストステップとスクリプト、テストサイクル、テスト実行、テストプラン、フォルダー、ステータス・優先度・環境の一覧にまたがります。Jira課題とのリンク用ツールもあります。

  • Jira課題に紐づくテストケース、テストサイクル、テスト実行を引く
  • テストケースとテストサイクルを作る
  • テスト実行を作り、結果のステータスを入れる
  • フォルダーを作ってテストを整理する

作成・更新系のツールもあれば、リンクの削除に使うURLを返すツールもあります。Zephyrは結果をJiraの課題と結びつけて管理するので、課題のキーを渡して「この課題のテスト実行をまとめて」と頼むと意図が通りやすくなります。

書き込みの前に知っておく更新の挙動

ZephyrのドキュメントにはUpdate系ツールの注意点がまとまっています。会話で「ラベルを1つ足して」と頼むときに効いてきます。

  1. 更新は部分更新で、渡した項目だけが変わる
  2. 複数値を持つ項目(テストケースのラベルなど)は、渡すと以前の値を上書きする
  3. null を渡すと、その項目が空になる
  4. テスト実行とテスト実行ステップの更新は例外で、null や未指定の項目は無視される

2つ目が罠になります。ドキュメントは、ラベルを足したいときは「足したい」と明確に頼むよう案内しています。そうすればMCP側が現在のラベルを取得し、新しいラベルを加えた全体を渡して更新します。「ラベルをreleaseにして」とだけ頼むと、既存のラベルが消える側の解釈になりえます。

前と後

ラベルを足す頼み方

BEFORE

上書きされうる頼み方

「このテストケースのラベルを regression にして」

AFTER

既存を残す頼み方

「このテストケースの今のラベルを残したまま、regression を追加して」

BugSnag側の書き込みも同様に、エラーのステータス変更は対象のエラーIDを確認してから頼むのが無難です。Claudeが書き込みツールを呼ぶ前に確認を求める設定にしておくと、取り違えを防げます。

ローカル版を使う場合

BearQやQMetry、PactFlowを使うときや、リモート版を使えない環境では、npmパッケージ @smartbear/mcp をnpxで起動します。Claude Desktopの設定は次の形です(使う製品の行だけ残します)。

{
  "mcpServers": {
    "smartbear": {
      "command": "npx",
      "args": ["-y", "@smartbear/mcp@latest"],
      "env": {
        "BUGSNAG_AUTH_TOKEN": "your_personal_auth_token",
        "BUGSNAG_PROJECT_API_KEY": "your_project_api_key",
        "ZEPHYR_API_TOKEN": "your_zephyr_api_token"
      }
    }
  }
}

環境変数は、READMEでは製品を使わないなら省いてよいとされています。トークンの名前は製品ごとに決まっています。

製品必須の環境変数任意の環境変数
BugSnag必須の環境変数BUGSNAG_AUTH_TOKEN任意の環境変数BUGSNAG_PROJECT_API_KEY
Zephyr必須の環境変数ZEPHYR_API_TOKEN任意の環境変数ZEPHYR_BASE_URL
Swagger必須の環境変数SWAGGER_API_KEY任意の環境変数オンプレミス用のパス3種
QMetry必須の環境変数QMETRY_API_KEY任意の環境変数QMETRY_BASE_URL
PactFlow必須の環境変数PACT_BROKER_TOKEN と PACT_BROKER_BASE_URL任意の環境変数Pact Brokerはユーザー名とパスワード

BUGSNAG_PROJECT_API_KEY を設定すると、検索が1つのプロジェクトに絞られます。このときプロジェクト一覧のツールは使えなくなり、他のツールの projectId が省略可能になります。複数プロジェクトをまたいで調べたいなら、空のままにします。オンプレミスのBugSnagは BUGSNAG_ENDPOINT で接続先を変えます。

Zephyrの ZEPHYR_BASE_URL は、既定が https://api.zephyrscale.smartbear.com/v2 です。Jiraインスタンスのリージョンによって変える必要があります。

起動が遅いときは製品を絞る

ローカル版は既定で全製品を読み込むため、ウイルス対策ソフトが常駐している環境などでは initialize の応答が遅れ、クライアント側がタイムアウトすることがあります。ドキュメントの対処は、MCP_CLIENTS に使う製品だけをカンマ区切りで書くことです。

"env": {
  "MCP_CLIENTS": "BugSnag,Zephyr",
  "BUGSNAG_AUTH_TOKEN": "your_personal_auth_token",
  "ZEPHYR_API_TOKEN": "your_zephyr_api_token"
}

有効な名前はBearQ、BugSnag、Collaborator、Contract Testing、QMetry、QTM4J、Reflect、Swagger、Zephyrで、大文字小文字は区別されません。認識されない名前を書くと、その製品のツールは1つも読み込まれません。綴りを間違えるとツールが空になる点は覚えておくと切り分けが速くなります。

接続待ちのタイムアウトそのものは、Claude DesktopのNot ready after 60 secondsの対処も参考になります。

うまくつながらないとき

提供元のトラブルシューティングにある項目から、リモート・ローカルの両方で当たりやすいものを挙げます。

  • 認証の失敗: 環境変数の名前と、トークンの種類(Auth TokenかAPI Keyか)が製品ごとに違います。取り違えが原因になりやすい項目です
  • npxのキャッシュ: 古い依存がキャッシュに残ると起動に失敗することがあります。macOSとLinuxでは rm -rvf "${NPM_CONFIG_CACHE:-$HOME/.npm}/_npx" で消し、サーバーを入れ直します
  • VS CodeのOAuthエラー: Unknown or expired client_id; re-register via dynamic client registration と出たら、コマンドパレットの Authentication: Remove Dynamic Authentication Providers で該当のプロバイダーを消し、再起動してサインインし直します

登録しているのにサーバーが落ちたままのときは、Claude Codeの /mcp reconnect all も試せます。一括再接続の手順にまとめています。

Atlassianの認証でつなぐ別のMCPを使っているなら、Atlassian Rovo MCPの設定手順とログインの流れが似ています。ZephyrのテストをJira課題と結びつける場面では、両方をつなぐ構成も考えられます。

使いどころ:障害の調査からテスト結果の記録まで

BugSnagとZephyrを同じ会話でつなぐと、リリース前後の作業が1か所で回ります。

  1. BugSnagで直近リリースの新規エラーを引き、スタックトレースと影響範囲を確かめる
  2. 見つけた回帰を、Zephyrのテストケースとして作る(再現手順をステップに入れる)
  3. テストサイクルに追加して実行し、結果のステータスを記録する
  4. 修正後、BugSnagのエラーのステータスをFixedに変える

2と3は書き込みが発生します。ZephyrもBugSnagも、更新の前に対象の項目を読み返させてから実行する流れにしておくと、安全です。リリースのたびに同じ手順を回すなら、頼み方をCLAUDE.mdに書き残しておく方法もあります。

まとめ

SmartBear MCPをClaudeに入れる最初の判断は、リモート版かローカル版かです。BugSnag、Zephyr、Swaggerだけで足りるなら、URLを登録してブラウザでログインするリモート版が手軽です。BearQやQMetryなどが要るときだけ、トークンを環境変数で渡すローカル版に進みます。

Zephyrは認証がAtlassianで、Essentialプランは対象外という前提があります。更新ではラベルのような複数値の項目が上書きされる点に気をつけると、書き込みを安心して任せられます。

この記事を共有:XはてブLinkedIn