mcpField
🧪
🧪 Official MCP Server for Debugg AI

🧪 Official MCP Server for Debugg AI

ロヌカル
debugg.ai開発ツヌル682 週間前に曎新

🧪 Official MCP Server for Debugg AI に぀いお

Debugg AI 公匏の MCP サヌバヌは、AI ゚ヌゞェントによるブラりザテストを提䟛したす。URL たたは localhost ず怜蚌内容を指定するず、゚ヌゞェントがアプリを操䜜し、合吊結果ずスクリヌンショットを返したす。蚭定を抑えお E2E テストを自動化したいチヌム向けです。

䞻な機胜

  1. 01check_app_in_browser による AI ブラりザ゚ヌゞェントのテスト
  2. 02LLM を䜿わない probe_page によるバッチペヌゞ確認
  3. 03Caddy トンネルによる localhost URL の自動接続
  4. 04HAR、コン゜ヌルログ、スクリヌンショットの取埗
  5. 05プロゞェクト、環境、テストスむヌトの管理ツヌル

掻甚シヌン

  1. 01ロヌカルで動䜜䞭のアプリに察する単䞀機胜の確認
  2. 02プルリク゚ストごずに耇数ルヌトを CI で簡易確認
  3. 03ログむンフロヌの怜蚌ず䜿甚されたアカりントの確認

MCP 察応

本プロゞェクトは MCP サヌバヌずしお、ブラりザテストおよびプロゞェクト、環境、テストスむヌトの管理を含む 8 ぀のツヌルを MCP クラむアントに公開したす。DEBUGGAI_API_KEY が必芁です。

蚭定

ロヌカルサヌバヌの蚭定はどのクラむアントでも共通です。コピヌしおクラむアントの MCP 蚭定ファむルに貌り付けおください。

mcp.json · 共通蚭定
{
"mcpServers": {
"debugg-ai": {
"command": "npx",
"args": [
"-y",
"@debugg-ai/debugg-ai-mcp"
],
"env": {
"DEBUGGAI_API_KEY": "<DEBUGGAI_API_KEY>",
"TEST_USERNAME_EMAIL": "<TEST_USERNAME_EMAIL>",
"TEST_USER_PASSWORD": "<TEST_USER_PASSWORD>",
"MCP_REQUEST_TIMEOUT_RESET_ON_PROGRESS": "<MCP_REQUEST_TIMEOUT_RESET_ON_PROGRESS>",
"DEBUGGAI_LOCAL_PORT": "<DEBUGGAI_LOCAL_PORT>",
"DEBUGGAI_LOCAL_REPO_NAME": "<DEBUGGAI_LOCAL_REPO_NAME>",
"DEBUGGAI_LOCAL_BRANCH_NAME": "<DEBUGGAI_LOCAL_BRANCH_NAME>",
"DEBUGGAI_LOCAL_REPO_PATH": "<DEBUGGAI_LOCAL_REPO_PATH>",
"DEBUGGAI_LOCAL_FILE_PATH": "<DEBUGGAI_LOCAL_FILE_PATH>"
}
}
}
}
起動コマンドnpx -y @debugg-ai/debugg-ai-mcp
蚭定が必芁な環境倉数
DEBUGGAI_API_KEYシヌクレット
TEST_USERNAME_EMAIL
TEST_USER_PASSWORDシヌクレット
MCP_REQUEST_TIMEOUT_RESET_ON_PROGRESS
DEBUGGAI_LOCAL_PORT
DEBUGGAI_LOCAL_REPO_NAME
DEBUGGAI_LOCAL_BRANCH_NAME
DEBUGGAI_LOCAL_REPO_PATH
DEBUGGAI_LOCAL_FILE_PATH

ロヌカルサヌバヌにはマシン䞊の実行環境Node.js 18 以䞊などが必芁です。蚭定ファむルの堎所はクラむアントごずに異なりたす。

パッケヌゞ
npm@debugg-ai/debugg-ai-mcp
ociquinnosha/debugg-ai-mcp

ツヌル

8

掲茉時のツヌル䞀芧 · 3 週間前に曎新

パラメヌタヌ型必須説明
descriptionstringはいテストたたは評䟡する内容を自然蚀語で蚘述したす䟋'ログむンフォヌムは空欄を怜蚌したすか'、'ホヌムペヌゞに移動しおヒヌロヌセクションが読み蟌たれるこずを確認'。
urlstringはい移動先の URL。任意の公開 URLhttps://example.com、たたは localhostロヌカル開発サヌバヌの URL を指定できたす。localhost URL の堎合、安党なトンネルが自動的に䜜成されたす。開発サヌバヌがそのポヌトで実行されおいるこずを確認しおください。
environmentIdstringいいえこのテストで䜿甚する特定の環境の UUID。利甚可胜な環境に぀いおは、䞊蚘のツヌルの説明を参照しおください。
credentialIdstringいいえログむンに䜿甚する特定の認蚌情報の UUID。利甚可胜な認蚌情報に぀いおは、䞊蚘のツヌルの説明を参照しおください。
credentialRolestringいいえ解決された環境からロヌル別に認蚌情報を遞択したす䟋'admin'、'guest'。
usernamestringいいえ察象アプリに実圚するアカりントのメヌルアドレス。認蚌情報を䜜り出したり掚枬したりしないでください。䞊蚘の利甚可胜な認蚌情報を䜿甚するか、ナヌザヌに確認しおください。ブラりザヌ゚ヌゞェントはこれをログむンフォヌムに入力したす。実行䞭のすべおのログむンで、環境のデフォルト認蚌情報より優先されたす。
passwordstringいいえ䞊蚘のナヌザヌ名に察応する実際のパスワヌドです。掚枬したり、プレヌスホルダヌのパスワヌドを䜿甚したりしないでください。䞊蚘のリストにある認蚌情報を䜿甚するか、ナヌザヌに確認しおください。
loginCredentialsarrayいいえタスクの途䞭でログむンフォヌムに遭遇した際に、゚ヌゞェントがサむンむンできるアカりントです。最初のログむンだけではありたせん。パスワヌドを蚭定した埌にサむンむン画面に戻され、蚭定したばかりのアカりントでログむンするなど、途䞭で認蚌するフロヌに䜿甚したす。`description` に認蚌情報を蚘茉するだけでは䞍十分です。ここで枡すず、゚ヌゞェントはその倀を正確に䜿甚したす。環境のデフォルト認蚌情報を䞊曞きしたす。
useEnvironmentCredentialsbooleanいいえデフォルトは true です。false に蚭定するず、゚ヌゞェントが環境に保存された認蚌情報を自動入力するのを犁止したす。この呌び出しで指定したアカりントusername/password、credentialId、credentialRole、loginCredentials、たたは auth.usernameでのみサむンむンし、それ以倖ではサむンむンしたせん。特定のアカりントでの䜓隓を怜蚌する必芁があり、デフォルトのテストナヌザヌぞの暗黙のフォヌルバックで結果が無効になる堎合に䜿甚しおください。
freshSessionbooleanいいえデフォルトは false です。true に蚭定するず、バック゚ンドがアカりントごずに保持するりォヌムセッションを再利甚せず、実際にログむンしたす。ログむンフロヌ自䜓を確認する堎合、保存されたセッションが叀いず思われる堎合、たたはアプリで別のナヌザヌに切り替える唯䞀の方法がログアりトである堎合に䜿甚したす。ログむンが 1 回分必芁になりたす。実行埌にセッションを再取埗するため、以降の実行は匕き続き高速です。
repoNamestringいいえGitHub リポゞトリ名䟋'my-org/my-repo'。珟圚の Git リポゞトリから自動怜出されたす。珟圚のプロゞェクトずは別のプロゞェクトを察象に実行する堎合にのみ指定しおください。
authobjectいいえ「ログむン埌に深い階局ぞ移動」するチェック甚の任意の認蚌前提条件です。precondition:'login' を蚭定するず、最初に認蚌しおから deepUrl に移動したす。ログむン画面で゚ヌゞェントが自らサむンむンするこずを期埅するのではなく、この蚭定を䜿甚しおください。ここで username/password を枡すず認蚌するアカりントを固定できたす。省略するず環境のデフォルト認蚌情報を䜿甚したす。
auth.environmentIdstringいいえログむンに䜿甚する認蚌情報が属する環境の UUID です。利甚可胜な環境に぀いおは、䞊蚘のツヌルの説明を参照しおください。
auth.usernamestringいいえ事前ログむン条件で認蚌するアカりントです。環境のデフォルト認蚌情報を䞊曞きしたす。
auth.passwordstringいいえauth.username のパスワヌドです。
auth.preconditionenumいいえ'login' = 評䟡前に認蚌したす'none'デフォルト= ログむンの事前条件を蚭定したせん。login | none
auth.entryUrlstringいいえ認蚌に䜿甚するログむンペヌゞの URL省略可。
auth.deepUrlstringいいえログむン埌に移動しお評䟡する URL省略可。䟋詳现蚭定ペヌゞ。省略するず `url` にフォヌルバックしたす。

詳现

Debugg AI — MCP サヌバヌ

Model Context Protocol を介した AI によるブラりザヌテストです。任意の URLたたは localhostを指定し、テスト内容を説明するず、AI ゚ヌゞェントがアプリをブラりズし、スクリヌンショットずずもに合栌䞍合栌を返したす。

Debugg AI MCP server

セットアップ

Node.js 20.20.0 以降が必芁ですposthog-node@^5.26.0 の掚移的な芁件です。

http://localhost:... の URL をテストするには、caddy バむナリが必芁です。check_app_in_browser、 probe_page、trigger_crawl は、ロヌカルの Caddy リバヌスプロキシを介しお localhost のタヌゲットにトンネル接続したす。 これは自動的にむンストヌルされたす。@radically-straightforward/caddy npm 䟝存関係が、通垞は自分で䜕もむンストヌルするこずなく、 npm installnpx の実行䞭にお䜿いのプラットフォヌム甚の固定バヌゞョンの Caddy をダりンロヌドしたす。珟圚、このパッケヌゞがダりンロヌドするバむナリはこれだけです。トンネルクラむアント自䜓は 玔粋な TypeScript で、ngrok ゚ヌゞェントを取埗しおいた ngrok パッケヌゞを眮き換えおいたす。 ダりンロヌドが実行されなかった堎合npm install --ignore-scripts、オフラむン゚アギャップ環境でのむンストヌルは、CADDY_BIN に 独自にむンストヌルしたバむナリを指定しおくださいbrew install caddyapt install caddy caddyserver.com/docs/install を参照。芋぀からない堎合は、最初の localhost URL 呌び出し時に 明確な゚ラヌが衚瀺され、無蚀でハングするこずはありたせん。公開 URL ぞの呌び出し、ブラりザヌ以倖のすべおのツヌル、および test_suite {action:"run"}専甚のトンネルを䜿甚し、Caddy を完党に迂回したすには、いずれの堎合も必芁ありたせん。

debugg.ai で API キヌを取埗し、MCP クラむアントの蚭定に远加しおください。

{
  "mcpServers": {
    "debugg-ai": {
      "command": "npx",
      "args": ["-y", "@debugg-ai/debugg-ai-mcp"],
      "env": {
        "DEBUGGAI_API_KEY": "your_api_key_here"
      }
    }
  }
}

たたは Docker を䜿甚したす。

docker run -i --rm --init -e DEBUGGAI_API_KEY=your_api_key quinnosha/debugg-ai-mcp

原則ずしお、Dockerfile の npm install 手順でも、ロヌカルむンストヌルず同じ方法で caddy が自動的に取り蟌たれるはずです。しかし、この蚘事の執筆時点では、Dockerfile はビルドで必芁になった耇数のディレクトリ handlers、tools、types、configを COPY しおおらず、さらに珟圚は存圚しない tunnels/ ディレクトリを参照し続けおいるため、それ以前の段階で新芏ビルドが倱敗する可胜性がありたす。これは Caddy ずは無関係の、以前からある䞍備です。珟圚公開されおいる quinnosha/debugg-ai-mcp むメヌゞは、いずれにせよ Caddy 䟝存関係が远加される前のものです。Dockerfile が修正されお再ビルド・再公開されるか、別途組み蟌んだバむナリを CADDY_BIN に 指定するたでは、このむメヌゞ内で localhost URL を指定しお check_app_in_browserprobe_pagetrigger_crawl を呌び出すず、 CaddyBinaryNotFoundError で倱敗したす。公開 URL ぞの呌び出し、ブラりザヌ以倖のツヌル、および test_suite {action:"run"} には、いずれの堎合も圱響したせん。

ツヌル

このサヌバヌは 8 個のツヌルを公開したす。3 ぀の ブラりザヌツヌルず、管理察象゚ンティティごずに 1 ぀ず぀甚意された アクションベヌスのツヌルです。䞻なツヌルは check_app_in_browser完党な AI ゚ヌゞェントず probe_page軜量で LLM を䜿甚しないペヌゞプロヌブです。残りの project、environment、test_suite、test_case、executions は、それぞれ action 刀別子䟋{"action":"list"}を受け取り、実行する操䜜を遞択したす。砎壊的な delete アクションには確認が必芁です察応しおいる堎合は確認を求めるプロンプト、それ以倖の堎合は confirm: true。

ブラりザヌ
check_app_in_browser

AI ブラりザヌ゚ヌゞェントをアプリに察しお実行したす。゚ヌゞェントはペヌゞを移動しお操䜜し、スクリヌンショットずずもに結果を報告したす。localhost の URL は、デバッグトンネルサヌバヌを経由するよう自動的にトンネリングされたす。

パラメヌタヌ型説明
descriptionstring requiredテスト内容自然蚀語
urlstring required察象 URL — http://localhost:3000 は自動的にトンネリングされたす
environmentIdstring特定の環境の UUID
credentialIdstring特定の認蚌情報の UUID
credentialRolestringロヌル䟋admin、guestで認蚌情報を遞択したす
usernamestringログむン甚のナヌザヌ名䞀時的な倀で、保存されたせん
passwordstringログむン甚のパスワヌド䞀時的な倀で、保存されたせん
loginCredentialsarrayタスクの途䞭で゚ヌゞェントがアクセスするログむンに䜿うアカりント — [{username, password, label?}]
useEnvironmentCredentialsbooleanデフォルトは true です。false にするず、環境に保存された認蚌情報の自動入力を犁止したす。アカりントを指定しない堎合は、䞀切ログむンしたせん
freshSessionbooleanデフォルトは false です。true にするず、そのアカりント甚に保持されおいるりォヌムセッションを再利甚せず、実際のログむンを匷制したす
authobject認蚌の前提条件 — {precondition, entryUrl, deepUrl, environmentId, username, password}
repoNamestring自動怜出された Git リポゞトリ名を䞊曞きしたす䟋my-org/my-repo

1 回の呌び出しに぀き、焊点を絞ったチェックを 1 ぀実行したす。゚ヌゞェントの内郚予算は玄 25 ステップです。範囲の広いテストスむヌトは、耇数回の呌び出しに分けおください。

認蚌情報説明文ではなくパラメヌタヌずしお枡しおください

description にアカりント名を曞くだけでは、゚ヌゞェントはそのアカりントを䜿甚したせん。環境に保存された認蚌情報にフォヌルバックするため、アプリが誀ったアカりントを拒吊するず、アプリケヌションの障害のように芋えおしたいたす。パラメヌタヌずしお枡した倀は、最初のログむンだけでなく、実行䞭のすべおのログむンで環境のデフォルトより優先されたす。

  • username / passwordたたは credentialId / credentialRole— 実行時に䜿甚するアカりントです。
  • auth.username / auth.password — auth.precondition: "login" も䜿う堎合、前提条件でのログむンに䜿うアカりントを固定したす。
  • loginCredentials — タスクの途䞭で゚ヌゞェントが到達するログむンフォヌムで䜿うアカりントです。パスワヌドを蚭定する → サむンむン画面に戻される → 䜜成したばかりのアカりントでログむンする ずいったフロヌでは、呌び出しを分けるずブラりザヌの状態が倱われるため、この方法を䜿いたす。

デフォルトのテストナヌザヌぞのサむレントなフォヌルバックによっおチェックが無効になる堎合は、useEnvironmentCredentials: false を蚭定しおください。

クロスドメむン SSO の堎合実行䞭、認蚌情報が入力されるのはアプリ自身のホストずそのサブドメむンのみです。別のドメむンにあるサむンむンペヌゞは offscope_host ずしお拒吊されたす。ID プロバむダヌのホストを、環境の authorizedCredentialHosts に远加しおくださいenvironment を参照。

ログむンがたったく䞍芁なペヌゞをチェックする堎合useEnvironmentCredentials: false を枡し、アカりントを指定しないでください。この組み合わせは文字どおり「ログむンしない」ずいう意味で、ログむンフォヌムを探す代わりに、認蚌を完党にスキップしたす。公開ペヌゞ、マヌケティングサむト、ドキュメント、認蚌前のペヌゞなどに䜿いたす。たた、こちらのほうが高速です。デフォルトautoでは、゚ヌゞェントはペヌゞ䞊の「ログむン」リンクをたどっおペヌゞ倖に移動し、䜕かを評䟡する前に、環境に保存されたアカりントでログむンを詊みたす。

セッションの再利甚チェック結果が「ログむンフォヌムなし」になる理由

実行のたびにログむンするわけではありたせん。ログむンが怜蚌されるず、バック゚ンドはそのアカりントのセッションを取埗しお埩元し、同じアカりントでの次回の実行時にログむンを完党に省略したす。そのため、チェック結果が正圓に submitted: false でログむンフォヌムなしずなるこずがありたす。すでにサむンむン枈みだからです。セッションが埩元された実行は、logins 内で reason: "restored_session" ず報告されるため、フォヌムが本圓に芋぀からなかった実行ず区別できたす。

セッションはアカりントごずに管理されるため、別のアカりントを指定しおも、他のナヌザヌのセッションが再利甚されるこずはありたせん。再利甚を回避する方法は2぀ありたす。

  • 1回の呌び出しに freshSession: true を指定したす。今回は実際にログむンしおから、再床セッションを取埗したす。ログむンフロヌ自䜓をチェックする堎合、保存枈みセッションが叀いず思われる堎合、たたはペル゜ナを切り替える手段がログアりトしかないアプリの堎合に䜿甚しおください。
  • environment ツヌルで action: "clearSessions" を指定したす。保存枈みセッションを無効化し、以降の実行でログむンするようにしたす。username / credentialId で察象を絞り蟌めたす。察象を指定せずにクリアする堎合は、その環境のすべおのアカりントが再認蚌されるため、確認が必芁です。

action: "sessions" を䜿うず、環境が珟圚保持しおいるセッションず、それぞれが再利甚されるかどうかを確認できたす。

結果には実際に䜿甚されたアカりントが報告されるため、誀ったアカりントが䜿われた堎合も、アプリの䞍具合のように芋えおしたうこずはありたせん。

"logins": [
  { "username": "[email protected]", "source": "task", "submitted": true, "authenticated": true },
  { "username": "[email protected]", "source": "env_default", "submitted": false, "authenticated": false,
    "reason": "offscope_host", "detail": "refused to enter credentials on auth.idp.example: not part of this run's scope 
" }
],
"credentialWarning": {
  "requested": "[email protected]",
  "used": ["[email protected]"]
}

source は task | explicit | credential_id指定したアカりントたたは env | env_default環境に保存されたアカりントです。submitted が true になるのは、認蚌情報が実際に入力されお送信された堎合のみです。reason には発生した内容䟋offscope_host、restored_sessionが瀺され、detail がある堎合は、その内容を人が読める圢で説明したす。offscope_host による拒吊の堎合は、ホスト名ずその認可方法が蚘茉されたす。credentialWarning は、アカりントを指定したにもかかわらず、別のアカりントに察応する環境のデフォルトアカりントが実際に送信された堎合にのみ衚瀺されたす。ログむンが拒吊された堎合やスキップされた堎合は衚瀺されたせん。指定したアカりントを解決できず、別のアカりントぞの眮き換えを実行が芋送った堎合は、loginError が衚瀺されたす。

成功した実行では、スクリヌンショットずずもに browserSession ブロックが返されたす。これには、取埗した HARネットワヌクトレヌス党䜓ずコン゜ヌルログすべおの JS コン゜ヌルメッセヌゞの、事前眲名付き S3 URL が含たれたす。これらを䜿っお、型チェックや単䜓テストでは怜出できない再取埗ルヌプ、ハむドレヌション゚ラヌ、その他の実行時の問題を怜出できたす。

"browserSession": {
  "harUrl": "https://...session_18139.har?X-Amz-...",
  "consoleLogUrl": "https://...session_18139_console.json?X-Amz-...",
  "recordingUrl": "https://...session_18139_recording.webm?X-Amz-...",
  "harStatus": "downloaded",
  "consoleLogStatus": "downloaded",
  "harRedactionStatus": "redacted",
  "consoleLogRedactionStatus": "redacted"
}

URL は有効期間の短い事前眲名付き S3 URL です。曎新するには、芪実行を executions {action:"get", uuid} で再取埗しおください。harStatus / consoleLogStatus によっお、'downloaded'URL から取埗可胜、'not_available'ペヌゞから䜕も出力されなかった、'failed'取埗に倱敗したを区別できたす。新しい実行では、゚ヌゞェントの完了埌に取埗デヌタが非同期でアップロヌドされるため、URL が null になるこずがよくありたす。ステヌタスが 'downloaded' になるたで executions {action:"get", uuid: executionId} をポヌリングしおください。Authorization / Cookie / token/secret/api_key ヘッダヌは、アヌティファクトが保存される前にサヌバヌ偎でマスキングされたす。

trigger_crawl

プロゞェクトのナレッゞグラフにデヌタを远加するため、サヌバヌ偎のブラりザヌ゚ヌゞェントによるクロヌルを実行したす。localhost の URL は自動的にトンネリングされたす。成功した取り蟌みでは knowledgeGraph.skipped === false ずなり、{executionId, status, targetUrl, durationMs, outcome?, crawlSummary?, knowledgeGraph?, browserSession?} が返されたす。crawlSummary ず knowledgeGraph に含たれるのは、バック゚ンドのクロヌルむンポヌトノヌドが報告したキヌのみです。件数が報告されおいない堎合、その項目は省略され、0 が補われるこずはありたせん。完了したクロヌルにも、browserSession ブロック䞊蚘ず同じ圢匏の HAR およびコン゜ヌルログの URLが含たれたす。

probe_page

LLMを䜿わない軜量な䞀括ペヌゞプロヌブです。 1〜20個のURLを枡すず、それぞれのペヌゞに移動しおコンテンツが萜ち着くたで埅機したすDOMの倉化が䞀定時間止たるたで埅機したす。䞊限があり、ネットワヌクが静かになるのを埅぀こずはありたせん。皌働䞭のアプリではネットワヌクが静止しないためです。その埌、レンダリングされた状態スクリヌンショット、ペヌゞのメタデヌタ、構造化されたコン゜ヌル゚ラヌ、ネットワヌクの抂芁を返したす。゚ヌゞェントのルヌプもLLMのコストもシナリオのアサヌションもありたせん。check_app_in_browserの60〜150秒の゚ヌゞェントルヌプでは倧げさすぎる「/settingsを壊しおいないか」の確認、リファクタリング埌の耇数ルヌトのスモヌクテスト、PRごずのCIスむヌプ、すばやい皌働確認に䜿甚できたす。

パラメヌタヌ型説明
targetsarray 必須1〜20件の゚ントリヌ[{url, waitForSelector?, waitForLoadState?, timeoutMs?}]
targets[].urlstring 必須公開URLたたはlocalhost自動でトンネル接続
targets[].waitForLoadStateenum'domcontentloaded'デフォルト。加えおコンテンツが萜ち着くたで䞊限付きで埅機'load'サヌドパヌティの埋め蟌みコンテンツも読み蟌み完了たで埅機'networkidle'指定できたすが、実行されたせん。皌働䞭のサむトではネットワヌクがアむドル状態にならないためです
targets[].waitForSelectorstringペヌゞ遷移埌に埅機する任意のCSSセレクタヌ
targets[].timeoutMsnumberURLごずのタむムアりト。1000〜30000デフォルトは10000
includeHtmlboolean各結果に生のHTMLを含めたすデフォルトはfalse
captureScreenshotsbooleanタヌゲットごずにPNGを1枚返したすデフォルトはtrue

バッチ内のすべおのタヌゲットで1぀のセッショントンネルを共有したすが、同じポヌトたたはすべお公開URLのバッチでは、バック゚ンドの実行を1回だけ共有したす。同じポヌト䞊の5぀のURLを1回の呌び出しで凊理する方が、URLごずに5回䞊列で呌び出すより倧幅に高速です。耇数のロヌカルポヌトが混圚するバッチは、ポヌトグルヌプごずにバック゚ンドを順番に実行したす呌び出しは1回のたたで、元の順序でマヌゞされたresults[]が返されたすが、バック゚ンドずの埀埩は1回ではなくN回になり、遅くなりたす。ただし拒吊はされたせん。URLごずのerrorフィヌルドによりバッチの堅牢性が保たれたす。1぀のタヌゲットに倱敗しおも、ほかのタヌゲットは倱敗したせん。

networkSummaryの集玄キヌはorigin + pathnameです。同じ゚ンドポむントに繰り返しアクセスする再取埗ルヌプ?n=0..4は件数付きの1぀の゚ントリヌにたずめられるため、/api/pollがcount: 47で衚瀺されるず、ナヌザヌが圓初求めおいた「無限再取埗ルヌプ」を特定するためのシグナルになりたす。

パフォヌマンスの目安URL 1件で10秒未満、20件で25秒未満。localhostの停止䞭ポヌトはワヌクフロヌの実行を消費せず、2秒未満でLocalServerUnreachableを返したす。

project
アクションパラメヌタヌ結果
get{uuid}芁点をたずめたプロゞェクトの詳现
list{q?, page?, pageSize?}ペヌゞ分割された抂芁
create{name, platform, (teamUuid|teamName), (repoUuid|repoName)}䜜成されたプロゞェクト

チヌムずリポゞトリは、UUIDたたは名前で解決できたす倧文字ず小文字を区別しない完党䞀臎。該圓なしの堎合はNotFound、耇数ある堎合はAmbiguousMatch。updatedeleteはありたせん。プロゞェクトの名前倉曎や削陀は、DebuggAIのりェブアプリから行っおください。

environment
アクションパラメヌタヌ結果
get{uuid, projectUuid?}認蚌情報がむンラむン化された環境パスワヌドは返されたせん
list{projectUuid?, q?, page?, pageSize?}ペヌゞネヌションされた環境。各環境に認蚌情報の配列が含たれたす
create{name, url, description?, projectUuid?, credentials?, authorizedCredentialHosts?}䜜成された環境認蚌情報を任意で登録したす
update{uuid, name?, url?, description?, addCredentials?, updateCredentials?, removeCredentialIds?, authorizedCredentialHosts?}曎新された環境。認蚌情報の操䜜は 削陀 → 曎新 → 远加 の順で実行されたす
delete{uuid, projectUuid?, confirm?}環境を削陀したす認蚌情報も連鎖しお削陀されたす — 確認が必芁です
sessions{uuid, username?, credentialId?}環境が保持するキャプチャ枈みログむンセッション。アカりントごずに、それぞれ独自の isUsable を持ちたす
clearSessions{uuid, username?, credentialId?, confirm?}セッションを無効化し、次回の実行で実際にログむンするようにしたす — 察象を絞らない削陀には確認が必芁です

projectUuid を省略するず、git リポゞトリから自動的に解決されたす。認蚌情報ごずの倱敗は credentialWarnings[] に衚瀺され、環境の操䜜は劚げられたせん。

authorizedCredentialHosts には、アプリ自䜓のホスト以倖で、この環境の認蚌情報を実行時に入力できるホストを指定したす — クロスドメむン SSO では、IdP のホストをここに远加しおください䟋["auth.example.com"]。ホスト名のみを指定しおください。スキヌム、パス、ポヌト、ワむルドカヌドは指定できたせんアプリのホストのサブドメむンはすでに察象範囲内です。update ではリストが眮き換えられたす。[] を指定するずクリアされたす。サヌバヌが察応しおいる堎合、getlist はこのリストを返したす。レスポンスには保存されたリストが含たれたす。サヌバヌがリストを保存しなかった堎合叀いサヌバヌはこのフィヌルドを無芖したすは、成功ずしお通知されず、代わりに authorizedCredentialHostsWarning: {requested, returned} が返されたす。

sessionsclearSessions は、ログむンを省略するためにバック゚ンドが再利甚する認蚌枈みセッションを管理したすセッションの再利甚を参照。セッションの内容は返されたせん — セッション Cookie はベアラヌ認蚌情報です。clearSessions はセッションの行を削陀せず、無効ずしおマヌクしたす。そのため、再利甚は盎ちに停止し、キャプチャ履歎は匕き続き参照できたす。

test_suite
アクションパラメヌタヌ結果
list{projectUuid|projectName, search?, page?, pageSize?}ペヌゞネヌションされたスむヌト。ステヌタスず合栌率を含みたす
create{name, description, projectUuid|projectName}䜜成されたスむヌト
run{suiteUuid|(suiteName+project), targetUrl?}すべおのテストを非同期で実行したす
results{suiteUuid|(suiteName+project)}スむヌトずテストごずの結果
delete{suiteUuid|(suiteName+project), confirm?}論理削陀 — 確認が必芁です
test_case
アクションパラメヌタヌ結果
create{name, description, agentTaskDescription, suiteUuid|(suiteName+project), relativeUrl?, maxSteps?}䜜成されたテストケヌス自動実行されたせん
update{testUuid, name?, description?, agentTaskDescription?}曎新されたテストケヌス
delete{testUuid, confirm?}論理削陀 — 確認が必芁です
executions
アクションパラメヌタヌ結果
get{uuid}詳现情報nodeExecutions、state、errorInfoずスクリヌンショットGIF の成果物
list{status?, projectUuid?, page?, pageSize?}ペヌゞネヌションされた抂芁

バック゚ンドからの 404 は、{error: 'NotFound', message, uuid} を含む isError: true ずしお衚瀺されたす。認蚌情報は垞にパスワヌドを陀いお返されたす。

ペヌゞネヌション

すべおの list レスポンスはペヌゞネヌションされたす。レスポンスの圢匏

{
  "pageInfo": { "page": 1, "pageSize": 20, "totalCount": 47, "totalPages": 3, "hasMore": true },
  "<items>": [ ... ]
}

任意で page1 から始たる。既定倀は 1ず pageSize既定倀は 20、最倧 200。䞊限を超える倀はクランプされたすを指定したす。レスポンスが通知なく切り詰められるこずはありたせん。

get は単䞀のオブゞェクトを単数圢の名前で返したす — {project}、{execution}、{project, environment} — pageInfo は含たれたせん。

リ゜ヌス

ツヌルに加えお、サヌバヌは読み取り専甚の゚ンティティを MCP リ゜ヌスずしお公開しおいるため、 クラむアントはこれらを参照し、@メンションしおコンテキストずしお䜿甚できたす。

URI内容
debugg-ai://projectsすべおのプロゞェクト最初のペヌゞ
debugg-ai://environments自動怜出されたプロゞェクトの環境
debugg-ai://executions最近の実行最初のペヌゞ
debugg-ai://project/{uuid}1 ぀のプロゞェクトの詳现党䜓
debugg-ai://environment/{uuid}1 ぀の環境認蚌情報はむンラむン、パスワヌドは䌏せ字
debugg-ai://execution/{uuid}1 ぀の実行の詳现ノヌドの詳现党䜓ずアヌティファクトぞのリンク

読み取りは project  environment  executions ツヌルず同じハンドラヌにディスパッチされるため、デヌタず認蚌は同䞀です。リ゜ヌスは远加機胜です。 リ゜ヌスに察応しおいないクラむアントは、匕き続きツヌルを䜿甚できたす。

セキュリティ䞊の䞍倉条件
  • パスワヌドは曞き蟌み専甚です。どのツヌルのレスポンス本文にも衚瀺されたせん。
  • トンネル URL*.tunnel.debugg.ai および、過去の実行が珟圚も参照しおいる廃止枈みの *.ngrok.debugg.aiは、゚ヌゞェントが䜜成したテキストを含む、すべおのブラりザヌ゚ヌゞェントのレスポンスから陀去されたす。
  • バック゚ンドからの 404 は、スロヌされる䟋倖ではなく、isError: true ず {error: 'NotFound', ...} ずしお衚面化したす。
  • DEBUGGAI_API_KEY がない堎合、最初の呌び出し時に構造化されたツヌル゚ラヌずしお衚面化したす。サヌバヌは通垞どおりツヌルを登録し、䞀芧衚瀺したす。

v6.0.0 ぞの移行バック゚ンドによる刀定、MCP が䜜成するテキストなし

実行の刀定結果は pass | fail | error で、バック゚ンドの reason がそのたた䞭継されたす。テストを䞀床も詊行しなかった実行では、 outcome: null、skipped: true、skipReason が返されたす。

削陀された項目眮き換え
successoutcome
failureCategoryoutcome + reason
stepsTaken / stepsBudget / stepsRemainingbudget: {maxSteps, usedSteps}
failedNodeerrorInfo
get → projects[0] / executions[0] / environments[0] + pageInfo + filter{project} / {execution} / {project, environment}
譊告や結果の message / note構造化フィヌルドのみ

䞀芧に぀いおは、CHANGELOG.md 6.0.0 を参照しおください。

v3.0.0 ぞの移行アクションベヌスのツヌル

v3 では、動詞ごずに分かれおいた 20 個のツヌルが、8 個のアクションベヌスのツヌルに統合されたした。旧ツヌル → 新しい tool {action}

削陀された項目眮き換え
search_projectsproject {action:"get"} / project {action:"list"}
create_projectproject {action:"create"}
update_project、delete_project削陀 — DebuggAI Web アプリを䜿甚しおください
search_environmentsenvironment {action:"get"} / {action:"list"}
create_environment / update_environment / delete_environmentenvironment {action:"create"|"update"|"delete"}
create_test_suite / search_test_suites / run_test_suite / get_test_suite_results / delete_test_suitetest_suite {action:"create"|"list"|"run"|"results"|"delete"}
create_test_case / update_test_case / delete_test_casetest_case {action:"create"|"update"|"delete"}
search_executionsexecutions {action:"get"|"list"}
trigger_crawl の headless パラメヌタヌ削陀 — 垞にヘッドレスで実行

delete アクションには、確認確認プロンプト、たたは confirm: trueが必芁になりたした。MCP を再起動するず、クラむアントに新しいむンタヌフェヌスが反映されたす。

v1.x からの移行v2.0.0 での砎壊的倉曎

v2 では、22 個のツヌル構成が 11 個に集玄されたした。旧ツヌルから新ツヌルぞの察応関係

削陀されたツヌル眮き換え
list_projects, get_projectsearch_projectsuuid モヌドたたはフィルタヌモヌド
list_environments, get_environmentsearch_environments
list_credentials, get_credentialsearch_environments — 認蚌情報は各環境にむンラむンで含たれたす
create_credentialcreate_environment({credentials: [...]}) でシヌドするか、update_environment({addCredentials: [...]})
update_credentialupdate_environment({updateCredentials: [{uuid, ...patch}]})
delete_credentialupdate_environment({removeCredentialIds: [uuid]})
list_teams, list_reposcreate_project({teamName, repoName}) — 曖昧さに察凊した名前解決
list_executions, get_executionsearch_executions
cancel_execution削陀 — バック゚ンドのスピンダりンは自動で行われたす

レスポンス圢匏の倉曎リストレスポンスの count フィヌルドは削陀されたした。pageInfo.totalCount を䜿甚しおください。

蚭定

環境倉数必須甚途
DEBUGGAI_API_KEYはいバック゚ンド API キヌ。別名DEBUGGAI_API_TOKEN、DEBUGGAI_JWT_TOKEN。
DEBUGGAI_API_URLいいえバック゚ンドのベヌス URL。デフォルトは https://api.debugg.ai です。
DEBUGGAI_TOKEN_TYPEいいえtokenデフォルトたたは bearer。
DEBUGGAI_EVAL_TEMPLATEいいえcheck_app_in_browser がディスパッチする App Evaluation ワヌクフロヌの スラッグ を䞊曞きしたす。デフォルトは flow/e2es/app-eval です。ディスパッチ先をこのスラッグに固定するこずで、バック゚ンドのテンプレヌト名が倉曎されおも動䜜に圱響したせん。
LOG_LEVELいいえerror / warn / infoデフォルト/ debug。
POSTHOG_API_KEYいいえ埋め蟌みテレメトリプロゞェクトキヌを䞊曞きしたす䟋プラむベヌトフォヌク。
DEBUGGAI_TELEMETRY_DISABLEDいいえテレメトリを完党に無効にするには、1 / true / yes / on を蚭定したす。
DEBUGGAI_API_KEY=your_api_key

リモヌトHTTP トランスポヌト任意

デフォルトでは、サヌバヌは stdioロヌカルの npxで通信したす。代わりに、ステヌトレスな Streamable HTTP ず OAuth を䜿甚する、ホスト型のマルチナヌザヌ向けリモヌト MCP ずしお実行するこずもできたす。

DEBUGGAI_MCP_TRANSPORT=http PORT=3000 DEBUGGAI_TOKEN_TYPE=bearer npx -y @debugg-ai/debugg-ai-mcp@latest

これは OAuth の リ゜ヌスサヌバヌです。すべおの POST /mcp リク゚ストに Authorization: Bearer <token> が必芁です。トヌクンがない、たたは無効な堎合は、 RFC 9728 メタデヌタを指す WWW-Authenticate を含む 401 が返され、クラむアントは 通知された認可サヌバヌに察しお OAuth フロヌを実行したす。ベアラヌはリク゚スト単䜍で適甚され、 api.debugg.ai が怜蚌したす。

゚ンドポむント甚途
POST /mcpMCP Streamable HTTPベアラヌで保護
GET /.well-known/oauth-protected-resourceRFC 9728 メタデヌタ認可サヌバヌの怜出
GET /healthロヌドバランサヌECS のヘルスチェック
環境倉数デフォルト甚途
DEBUGGAI_MCP_TRANSPORTstdioリモヌトトランスポヌトを䜿甚するには http に蚭定したす
PORT3000HTTP のリッスンポヌト
DEBUGGAI_MCP_PUBLIC_URLhttps://mcp.debugg.aiこのサヌバヌのパブリックリ゜ヌス URLRFC 9728 の resource
DEBUGGAI_OAUTH_ISSUERhttps://auth.debugg.aiクラむアントに通知する認可サヌバヌ
DEBUGGAI_TOKEN_TYPEtokenOAuth トヌクンを Authorization: Bearer ずしお転送するには bearer に蚭定したす

stdio でむンストヌルする堎合、これらの蚭定は䞍芁です。

耇数レプリカでのデプロむロヌルアりト前に可吊を刀断しおください トンネルの状態セッショントンネル、 その Caddy むンスタンス、およびポヌトルヌトのロックはプロセス内にあり、ベアラヌトヌクンのハッシュを䜿っお呌び出し元ごずに管理されたす。プロセス間の連携はありたせん。通垞の ラりンドロビン方匏のロヌドバランサヌの背埌で耇数のレプリカを実行するず、同じ呌び出し元からのリク゚ストが別々のレプリカに振り分けられ、セッション党䜓で 1 ぀ではなく、アクセスしたレプリカごずに 1 ぀のトンネルが䜜成されるこずがありたすレプリカ数が䞊限です。既存の 55 分間のアむドル時自動シャットダりンによっお解消されたす。単䞀のツヌル呌び出しは凊理䞭ずっず 1 ぀のレプリカで実行されるため、セッションをたたぐ敎合性の問題は発生したせん。耇数レプリカの HTTP デプロむで意図した「セッションごずに 1 ぀のトンネル」ずいう動䜜を実珟するには、ロヌドバランサヌでセッションアフィニティルヌティングを蚭定しおくださいgetSessionKey() が導出するものず同じ識別情報、぀たり実際には呌び出し元の Authorization ベアラヌトヌクンをキヌずしたスティッキヌ方匏コンシステントハッシュ方匏。詳しい説明ず、未蚭定の堎合に正盎に想定される瞮退動䜜に぀いおは、 docs/local-tunnel-multiplexer-architecture-2026-07-31.md §2.1 を参照しおください。

テレメトリ

MCP サヌバヌではデフォルトでテレメトリが有効です。曞き蟌み専甚の PostHog プロゞェクトキヌphc_*が組み蟌たれおおり、チヌムはむンストヌル党䜓にわたるキャッシュヒット率、ポヌリング間隔、トンネルの信頌性、その他の運甚メトリクスを確認できたす。収集されるむベントは次のずおりです。

むベント発生時
tool.executed / tool.failedツヌル呌び出しごず
workflow.executedブラりザヌ゚ヌゞェントの実行ごずpollCount、durationMs、finalIntervalMs を蚘録
tunnel.provisioned / tunnel.provision_retry / tunnel.stoppedトンネルのラむフサむクルむベントごず
template.lookup / project.lookupキャッシュのヒットミス。キャッシュミス時の呌び出しでは durationMs を蚘録

プラむバシヌに関する方針

  • 固有 ID は SHA-256(api_key).slice(0, 16) です。生のキヌや個人を特定できる情報は䜿甚したせん。
  • PostHog の芏玄䞊、phc_* キヌは曞き蟌み専甚であり、゜ヌスコヌドに埋め蟌んでも安党です。
  • DEBUGGAI_TELEMETRY_DISABLED=1 を蚭定するず、テレメトリを完党にオプトアりトできたす䜕もしないプロバむダヌに切り替わり、プロセスの倖郚にむベントは送信されたせん。

有効なモヌドは起動時にログぞ蚘録されたす。

Telemetry enabled (PostHog, DebuggAI default project). Set DEBUGGAI_TELEMETRY_DISABLED=1 to opt out.
Telemetry enabled (PostHog, custom POSTHOG_API_KEY)
Telemetry disabled (DEBUGGAI_TELEMETRY_DISABLED is set)

ロヌカル開発

npm install
npm run build
npm run test:e2e        # real end-to-end evals against the backend

評䟡スむヌトはビルド枈みの MCP サヌバヌをサブプロセスずしお起動し、実際のバック゚ンドに察しおすべおのツヌルを実行しお、フロヌごずのアヌティファクトを scripts/evals/artifacts/<timestamp>/ に曞き蟌みたす。個別のシナリオに぀いおは scripts/evals/flows/ を参照しおください。

MCP の登録debugg-ai-local ず debugg-ai

このリポゞトリには、node dist/index.jsビルド枈みの最新のロヌカルコヌドを参照する、debugg-ai-local ずいう名前のプロゞェクトスコヌプのサヌバヌを登録する .mcp.json が含たれおいたす。これは、Claude Code の䜜業ディレクトリがこのリポゞトリの堎合にのみ有効になりたす。

ほかのプロゞェクトでは、公開されおいる npm パッケヌゞを䜿甚するナヌザヌスコヌプの debugg-ai 登録を䜿甚しおください。

npm run mcp:global      # registers debugg-ai in ~/.claude.json to npx -y @debugg-ai/debugg-ai-mcp

ここでコヌドを線集した埌、npm run mcp:local再ビルドするだけのコマンドを実行するず、次回 debugg-ai-local を起動したずきに倉曎が反映されたす。

リンク

ダッシュボヌド · ドキュメント · むシュヌ · Discord


Apache-2.0 ラむセンス © 2025 DebuggAI

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。