bugAgent

官方

將 bugAgent 連接到任何 M

你可以用 bugAgent MCP 做什麼?

  • 提交錯誤回報 — 以自然語言描述錯誤,bugAgent 會自動依類型和嚴重程度分類,然後儲存。
  • 提交功能需求 — 請你的助理提交功能需求,bugAgent 會自動將其分類為功能需求並標示嚴重程度。
  • 列出近期回報 — 請你的助理列出你最近的錯誤回報,例如透過 list_bug_reports。
  • 搜尋與篩選回報 — 查詢特定專案中的未解決重大錯誤,或依嚴重程度整理本週提交的所有回報。
  • 更新工單並留言 — 變更回報狀態、指派給自己,或在現有工單中新增留言。
  • 從你的用戶端連線 — 將託管的 Streamable HTTP 端點新增至 Claude Desktop、Claude Code、Codex、Cursor、VS Code,或透過 curl-example 連線。

文件

將 bug Agent 連接至任何相容 MCP 的 AI 用戶端。

直接從 AI 程式碼助理建立、分類及管理錯誤、功能請求等項目。無須切換情境,也不用複製貼上——只要描述問題,bug Agent 就會處理其餘事項。

外部 MCP 用戶端與 bug Agent 儀表板的 AI Assistant 是分開的。所有方案預設都會關閉儀表板助理,且必須明確啟用工作區;其 ai_assistant 閘門不會停用 MCP 或整合功能。MCP 驗證、範圍、工作區/專案權限及工具專屬權益仍然適用。

開始使用

bug Agent 執行託管的 MCP 伺服器,讓 AI 用戶端透過 Model Context Protocol 建立、查詢及管理錯誤報告、功能請求、增強項目等。用戶端會直接連線至託管的 Streamable HTTP 端點。

取得 API 金鑰

建立免費帳戶;新工作區擁有者會直接進入 API 金鑰設定。回訪使用者可從設定 → 開發人員 → API 金鑰產生金鑰。

設定 AI 用戶端

在用戶端的設定中將 bug Agent 新增為 MCP 伺服器(請參閱下方設定說明)。

開始回報錯誤

以自然語言描述錯誤,bug Agent 會自動分類、補充資訊並儲存。

# Create a bug report
"File a bug: Login button is unresponsive on iOS Safari.
Steps: tap login, nothing happens. Expected: navigate to
dashboard. Severity: high."

# bugAgent auto-classifies as UI bug, severity high

# File a feature request
"Feature request: Add dark mode toggle to the
settings page. Users have asked for this in surveys."

# Auto-classified as feature-request, severity medium

設定

專用錯誤擷取外掛程式

查看公開外掛程式原始碼與設定檢查清單。這是原始碼預覽;託管 OAuth 驗證及 OpenAI 目錄發布仍在等待處理。

專用端點 https://mcp.bugagent.com/mcp/capture 僅提供 capture_get_profile、capture_list_projects、capture_search_reports、capture_get_report 和 capture_create_report。不提供管理、刪除、留言或測試執行功能。OpenAI 目錄是否收錄,須經個別審查及發布。

使用 OAuth 連線。擷取權限僅限此端點,不能用於完整的 /mcp 端點。讀取需要 bugs:read;建立需要 bugs:write。仍支援工作區 API 金鑰,並以 reports:read 和 reports:write 限定於其工作區。

請先選取已授權的工作區和專案。搜尋及讀取報告需要明確的 workspace_id 和 project_id;結果會設有上限並採分頁呈現。搜尋結果只是可能相符的項目,並不保證沒有重複項目。

建立前,請確認目的地、標題、描述、類型及嚴重程度。將 approved: true 和穩定的 UUID request_id 與核准的內容一併傳送。只有在重試內容完全相同時,才重複使用相同的請求 ID;若內容有所變更,請求將遭拒。現有方案限制及已設定的 Jira 轉送仍然適用。

影像解讀或許有助於撰寫草稿,但此端點不會上傳附件。請開啟已建立的工單以附加私人證據。切勿在對話中貼上密碼、權杖或其他機密資訊。

建議:託管的 Streamable HTTP

直接連線至 https://mcp.bugagent.com/mcp。無須安裝任何項目,也不必在本機持續執行。將工作區 API 金鑰設為 bearer token:

{
  "mcpServers": {
    "bugagent": {
      "type": "http",
      "url": "https://mcp.bugagent.com/mcp",
      "headers": {
        "Authorization": "Bearer ba_live_YOUR_KEY_HERE"
      }
    }
  }
}

💡

將 ba_live_YOUR_KEY_HERE 替換為你從設定 → 開發人員取得的實際 API 金鑰。

選用的 stdio 橋接程式

只有在用戶端要求 stdio 且無法連線至遠端 HTTP 伺服器時,才使用已發布的橋接程式。使用 npx -y bugagent-mcp 按需執行:

{
  "mcpServers": {
    "bugagent": {
      "command": "npx",
      "args": ["-y", "bugagent-mcp"],
      "env": {
        "BUGAGENT_API_KEY": "ba_live_YOUR_KEY_HERE"
      }
    }
  }
}

連線至伺服器

在觸控裝置的儀表板中,點一下側邊欄標籤即可導覽。選項和還原是分開的控制項,也可透過鍵盤操作。側邊欄的顯示狀態不會授予或撤銷 MCP 權限。

bug Agent MCP 伺服器已透過 Streamable HTTP 傳輸在 https://mcp.bugagent.com/mcp 上線。可從下列八種用戶端中任選一種連線,挑選最符合你工作流程的用戶端。

如需精簡、可直接複製的設定、範圍金鑰指引及安全的入門提示,請使用公開的 MCP 快速入門。

🔑

請先取得 API 金鑰。 登入設定 → 開發人員,按一下 建立 API 金鑰,選取用戶端所需的範圍,然後複製金鑰值(開頭為 ba_live_)。金鑰只會顯示一次,請妥善保存。MCP 用戶端只會列出該金鑰範圍所授權的工具。下方的連線範例會使用此金鑰;需要互動式 OAuth/工作階段或付費方案權益的提示會另外標示。

選項 1 — MCP Inspector(網頁 UI,建議首次測試使用)

Anthropic 官方工具。它會啟動本機網頁 UI,讓你逐一點選工具、填入參數並查看回應。無須設定,也不需要 IDE。

macOS(Terminal)

npx @modelcontextprotocol/inspector

Windows(PowerShell 或 CMD)

npx @modelcontextprotocol/inspector

在開啟的瀏覽器 UI 中:

  1. 傳輸類型:選取 Streamable HTTP
  2. URL:https://mcp.bugagent.com/mcp
  3. 連線類型:選取 Proxy(預設值——Inspector 會透過本機 Node 程序代理,以避開瀏覽器 CORS 限制)
  4. 開啟 Server Settings → Custom Headers 並新增:
    • 標頭名稱:X-Api-Key
      • 值:ba_live_YOUR_KEY_HERE(不含 Bearer 前綴)
  5. 按一下 Connect。左側面板會列出 API 金鑰所選範圍允許使用的 bug Agent 工具。
  6. 按一下任一工具(例如 list_bug_reports),填入參數,再按一下 Run Tool。回應會顯示在右側。

先決條件:MCP Inspector v2 需要 Node.js 22.19 或更新版本。如果尚未安裝,請從 nodejs.org 安裝目前版本的 Node.js。

如果 Inspector 傳回 invalid_client,表示它正在嘗試使用已儲存的 OAuth 連線,而非 API 金鑰驗證。移除已儲存的伺服器(或清除其儲存的 OAuth 狀態),再重新新增,並使用上方的 X-Api-Key 自訂標頭。請勿將 ba_live_ 金鑰填入 OAuth 的 client_id 欄位。

選項 2 — Claude Desktop(Mac + Windows)

如果你使用 Claude Desktop 應用程式,可以將 bug Agent 新增為永久 MCP 伺服器。使用工作區 API 金鑰時,Claude 只會取得該金鑰範圍允許的工具。委派式 OAuth 則會提供完整的互動式工具目錄。

macOS

  1. 開啟 Claude Desktop → 選單列 Claude → Settings → Developer → Edit Config。這會開啟 ~/Library/Application Support/Claude/claude_desktop_config.json。
  2. 在 mcpServers 下方新增 bug Agent 項目:
    {
      "mcpServers": {
        "bugagent": {
          "type": "http",
          "url": "https://mcp.bugagent.com/mcp",
          "headers": {
            "Authorization": "Bearer ba_live_YOUR_KEY_HERE"
          }
        }
      }
    }
    
  3. 儲存檔案並完全結束 Claude Desktop(按 Cmd+Q,不只是關閉視窗)。
  4. 重新啟動 Claude Desktop。聊天輸入框底部的工具錘子圖示現在應會顯示 bug Agent 工具。
  5. 試著輸入:「列出我最近的 5 個錯誤報告」——Claude 會自動呼叫 list_bug_reports。

Windows

  1. 開啟 Claude Desktop → File → Settings → Developer → Edit Config。這會開啟 %APPDATA%\Claude\claude_desktop_config.json(通常是 C:\Users\YourName\AppData\Roaming\Claude\claude_desktop_config.json)。
  2. 新增 macOS 區段中顯示的相同 JSON 區塊。
  3. 儲存檔案,並從系統匣完全結束 Claude Desktop(在 Claude 圖示上按右鍵 → Quit),然後重新啟動。
  4. 工具錘子圖示會顯示 bug Agent 工具。

選項 3 — Claude Code(CLI)

如果你在終端機使用 Claude Code(Claude 的 CLI 版本),只需一個指令即可註冊 bug Agent 伺服器。在 macOS、Linux 和 Windows 上的操作方式相同。

claude mcp add --transport http bugagent https://mcp.bugagent.com/mcp \
  --header "Authorization: Bearer ba_live_YOUR_KEY_HERE"

接著重新啟動 Claude Code 工作階段。確認連線狀態:

claude mcp list

清單中應會出現 bugagent,旁邊有綠點。請先使用相容 API 金鑰的提示:「列出我最近的 5 個未結案錯誤報告。」

已連線,但缺少部分工具?

請查看 /mcp 中伺服器的工具數量,而不只是對話中已載入的工具。Claude Code 可透過工具搜尋按需探索工具。請要求它在 bugAgent 中搜尋 list_test_cases、list_test_suites 或 get_test_run_plan。請參閱 Claude Code 的工具搜尋文件。

工具目錄會依 API 金鑰範圍篩選。讀取測試案例需要 test_cases:read;讀取測試套件/執行結果需要 test_runs:read。只申請實際需要的寫入範圍。請使用與用戶端相同的端點和金鑰比較已驗證的 tools/list;匿名探索或使用不同金鑰都不是有效的比較方式。檢查是否有專案層級設定覆寫使用者層級連線,並在憑證變更後重新連線或重新啟動。

如果已驗證的伺服器目錄包含某項工具,但用戶端仍無法探索到它,請記錄用戶端版本、伺服器版本、工具名稱/數量及任何結構描述錯誤,並移除憑證和客戶資料。使用 ENABLE_TOOL_SEARCH=false claude 啟動的工作階段可協助判斷問題是延遲探索還是載入異常,但會載入所有工具定義並使用更多上下文;僅將其用作暫時診斷。請勿只為了增加工具數量而擴大權限或拆分端點。

之後若要移除:

claude mcp remove bugagent

選項 4 — OpenAI Codex CLI

如果你使用 OpenAI Codex CLI,請匯出 API 金鑰並將 bug Agent 新增至 ~/.codex/config.toml。

永久註冊(新增至設定)

[mcp_servers.bugagent]
url = "https://mcp.bugagent.com/mcp"
bearer_token_env_var = "BUGAGENT_API_KEY"

設定 API 金鑰

export BUGAGENT_API_KEY="ba_live_YOUR_KEY_HERE"

從該環境啟動或重新啟動 Codex。Codex 會根據自然語言提示自動解析工具呼叫。試試看:「列出依嚴重程度排序的未結案錯誤。」

選項 5 — Cursor(Mac + Windows)

Cursor 內建 MCP 支援。使用範圍設定適當的工作區 API 金鑰後,Cursor 內的 AI 助理便可建立錯誤、列出報告及執行支援的自動化工作流程,無須離開編輯器。安全性、效能及探索性掃描需要委派式 OAuth 和適用的方案權限。

  1. 開啟 Cursor → Settings(Mac 上按 Cmd+,/Windows 上按 Ctrl+,)→ 左側邊欄中的 MCP。
  2. 按一下 + Add new MCP server。
  3. 選取 HTTP 傳輸類型。
  4. 填入:
    • 名稱:bugagent
      • URL:https://mcp.bugagent.com/mcp
      • 標頭名稱:Authorization
      • 標頭值:Bearer ba_live_YOUR_KEY_HERE
  5. 按一下 Save。連線成功時,Cursor 會顯示綠色指示燈。
  6. 開啟 Cursor 聊天(Cmd+L/Ctrl+L)並輸入:「建立一份標題為『登入故障』、嚴重程度為高的錯誤報告。」 Cursor 會呼叫 create_bug_report。

替代方式:Cursor 也會讀取 ~/.cursor/mcp.json(Mac)或 %USERPROFILE%\.cursor\mcp.json(Windows)。請新增 Claude Desktop 區段中顯示的相同 JSON 格式。

選項 6 — 搭配 Continue 擴充功能的 VS Code(Mac + Windows)

如果你偏好使用 VS Code,Continue 擴充功能原生支援 MCP 伺服器。

  1. 從 VS Code Marketplace 安裝 Continue 擴充功能。
  2. 開啟 Continue 設定:命令選擇區(Cmd+Shift+P/Ctrl+Shift+P)→ Continue: Open config.json。檔案位於:
    • macOS:~/.continue/config.json
      • Windows:%USERPROFILE%\.continue\config.json
  3. 新增一個 mcpServers 項目:
    {
      "mcpServers": [
        {
          "name": "bugagent",
          "type": "streamable-http",
          "url": "https://mcp.bugagent.com/mcp",
          "requestOptions": {
            "headers": {
              "Authorization": "Bearer ba_live_YOUR_KEY_HERE"
            }
          }
        }
      ]
    }
    
  4. 儲存。Continue 會自動重新載入,並在側邊欄顯示 bug Agent 工具。
  5. 開啟 Continue 聊天面板並試著輸入:「列出我最近的 5 個未結案錯誤報告。」

其他支援 MCP 的 VS Code 擴充功能:Cline、Roo Code 和 Windsurf(分支版本)都採用類似的 JSON 設定模式,使用 mcpServers 金鑰和 HTTP 傳輸。

選項 7 — 支援 OAuth 的主機(以 Claude.ai 網頁版為例)

部分 MCP 主機透過 OAuth 2.0 驗證,並要求事先提供靜態的 client_id 和 client_secret,而非接受 bearer API 金鑰。請從 bug Agent 儀表板產生一組連接器憑證,並貼到主機的連接器表單中。這組憑證用於識別 MCP 用戶端;取得同意後,工具執行會使用已登入的使用者及其目前啟用的 bug Agent 工作區。以下操作說明以最常見的範例 Claude.ai 網頁應用程式為例。

i

受資源限制的 OAuth。 受保護資源識別碼為 https://mcp.bugagent.com/mcp。支援標準的主機會從 /.well-known/oauth-protected-resource/mcp 探索此識別碼,並將其作為 RFC 8707 的 resource 參數傳送。bug Agent 會核發不透明權杖,並將其綁定至該資源、OAuth 用戶端、已登入使用者及已授予的範圍;權杖無法重放至其他服務,也不能由其他用戶端兌換。

  1. 在 bug Agent 中:開啟 Settings → Developers → MCP Connectors。點選 Generate connector,輸入描述主機的名稱(例如 「Claude.ai (work)」),貼上 MCP 主機要求的重新導向 URI(Claude.ai 網頁應用程式使用 https://claude.ai/api/mcp/auth_callback;其他主機請查閱其連接器文件),並將驗證方法選為 Confidential。複製成功畫面上僅顯示一次的 client_id 和 client_secret。
  2. 在 MCP 主機的連接器/OAuth 設定中,貼上:
    • Server URL: https://mcp.bugagent.com/mcp
      • Client ID + Client Secret: 來自步驟 1
      • Authorization URL: https://mcp.bugagent.com/authorize
      • Token URL: https://mcp.bugagent.com/token
      • 要求時提供的 Protected resource / audience: https://mcp.bugagent.com/mcp 若使用 Claude.ai:前往 claude.ai/customize/connectors,然後點選 Add MCP connector。
  3. 儲存。主機會將你重新導向至 bug Agent 登入(使用 Google 或電子郵件/密碼,依你登入儀表板的方式而定)並核准同意,接著完成 OAuth 交握。
  4. 在同一個 Settings 頁面管理產生的連接器。只有建立者可以撤銷租戶連接器;工作區管理員無法撤銷其他成員的註冊。確認撤銷後,該註冊會從啟用清單中移除。名稱相同的個別註冊仍各自獨立:請比對其 Client ID。若無法確認撤銷,頁面會顯示錯誤,而非成功訊息。撤銷會阻止新的連接器驗證。先前核發的存取權杖可能會在到期前繼續有效。

注意: Claude Code、Cursor、VS Code 和 MCP Inspector 不需要此流程 — 它們會自動處理動態用戶端註冊(RFC 7591),並如上所示透過 API 金鑰進行驗證。MCP Connectors 表單僅供需要靜態 OAuth 憑證的主機使用。

OAuth 存取權杖和重新整理權杖只會顯示給主機。這些權杖是不透明的,重新整理時會輪替;bug Agent 僅以單向雜湊形式儲存它們;上游身分識別重新整理憑證則會以靜態加密方式儲存。切勿將 OAuth 權杖複製到 REST API 請求或其他 MCP 伺服器中。

選項 8 — 使用 curl 直接透過 HTTP 連線(終端機)

若要在不使用任何用戶端的情況下直接測試伺服器,或將其整合至指令碼中,可以使用 curl 呼叫 HTTP 端點。MCP 通訊協定是透過 Streamable HTTP 傳輸的 JSON-RPC 2.0。

macOS / Linux

# Set your API key as a variable
export BUGAGENT_API_KEY="ba_live_YOUR_KEY_HERE"

# 1. Initialize the MCP connection
curl -N -s https://mcp.bugagent.com/mcp \
  -H "Authorization: Bearer $BUGAGENT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl-example","version":"1.0.0"}}}'

# 2. List tools visible to this key
curl -N -s https://mcp.bugagent.com/mcp \
  -H "Authorization: Bearer $BUGAGENT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

# 3. Call a tool — list 5 reports from a specific project
curl -N -s https://mcp.bugagent.com/mcp \
  -H "Authorization: Bearer $BUGAGENT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc":"2.0",
    "id":3,
    "method":"tools/call",
    "params":{
      "name":"list_bug_reports",
      "arguments":{"project":"bugagent","limit":5}
    }
  }'

Windows (PowerShell)

# Set your API key
$env:BUGAGENT_API_KEY = "ba_live_YOUR_KEY_HERE"

# Use Invoke-RestMethod (PowerShell's curl equivalent)
$headers = @{
  "Authorization" = "Bearer $env:BUGAGENT_API_KEY"
  "Content-Type" = "application/json"
  "Accept" = "application/json, text/event-stream"
}

# 1. Initialize
$body = '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"powershell-example","version":"1.0.0"}}}'
Invoke-RestMethod -Uri "https://mcp.bugagent.com/mcp" \`
  -Method Post -Headers $headers -Body $body

# 2. List tools visible to this key
$body = '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
Invoke-RestMethod -Uri "https://mcp.bugagent.com/mcp" \`
  -Method Post -Headers $headers -Body $body

# 3. Call list_bug_reports for a specific project
$body = @{
  jsonrpc = "2.0"
  id = 3
  method = "tools/call"
  params = @{
    name = "list_bug_reports"
    arguments = @{ project = "bugagent"; limit = 5 }
  }
} | ConvertTo-Json -Depth 5

Invoke-RestMethod -Uri "https://mcp.bugagent.com/mcp" \`
  -Method Post -Headers $headers -Body $body

回應可能是 JSON 或 Server-Sent Events。每個 SSE 區塊都是以 data: 為前綴、後接 JSON 物件的一行。符合標準的用戶端應傳送 Accept: application/json, text/event-stream;bug Agent 目前會為了相容性,正規化缺少或不完整的 Accept 值。

ℹ️

疑難排解 401 Unauthorized: 請確認你的 API 金鑰未在 Settings → Developers 中遭撤銷。金鑰以 ba_live_ 開頭。若仍無法解決,請重新產生金鑰並重試。

存取模型與最小權限範圍

完整的 OAuth 工具目錄包含 141 個工具。工作區 API 金鑰只能看到對應至其所選範圍的工具。未經驗證的探索可能會顯示工具中繼資料,但 tools/call 一律需要 API 金鑰或 OAuth 權杖。

讀取錯誤報告並解析專案 reports:read

建立及更新錯誤報告 reports:read, reports:write

使用量監控 usage:read

檢查 Jira 同步狀態 jira:read

同步或合併 Jira 報告 jira:write

撰寫網頁自動化 automations:write

執行網頁自動化並讀取執行記錄 automations:run

檢視行動資產與執行記錄 mobile:read

管理行動資產 mobile:read, mobile:write

執行行動自動化 mobile:read, mobile:run

管理測試目錄 reports:read, test_cases:read, test_cases:write

外部測試執行工作者 test_runs:read, test_runs:write

API 金鑰會綁定至建立它的工作區。工具輸入可以將呼叫範圍縮小至已授權的專案,但無法將金鑰切換至其他工作區。使用 list_projects 解析專案 UUID,並拒絕有歧義的名稱。

工具標題與註解

tools/list 傳回的每個工具都包含易讀的標題,以及讀取/寫入提示。缺少的讀取提示來自明確審核過的清單,而非工具名稱前綴或 API 金鑰範圍。明確註解(包括 false)會予以保留。

  • readOnlyHint: true 表示工具不會修改其環境。
  • readOnlyHint: false 搭配 destructiveHint: false 表示新增式寫入,而非唯讀操作。
  • readOnlyHint: false 搭配 destructiveHint: true 表示可能具破壞性的寫入。未分類的工具會採用這些保守預設值。破壞性提示僅適用於寫入操作。

login 並非唯讀:在 stdio 模式下,它會儲存憑證。analyze_fix_area 和 check_config_drift 可能會造成破壞性寫入,因為它們會取代已儲存的分析結果或設定基準。

註解不會授予存取權,也不會取代驗證、工作區/專案授權、API 金鑰範圍或權益檢查。是否顯示確認提示取決於用戶端的權限政策和使用者設定;這些提示不保證呼叫時一定會出現確認提示。

若要以程式方式探索及稽核,請下載產生的 mcp-tool-index.json。其中記錄了全部 141 個執行階段工具、API 金鑰範圍或僅限 OAuth 的存取權、權益類別、輸入名稱、輸出結構描述模式,以及明確宣告的 MCP 註解。null 註解表示呼叫位置未宣告該註解;套用預設值後,請使用已連線伺服器的 tools/list 回應取得有效註解。

!

僅限 OAuth 的工具: 帳戶、API 金鑰與團隊管理、Jira 連線管理、其他整合、進階測試控制、筆記、時間追蹤及其他互動式操作,不會因新增 API 金鑰範圍而解鎖。Jira 報告檢查、同步及合併工具是透過 jira:read 和 jira:write 提供的有限例外。

試用 — 自然語言提示

連線後,你不需要知道工具名稱或參數。只要用自然語言描述需求,AI 助理就會自動呼叫正確的 bug Agent 工具。

錯誤報告、具範圍限制的測試管理、Playwright 自動化、行動自動化及使用量提示,適用於具有相符範圍的 API 金鑰。安全性、效能、探索式測試、帳戶、團隊、筆記、時間追蹤,以及其他未列出 API 金鑰範圍的項目,則需要委派 OAuth 和任何適用的方案權益。

錯誤報告

List my 5 most recent bug reports
Show all open critical bugs in the Auth project
Create a bug titled "Login broken on Safari" with severity s2
Update TEST-451 status to in-progress and assign it to me
Add a comment to TEST-451: "root cause confirmed — null check missing in auth middleware"
Show me everything filed this week, grouped by severity

測試管理

Create a test suite called "Smoke Tests" with cases for login, checkout, and account settings
Run the Regression suite and list all failures
Use Hermes to execute the curated "Checkout smoke" suite and report every result to bugAgent
Show failing test cases from the last 7 days
Which test cases have never been run in the past 90 days?
Get a pass-rate trend for this month vs last month

安全性與效能

Run a security scan on https://app.example.com
Get this month's security scan results — show only high and critical findings
Create a performance test for the landing page and check Lighthouse scores
What are the Core Web Vitals for our checkout flow?

Playwright 自動化

Create a Playwright script that logs in and verifies the dashboard loads
Run the checkout automation on iPhone 15 Pro on a real device
Optimize the login automation script
Show runs for the checkout automation — any failures?
Schedule the smoke test suite to run every weekday at 6 AM UTC

探索式 AI

Run an exploratory AI session on https://app.example.com with 5 parallel agents
Get the latest exploration run results — list any bugs that were filed
What testing strategies did the agents use and which found the most issues?

使用量與統計資料

Check my plan usage for this month
Show team bug stats for this week broken down by severity and type
List all team members and their roles
How many security scans do I have left this month?

快速參考

八種連線選項的設定參考。API 金鑰用戶端透過 Streamable HTTP,使用標頭 Authorization: Bearer ba_live_YOUR_KEY_HERE 連線至 https://mcp.bugagent.com/mcp;支援 OAuth 的主機則使用在儀表板中產生的連接器憑證。

Claude Desktop — macOS ~/Library/Application Support/Claude/claude_desktop_config.json

Claude Desktop — Windows %APPDATA%\Claude\claude_desktop_config.json

Claude Code (CLI) claude mcp add --transport http bugagent https://mcp.bugagent.com/mcp --header "Authorization: Bearer ba_live_..."

Codex CLI ~/.codex/config.toml

Cursor — macOS Settings → MCP UI,或 ~/.cursor/mcp.json

Cursor — Windows %USERPROFILE%\.cursor\mcp.json

VS Code + Continue ~/.continue/config.json (macOS) / %USERPROFILE%\.continue\config.json (Windows)

支援 OAuth 的主機 Settings → Developers → MCP Connectors — 產生主機的 client_id 和 client_secret

直接透過 HTTP (curl) 連線 curl / Invoke-RestMethod — 請包含 Accept: application/json, text/event-stream

疑難排解

401 Unauthorized 金鑰錯誤、已過期或遭撤銷。請查看 Settings → Developers — 金鑰以 ba_live_ 開頭。必要時請重新產生。

用戶端未顯示工具 API 金鑰用戶端只會列出金鑰所選範圍允許的工具。請在 Settings → Developers 中檢查金鑰,然後在變更設定後完全結束並重新啟動用戶端。在 Claude Desktop 中,請按 Cmd+Q(而非只關閉視窗)。在 Cursor 中,請前往 Settings → MCP,確認是否顯示綠點。

用戶端缺少欄位 比對用戶端的結構描述與相同端點的原始 tools/list。若兩者不同,請重新整理或重新連線工具目錄,並開始新的聊天。若問題仍存在,請收集端點、用戶端版本及原始 tools/list 回應;快取過期只是可能原因之一。

Accept header required 請為符合標準的 Streamable HTTP 傳送 Accept: application/json, text/event-stream。bug Agent 目前會正規化缺少或不完整的值,但整合不應依賴此相容性行為。

工作區資料錯誤 每個 API 金鑰都限定於單一工作區。請從你要查詢的工作區,在 Settings → Developers 中產生新金鑰。

工具有顯示,但呼叫無回應 請檢查回應中的 isError: true 和傳回內容。工具雖然可見,仍可能因方案、角色、功能權益、專案成員資格、擁有權或輸入無效而遭拒。請先讀取工具錯誤,再檢查伺服器健康狀態。

MCP Inspector CORS 錯誤 在 Inspector UI 的 Connection Type 中選擇 Proxy(而非 Direct)。Inspector 會透過本機 Node 程序進行代理,以避開瀏覽器的 CORS 限制。

MCP Inspector v2 以代碼 5 結束 當工具回應包含 isError: true 時,Inspector v2 會傳回非零結束代碼。請閱讀回應訊息,確認是否為方案、權限、輸入或執行階段錯誤;相同的工具回應失敗時,Inspector v1 可能會傳回結束代碼 0。

Codex CLI — 無法辨識工具 請確認 ~/.codex/config.toml 使用 [mcp_servers.bugagent]、設定 bearer_token_env_var = "BUGAGENT_API_KEY",並在啟動 Codex 前匯出該變數。若工具仍未顯示,請檢查 codex --version。

MCP 功能

對話式工作階段仍是受工作區限制的試行功能。若要儲存由工作階段產生的指令碼,必須由其擁有者透過 僅限工作階段的儲存指令碼端點 明確在 Workbench 中核准。沒有 MCP 核准工具:要求代理程式草擬指令碼,不會建立或排程自動化。

保留雲端瀏覽器螢幕截圖只會透過擁有者工作階段保留端點建立發現項目草稿。即時重新整理不會取代所選螢幕截圖;儲存仍需要目前的擁有者存取權、原始授權的瀏覽器世代,以及可用的來源。擁有者必須先在 Workbench 中審閱並核准,才能提交錯誤及其私人證據。沒有 MCP 工具可用於保留影格或略過該核准程序。

啟動瀏覽器的同意權也僅限儀表板擁有者。API 金鑰、MCP 工具和一般聊天回答都無法授予此權限。核准範圍僅涵蓋一個唯讀瀏覽器和私人螢幕截圖擷取,不包括登入、表單操作或會議錄影。正式環境的雲端瀏覽器主機不會因這些同意控制而啟用。

完整的互動式/OAuth 目錄包含 141 個工具。工作區 API 金鑰只能探索其所選範圍允許的最小權限子集;帳戶、API 金鑰管理、團隊管理、進階測試、筆記和時間追蹤工具僅供互動式工作階段使用,除非項目明確列出 API 金鑰範圍。

🐛

錯誤報告管理

錯誤報告更新會以原子方式記錄實際的 Before/After 值,包括重現欄位、內部備註和標籤。未變更的值和失敗的寫入不會建立欄位歷程記錄。儀表板的 Change Log 會展開純文字差異,並分頁顯示較舊的項目。附件歷程記錄會保留描述性中繼資料,不包含簽署 URL 或已刪除的檔案。缺少的歷史值不會回填。此處不會新增 MCP 歷程記錄工具或即時編輯衝突協定;已授權的用戶端可使用錯誤報告歷程記錄 REST 端點。 update_bug_report 也接受字串欄位 steps_to_reproduce、expected_result 和 actual_result。省略的欄位會保留;空字串會清除文字。更新仍遵循現有的工作區/專案授權和 reports:write 範圍要求。

可續傳的 Google Sheets 螢幕截圖匯入使用獨立的 REST POST /api/reports/import-attachment 端點搭配 reports:write,並使用 reports:read 取得狀態。不會新增螢幕截圖匯入 MCP 工具。此僅支援 JPEG/PNG 的 API 會驗證私人儲存空間和完全相符的對應 Jira 議題,然後才回報完成;舊版報告上傳仍僅限工作階段使用。

開啟私人報告和測試執行附件連結時,會重新檢查有效的工作區成員資格和目前的專案權限。下載測試執行內容需要儀表板工作階段,而非 MCP API 金鑰。先前發出的儲存連結可能會在最多 60 秒內保持有效,且不應分享。

  • create_bug_report — 建立新報告,並在 19 種類型中自動分類 — 包括錯誤、功能需求、增強功能、技術債務等(標題:3-500 個字元)。選用的 attachments 陣列可接受每個最大 400 MB 的 Base64 編碼檔案:任何圖片、影片、音訊、PDF 或文字/JSON。將 format_description: true 設為自動使用 AI 將描述重新整理為結構化範本。傳入 time_spent_seconds 以追蹤 QA 工作量。傳入 priority(urgent / high / normal / low),即可獨立於嚴重程度設定修正急迫性。傳入 is_epic: true 以建立 Epic,或傳入 parent_epic_id(UUID/短 ID)以在同一個已授權專案中建立子項。回應包含階層欄位,以及 project_id、project、short_id、legacy_short_id 和 project_short_id。
  • list_bug_reports — 列出並篩選報告(每頁最多 100 筆)。專案篩選會在伺服器端於分頁前套用。可依 project(UUID、slug、完全相符的名稱或工單前綴)、project_id、project_slug、project_prefix、workspace(UUID、完全相符的名稱或工作區工單前綴)、workspace_id / team_id、is_epic、type、severity、status、resolution、root_cause 或 reporter_user_id 篩選。search 篩選器會搜尋報告文字;僅含數字的輸入,例如 366,會精確比對舊版和專案工單編號,因此會排除包含這些數字但無關的文字。每筆結果都包含租戶範圍內的人員/專案識別碼,以及 is_epic、parent_epic_id、parent_epic 和有界限的 epic_progress。報告讀取工具不會公開成員的電子郵件地址。
  • pick_next_bug — 依優先順序傳回代理程式迴圈接下來應處理的錯誤(S1 → S2 → S3,各級別內由舊至新)。自動限定於你的工作區 — 傳回團隊所有專案中狀態為 status、new、awaiting-triage 或 confirmed 且嚴重程度為 S1-S3 的工單。唯讀 — 不會以原子方式認領工單。選用的 severity(單一級別)、limit(1-50,預設為 1)。傳回包含 count 和 bugs 的物件;每個錯誤都是精簡的佇列資料列,而非完整的 list_bug_reports 結構。搭配 claim_bug 使用,以採用先讀取再認領的模式。
  • claim_bug — 以原子方式將錯誤從 status、new、awaiting-triage 或 confirmed 轉換為 status='in-progress',將 assigned_to 設為呼叫者,並記錄 claimed_at=NOW()。透過 Postgres 的 UPDATE-WHERE-RETURNING 模式避免競爭條件 — 若兩個代理程式在短時間內對同一個 ID 呼叫 claim_bug,恰好一個會取得包含錯誤本文的 claimed:true,另一個則會取得包含原因字串的 claimed:false。成功回應包含 reporter_user_id、reporter_name、assigned_to 和 assignee_name。pg_cron 清理程序會自動將過期認領(狀態= in-progress 且 claimed_at 超過 30 分鐘)釋回 new,因此代理程式當機後,其工單會自動重新進入佇列,無須人工介入。輸入:id(UUID 或短 ID)。
  • get_bug_report — 依 UUID 或工作區/專案短 ID 取得報告完整詳細資料。傳回標準的人員/專案/品質欄位,以及 is_epic、父項識別資訊、彙總進度和 Epic 的第一頁子項(有數量上限)。
  • 原生報告標籤: create_bug_report 和 update_bug_report 接受字串陣列形式的 tags,例如 {"tags":["login","regression"]}。去重前最多接受 20 個原始元素。字串會先去除首尾空白,且必須非空、最多 50 個 Unicode 碼位,並且不得包含 ASCII 控制字元(U+0000 至 U+001F 或 U+007F)。去除空白後會移除完全相同的重複項目;保留大小寫,且 Login 與 login 不同。更新時,陣列會取代所有標籤,[] 會清除標籤,省略則會保留標籤。建立時,省略表示不設定標籤。null 和無效元素會遭到拒絕。建立、取得、列出和更新結果都會公開原生的 tags。
  • 標籤篩選: 呼叫 list_bug_reports 並傳入 {"project":"bugagent","tags":["login","regression"]},即可在分頁前以區分大小寫的方式比對所有指定標籤。適用相同的標籤限制;省略或傳入 [] 時不套用標籤篩選。現有的 reports:read / reports:write 範圍和工作區/專案授權維持不變。此功能不會新增視覺化標籤 UI,也不會自動匯入、同步或回填 Jira 標籤。
  • get_epic — 使用必要的 id(UUID 或工作區/專案短 ID)直接讀取單一 Epic。只傳回 Epic 記錄,不會隱含載入子報告。需要具備其工作區和專案的存取權;API 金鑰呼叫者需要 reports:read。請另外使用 list_epic_children 讀取子項。
  • list_epic_children — 使用 id、limit(1–100)和 offset 分頁列出 Epic 的子報告。傳回 children、total、has_more 和透過 SQL 彙總的 epic_progress,而不必載入所有子報告。
  • update_bug_report — 更新標準報告欄位,以及 is_epic 和 parent_epic_id。傳入 parent_epic_id: null 以解除關聯;重新指定父項/解除關聯會以原子方式執行,且需要相同工作區、相同專案的授權。升級為 Epic 時會解除現有父項的關聯,而有子項的 Epic 無法降級。現有的狀態/解決方式/根本原因和指派通知規則仍適用。若 Jira 連結報告的 status 變更,且恰好有一個合法轉換符合對應狀態,系統會透過 Jira 工作流程轉換同步更新 Jira 議題;否則不會變更該議題。
  • add_comment — 在錯誤報告中新增留言(UUID 或短 ID,本文長度為 1-10000 個字元)。若報告已同步至 Jira,留言會自動推送至連結的 Jira 議題。像 ![proof](/api/attachments/ATTACHMENT_UUID) 這樣的私人附件 Markdown 會轉換為 Jira 中的絕對網址、需驗證的 bugAgent 智慧連結。檢視者必須登入 bugAgent,並具備報告所屬工作區和專案的存取權;不保證 Jira 會原生內嵌預覽。
  • list_comments — 依時間由舊至新列出報告已儲存的留言串 — 每則留言都包含作者名稱、parentId(串接回覆)、createdAt 和 updatedAt。留言不屬於 get_bug_report,因此這是讀取工單討論內容的方式。接受 UUID 或短 ID。此讀取操作不會重新整理 Jira。需要最新 Jira 留言的排程整合可先使用具授權的管理員 API 金鑰呼叫 POST /api/jira/comments-refresh。請使用留言 ID 和內容修訂版本來區分新留言與編輯內容;若重新整理失敗,請勿聲稱已取得完整活動報告。
  • link_bug_reports — 在同一個已授權專案中的兩份報告之間建立具方向性的語意連結。對於 parent-of,來源報告必須是 Epic,目標報告必須是標準子項。建立/更新時,請優先使用 parent_epic_id 指派 Epic。
  • unlink_bug_reports — 依 UUID 移除先前建立的錯誤報告連結(link_id,由 link_bug_reports 或 list_bug_report_links 傳回)。
  • list_bug_report_links — 列出與錯誤報告相關的所有使用者自訂連結。每個連結都會依提供的報告視角呈現 — 例如,若此報告是目標,儲存的 duplicate-of 資料列會呈現為 duplicated-by;若此報告是目標,parent-of 會呈現為 subtask-of;若此報告是目標,depends-on 會呈現為 blocks;若此報告是目標,testing-blocked-by 會呈現為 blocks-testing。related-to 為對稱關係。此工具補充 get_bug_report 傳回的自動偵測 similar_reports 欄位。
  • classify_bug — 將描述分類為 19 種報告類型之一(錯誤、功能、增強功能等),並提供信心分數
  • flush_reports — 批次刪除舊報告(僅限管理員)

📊

使用量與分析

  • get_usage — 檢查使用量是否超出方案限制。API 金鑰呼叫者需要 usage:read。
  • get_stats — 每日計數,以及依類型/嚴重程度/狀態分類的統計資料

📁

專案管理

  • list_projects — 列出可存取的專案及其 id、name、slug、ticket_prefix、描述和預設狀態。使用這些值,透過錯誤報告和測試目錄工具指定正確的專案。
  • create_project — 建立新專案(若為第一個專案,會自動設為預設專案)
  • delete_project — 永久刪除專案及其所有相關資料(錯誤報告、自動化、測試案例、行動應用程式、排程、地理快照、備註、時間記錄)。僅限擁有者/管理員。無法刪除最後一個專案。儲存空間會自動釋出
  • export_okf_bundle — 將專案的 QA 知識匯出為 OKF/OQA Markdown 套件 — 包含錯誤報告、測試案例、自動化,以及效能、安全性和探索性測試(oqa.ai 使用的 Open Query Agent 格式)。預設使用目前專案;傳入選用的 project(slug 或名稱)即可匯出其他專案。傳回套件中的檔案清單,以及以 Base64 編碼的 zip 套件本身

🔐

驗證與帳戶

  • register_account — 建立新帳戶(密碼:8-128 個字元,速率限制:5/15 分鐘)
  • login — 登入並取得存取權杖(速率限制:5/15 分鐘)
  • update_profile — 更新顯示名稱
  • change_password — 變更帳戶密碼
  • get_settings — 讀取個人資料和通知偏好設定。
  • update_settings — 更新支援的個人資料和通知偏好設定。僅限 OAuth 修改。

🔑

API 金鑰管理

  • generate_api_key — 建立具名 API 金鑰
  • list_api_keys — 列出有效金鑰(僅顯示前綴)
  • regenerate_api_key — 撤銷並取代金鑰
  • delete_api_key — 永久撤銷金鑰

👥

團隊管理

  • list_workspaces — 列出你所屬的工作區、你在各工作區的角色,以及工作階段預設使用的工作區。支援多工作區的主機可使用 X-BugAgent-Workspace 標頭固定請求的工作區(僅限有效成員)
  • list_team_members — 列出工作區的所有成員及其角色、狀態和 booster 旗標
  • invite_team_member — 透過電子郵件邀請使用者(管理員可邀請貢獻者和管理員;只有擁有者可邀請管理員)。邀請連結 5 天後到期

🎯

整合

Jira Cloud 報告同步功能包含於 Free 和 Enterprise 方案中。工作區管理員必須先在儀表板中連結 Jira。之後,工作區 API 金鑰即可使用 jira:read 進行比較,並使用 jira:write 進行同步/合併;Atlassian 方案和 API 限制仍適用。

  • sync_to_jira — 使用團隊共用連線將報告推送至 Jira。會將報告路由至對應其 bugAgent 專案的 Jira 專案(若無則使用工作區預設值),並套用其欄位對應:v2 會分別處理優先級與自訂嚴重性;未指定版本的對應則保留舊版的嚴重性轉換為優先級行為。選用的 projectKey 只能選取該已設定的對應或工作區預設值;不接受任意 Jira 專案。**通常不需要使用此工具:**當專案的同步模式為 auto_new 或 auto_all 時,您建立的報告會自動推送 — 在 manual 模式下,才呼叫此工具手動推送。
  • check_jira_sync — 唯讀比較已授權連結報告的標題,以及對應的狀態、優先級和嚴重性。使用報告已儲存的專案和 Jira 連線。版本 2 會將 Jira Priority 與支援的自訂 Severity 欄位分開對應;未指定版本的對應則保留舊版的優先級轉換為嚴重性行為。此工具不會比較留言、附件、類型或所有 Jira 欄位。
  • merge_jira_sync — 使用 prefer: jira 拉取 Jira 值,或使用 prefer: bugagent 推送本機值,以合併這些對應欄位。推送狀態時會使用合法的 Jira 工作流程轉換。未對應的外傳衝突、遠端寫入失敗及並行的本機變更都會回傳錯誤,而不會宣稱所有內容都已同步。留言和附件仍由儀表板中的獨立同步工作流程處理。跨系統寫入並非原子操作。
  • push_to_claude — 為錯誤報告產生(或重新產生)開發者備註 — 根本原因、建議修正方式、驗證步驟和風險評估。接受 UUID 或短 ID(WRKID-545)。使用平台金鑰 — 不需要每個團隊各自設定 Claude 連線。執行自適應鏈:對 s3 / medium 或 s4 / low 錯誤執行三個步驟(Sonnet 草稿 → OpenAI gpt-5 評析 → Sonnet 綜合);對嚴重性最高的兩個級別 — s1 / critical 或 s2 / high — 執行五個步驟(草稿 → 評析 → Sonnet 反駁 → Claude Opus 裁決者,讀取完整對話紀錄並以獨立判斷撰寫最終備註)。回應會呈現每一輪:analysis、draft、critique、rebuttal、challenger_model、adjudicator_model,以及 debated 旗標。任何步驟失敗時,都會改用次佳答案。建立錯誤時會自動觸發;通常只有手動重新產生時才需要呼叫。
  • analyze_fix_area — 產生(或重新產生)開發者備註中的「可能的修正區域」子區塊 — 由 Sonnet 產生精簡內容,指出最可能需要修正的程式碼位置。接受 UUID 或短 ID。使用平台 Anthropic 金鑰。若團隊有 github_connections 資料列,且專案已對應 github_repo,輸出會以連線儲存庫中的實際檔案片段為依據;否則會改用一般指引,並提示連線儲存庫。回傳 likely_fix_area 文字、generated_at、repo_used,以及 grounded 旗標。建立錯誤時會自動觸發 — 通常只有手動重新產生時,代理程式才需要呼叫此工具。
  • upgrade_plan — 取得由業務協助的 Enterprise 註冊連結

⚡

效能測試

  • create_performance_test — 建立效能測試設定,包含 URL、裝置、虛擬使用者數、持續時間、分數門檻及自動建立錯誤切換選項。選用的 project 可接受目前工作區中的專案 UUID、slug、完整名稱或票證前綴。若省略,則使用工作區預設專案,其次使用最舊的專案;呼叫者必須有存取權限。使用 list_projects 選擇專案。空白、未知或無法存取的專案都會遭拒。name 不得為空白,且會去除前後空白。效能測試名稱在工作區和專案內不得重複,且比較時會忽略大小寫和前後空白;若發生衝突,系統會要求您選擇其他名稱。僅限 Enterprise
  • run_performance_test — 為網頁效能測試觸發頁面稽核和負載測試。回傳執行 ID,可用來輪詢結果。行動應用程式剖析執行作業需從儀表板觸發
  • get_performance_results — 取得完整結果,包括 Lighthouse 分數(效能、無障礙、最佳做法、SEO)、Core Web Vitals(LCP、FID、CLS、FCP、TTFB、INP、TBT、SI)及負載測試指標(VU、請求數、RPS、p50/p90/p95/p99 延遲)
  • list_performance_tests — 列出目前團隊的所有效能測試設定
  • get_performance_usage — 檢查每月效能測試用量。效能測試僅限 Enterprise。Free=0,Enterprise=不限

範例工作流程

  1. get_performance_usage → 檢查剩餘配額
  2. create_performance_test → 為您的 URL 設定測試
  3. run_performance_test → 觸發稽核和負載測試
  4. get_performance_results → 檢視分數和生命徵象

🛡

安全性掃描

  • create_security_scan — 建立安全性掃描設定。網頁掃描使用 Quick Scanner + Nuclei(4,000+ 個範本),提供三種深度等級及選用的已驗證掃描。行動裝置掃描使用 MobSF 進行 APK/IPA 二進位分析。可設定自動建立錯誤及嚴重性門檻。選用的 project 可接受目前工作區中的專案 UUID、slug、完整名稱或票證前綴。若省略,則使用工作區預設專案,其次使用最舊的專案;呼叫者必須有存取權限。使用 list_projects 選擇專案。空白、未知或無法存取的專案都會遭拒。name 不得為空白,且會去除前後空白。安全性掃描名稱在工作區和專案內不得重複,且比較時會忽略大小寫和前後空白;此規則與效能測試名稱分開計算。若發生衝突,系統會要求您選擇其他名稱。僅限 Enterprise
  • run_security_scan — 觸發弱點掃描。網頁掃描需要 DNS 網域驗證。行動裝置掃描需要已上傳的應用程式。回傳執行 ID,可用來輪詢結果
  • get_security_results — 取得完整結果,包括安全性分數(0-100)、依嚴重性分類的發現項目(Critical、High、Medium、Low、Info),以及 CWE 參照、OWASP 對應、證據和修復指引
  • list_security_scans — 列出目前團隊的所有安全性掃描設定,並顯示上次分數及驗證/深度徽章
  • get_security_usage — 檢查每月安全性掃描用量。安全性掃描僅限 Enterprise。Enterprise=不限
  • list_security_schedules — 列出團隊所有已排程的安全性掃描,包含 cron、時區、啟用狀態、下次執行時間和通知設定。會與上層掃描設定(名稱、scan_type、target_url)合併
  • create_security_schedule — 為安全性掃描建立定期排程。需要 scan_id 和 cron_expression。每個掃描設定只能有一個排程。選用的 timezone、notify_on_fail(none/email/slack/both)、notify_email、slack_channel_id。每次執行都會計入每月上限;管理員使用者不受上限限制。執行時一律從掃描設定讀取掃描深度
  • delete_security_schedule — 刪除已排程的安全性掃描。不會影響上層掃描設定或已完成的執行作業

範例工作流程

  1. get_security_usage → 檢查剩餘配額
  2. create_security_scan → 為您的 URL 或儲存庫設定掃描
  3. run_security_scan → 觸發一次性弱點掃描
  4. create_security_schedule → 自動執行定期掃描(例如每週在 main 分支執行 SAST)
  5. get_security_results → 檢視發現項目和修復方式

📖

程式碼審查

  • list_code_reviews — 列出團隊近期的 AI 程式碼審查。回傳品質分數、嚴重性數量、PR 資訊和時間戳記。僅限 Enterprise
  • get_code_review — 取得包含所有發現項目的程式碼審查。每個發現項目都包含嚴重性、類別(bug/security/performance/style/logic/maintainability)、標題、描述、程式碼建議、檔案路徑和行號
  • get_code_review_usage — 檢查程式碼審查用量。AI 程式碼審查僅限 Enterprise;Enterprise 不限量
  • get_code_review_analytics — 取得審查分析資料:趨勢、發現項目類別/來源、嚴重性分布、速度指標、熱門儲存庫/作者。支援回溯 7/30/90 天

範例工作流程

  1. get_code_review_usage → 檢查剩餘審查次數
  2. 在儀表板的 /dashboard/code-review 審查 PR
  3. list_code_reviews → 查看近期審查
  4. get_code_review → 取得發現項目和建議

🔍

探索式 AI

多代理程式自主網站錯誤搜尋工具,最多可使用 10 個平行代理程式,每個代理程式採用不同的測試策略。

  • list_explorations — 列出團隊的探索式 AI 設定
  • create_exploration — 建立新的探索。接受 agent_count(1–10,最多 10)以使用不同策略執行多個平行代理程式:happy_path、edge_case、security、accessibility、error_path、performance、mobile、data_integrity、navigation、custom。此工具無法設定憑證或驗證模式。請明確透過儀表板或 REST 設定並啟動 僅測試登入流程,然後使用 get_exploration 和 get_exploration_run 檢查設定和結果。切勿根據指示推斷模式,也不要將憑證放入 MCP 引數。預設的憑證式探索仍需要可重複使用的工作階段。
  • get_exploration — 取得探索設定,包含代理程式設定、安全的驗證中繼資料和近期執行作業。絕不會回傳密碼和密文。
  • get_exploration_run — 取得執行結果,包含各代理程式的進度、階段資料、附有代理程式歸屬資訊的發現項目(agent_index、agent_strategy),以及連結的錯誤
  • get_exploration_usage — 檢查每月用量。探索式 AI 僅限 Enterprise;Enterprise:不限(10 個代理程式)

範例工作流程

  1. 使用 agent_count: 5 呼叫 create_exploration → 設定 5 個平行代理程式
  2. 從儀表板或透過 POST /api/explorations/run 觸發執行
  3. get_exploration_run → 輪詢各代理程式的進度和發現項目
  4. 在儀表板中檢視附有代理程式歸屬資訊的去重發現項目

📝

筆記

  • list_notes — 列出筆記,可選擇依關鍵字、專案、可見性、資料夾、標籤、封存狀態、wiki、日期範圍和排序方式篩選。回傳使用者擁有或與其共用的筆記。
  • create_note — 以 5 種格式之一建立筆記:markdown、plain、bugtemplate、checklist、outline。將 visibility 設為 private 或 shared。若未提供標題,則自動使用前 30 個字元作為標題。選用的 attachments 陣列可接受以 base64 編碼、每個最大 400 MB 的檔案:任何圖片、影片、音訊、PDF 或文字/JSON 檔案。傳入 time_spent_seconds 以追蹤 QA 工作量。
  • get_note — 取得筆記完整詳細資料,包括內容和附件。需要 id。
  • update_note — 更新標題、內容、格式、可見性、專案或 time_spent_seconds。傳入 attachments 陣列,即可將新檔案(每個最大 400 MB)附加至筆記現有附件,而不取代它們。只有作者可以更新。需要 id。
  • delete_note — 永久刪除筆記及其附件。只有作者可以刪除。需要 id。
  • list_note_folders — 列出筆記/wiki 資料夾,可選擇限定於特定專案。
  • create_note_folder — 建立專案範圍的筆記/wiki 資料夾,可選擇設定上層資料夾、可見性、最愛狀態和隊友存取權限。

範例工作流程

  1. create_note → 開始記錄測試工作階段
  2. update_note → 測試時附加觀察結果
  3. list_notes → 依關鍵字或專案搜尋過往筆記
  4. get_note → 取得包含附件的完整筆記

🤖

自動化

  • create_automation — 使用自訂 Playwright 指令碼建立新的自動化(不需要 FAB 錄製)。需要 name。選填:target_url(若未提供,會從指令碼中的第一個 page.goto(...) URL 自動推導)、script(Node.js/JavaScript/TypeScript 或 Python — 會自動偵測語言;預設為佔位值)、status(draft 或 active,預設:draft)、project_id。傳回自動化 id。**提示 — 複製自動化:**使用 get_automation 取得原始指令碼,然後呼叫 create_automation,將 name 設為 "[Copy] Original Name",並傳入原始的 script、target_url 和 project_id。複本的狀態會是 draft,且沒有版本記錄。
  • list_automations — 列出 Playwright 自動化指令碼。依 project_id 或 status 篩選(draft、active、paused)。傳回包含名稱、target_url、last_run_status 和 run_count 的自動化陣列。
  • get_automation — 取得完整的自動化詳細資料,包括 Playwright 指令碼和近期執行記錄。需要 id。傳回自動化及目前的 script、script_versions 堆疊(由舊至新,最多 100 個先前項目,每個項目為 { script, source, timestamp }),以及 recent_runs 陣列,其中每次執行都包含實際執行的 script_version_label / script_version_source。若要選取特定歷史版本,請先呼叫此工具,再呼叫 run_automation。
  • run_automation — 立即觸發 Playwright 測試。需要 automation_id。**自我修復定位器(自動):**定位器動作逾時時,執行器會請 Claude 提供可用的選取器,並重試該步驟一次 — 不會修復斷言,因此真正的回歸問題仍會導致失敗 — 每次修復都會記錄在執行標準輸出中。模擬模式(預設):可選擇提供 device,指定模擬裝置設定檔(例如 desktop、iphone-15)。真實模式:設定 browserstack: true,並提供 bs_browser(chrome、firefox、safari、edge)、bs_os(Windows、OS X),以及 bs_os_version,即可在真實桌面瀏覽器上執行。**真實行動裝置:**設定 bs_os: "android"(裝置:"Samsung Galaxy S25 Ultra"、"Google Pixel 10"、"OnePlus 13R")或 bs_os: "ios"(裝置:"iPhone 17 Pro Max"、"iPhone 16 Pro Max"、"iPhone 15 Pro Max"),並在 bs_os_version 中傳入裝置名稱。兩種模式都會在背景執行;「真實」描述的是執行環境,而非可見的互動工作階段。Node.js 指令碼會透過 browserstack-node-sdk 執行(支援桌面、Android 和 iPhone)。Python 指令碼會透過 browserstack-sdk(pytest-playwright)執行,且僅支援桌面 — pytest-playwright 的 browser_type.connect() 無法操作 BrowserStack 的真實行動裝置端點,因此 Python 不支援真實行動裝置。影片和網路記錄會自動擷取;主控台記錄僅限桌面。**版本重播:**使用 get_automation 檢視 script_versions,然後傳入偏好的持久性 version_label(例如 "v103")。仍支援舊版 version_index,但不得與 version_label 一起使用。**預設行為:若兩個選取器都未提供,則執行目前儲存的指令碼。**已清除的標籤和無效索引會遭到拒絕,不會靜默地改為執行目前版本。執行記錄會儲存實際執行的確切快照,而失敗執行自動建立的任何錯誤報告,都會深層連結回編輯器中的該版本。
  • list_automation_runs — 列出自動化的近期執行記錄。需要 automation_id。傳回包含狀態、duration_ms 和 error_message 的執行記錄。
  • list_schedules — 列出所有已排程的網頁自動化執行,包含可為 null 的 cron_expression、可為 null 的 run_at、once_status、時區、裝置和通知設定。週期性項目會保留為 null 的 run_at 和 once_status;單次項目的 cron 為 null。單次狀態:pending、claimed、missed、dispatched、failed、uncertain。這些是派送狀態,不是測試結果;請檢查 list_automation_runs 以查看結果。
  • 週期性網頁排程:create_schedule 會驗證五個數值 cron 欄位和時區,並傳回未來的 UTC next_run_at。支援每月和每年重複執行。例如,30 12 23 9 * 在 America/Toronto 中表示每年 9 月 23 日 12:30 執行,而非單次執行。建立前會拒絕無效或不可能的時間設定。若月份中的日期和星期幾都有限制,兩者都必須符合。不存在的日光節約時間會略過;重複的當地時間可能會執行兩次。派送會在排程器下次輪詢時發生,不一定正好在指定分鐘。現有的週期性行為不變。
  • **單次網頁排程:**呼叫 create_schedule 並提供 { "automation_id": "AUTOMATION_UUID", "run_at": "2030-12-15T09:30:00-05:00", "timezone": "America/Toronto" },選擇未來日期,且省略 cron_expression。請只提供一個時間欄位。run_at 必須是含時區偏移的未來 ISO 8601 時間戳記(明確偏移或 Z);IANA 時區僅供顯示使用。已啟用的待處理排程會在到期後的首次 cron 輪詢時執行;若延遲超過一小時,則會標記為 missed。排程會在派送前以原子方式認領並停用,消耗後無法重新啟用。確定的派送失敗會標記為 failed;派送結果不明時會標記為 uncertain,且絕不會自動重試。再次排程前請先檢查執行記錄。dispatched 不代表已完成或通過。只能透過 API/MCP 建立,並非新增的儀表板建立模式。
  • 網頁排程時區使用 IANA 識別碼,例如 America/Argentina/Buenos_Aires。儀表板選擇器包含伺服器支援的所有地區和城市,並預設為你的個人檔案時區;MCP 時區預設值仍為 UTC。
  • create_schedule — 建立已排程的網頁自動化執行。需要 automation_id,且必須在 cron_expression 或 run_at 中擇一。支援選填的裝置、時區、失敗通知、電子郵件和 Slack 頻道設定。請先透過儀表板連接 Slack,並選擇機器人所屬的頻道;僅安裝 webhook 並不足夠。請參閱 Slack 設定與頻道探索。
  • **單次排程推出與復原:**部署相符的 API/MCP 和排程器程式碼前,請先套用資料庫遷移 374_one_time_web_schedules.sql。工作者當機後,claimed 可能會持續存在:若要替換已認領或派送狀態不明的排程,請先檢查執行記錄。超過一小時的逾期時間戳記絕不會自動執行。
  • **草稿網頁自動化:**建立排程、重新啟用排程,或變更其 cron 運算式或時區前,請先啟用自動化。create_schedule 會先驗證工作區和專案存取權,再拒絕草稿狀態。自動化處於草稿狀態時,現有排程會略過執行週期;暫停、刪除、釘選和僅變更通知仍可使用。沒有網頁版的 update_schedule MCP 工具;請使用儀表板進行這些更新。
  • delete_schedule — 刪除已排程的網頁自動化執行
  • list_mobile_schedules — 列出所有已排程的行動自動化執行,包含裝置、cron、時區和通知
  • create_mobile_schedule — 在真實裝置上建立已排程的行動自動化執行。需要 automation_id 和 cron_expression;devices 為選填。
  • delete_mobile_schedule — 刪除已排程的行動自動化執行
  • optimize_automation_script — 將 Playwright 指令碼傳送給 Sonnet 4,進行 AI 輔助最佳化。套用 12 點檢查清單,修正選取器、等待策略、斷言、錯誤處理、驗證模式、行動裝置相容性和嚴格模式。需要 automation_id。最佳化前會先儲存目前的指令碼版本。傳回最佳化後的指令碼和變更摘要。
  • undo_automation_script — 將自動化指令碼還原至上一個版本。最多保留 100 個先前版本。需要 automation_id。傳回還原後的指令碼和剩餘版本數量。

範例工作流程

  1. create_automation → 使用自訂指令碼建立測試
  2. list_automations → 瀏覽可用測試
  3. get_automation → 檢查 Playwright 指令碼
  4. run_automation → 觸發測試
  5. list_automation_runs → 檢查結果和執行時間

⏱️

時間追蹤

  • list_time_entries — 列出團隊的時間記錄。依 period(today、week、month、all)、project_id、category 和 sort(newest、oldest、most_time、least_time)篩選。僅限 Enterprise 方案。
  • create_time_entry — 記錄 QA 工作所花費的時間。需要 description、category 和 duration_minutes。可選擇設定 project_id 和 entry_date(預設為今天)。僅限 Enterprise 方案。
  • update_time_entry — 更新現有時間記錄。需要 id。可更新 description、category、duration_minutes、project_id 或 entry_date。僅限 Enterprise 方案。
  • delete_time_entry — 永久刪除時間記錄。需要 id。僅限 Enterprise 方案。

範例工作流程

  1. create_time_entry → 記錄 45 分鐘的回歸測試
  2. list_time_entries → 查看本週的時間記錄
  3. update_time_entry → 調整時長或類別
  4. delete_time_entry → 移除錯誤的記錄

☑️

測試案例

測試管理功能包含階層式資料夾、巢狀測試套件(最多 3 層深,執行時會自動展開子套件)、拖放排序,以及提供 KPI 趨勢、失敗分析、測試套件健康狀況、涵蓋率和測試人員生產力分析的 Reports 分析索引標籤。所有工具都直接呼叫 Supabase — 不經過 HTTP 往返,延遲與儀表板相同。

**免費方案限制:**最多儲存 10 個測試案例、1 個測試套件、3 個資料夾、每個案例 128 KB 的結構化內容、2 個啟用中的工作區 API 金鑰,以及每個 UTC 日曆月總計 10 次測試執行。其中最多 3 次可使用 Hermes 或其他外部代理程式,且同時只能有 1 次外部執行,每個外部計畫最多包含 10 個案例。免費方案的 API 金鑰 MCP 流量限制為每個金鑰每分鐘 30 個請求、每個工作區每分鐘 60 個請求。Enterprise 方案的測試案例儲存和執行次數不限,但仍受一般平台保護措施約束。

AI 測試案例產生、AI 標籤建議、Figma 匯入和測試案例檔案附件僅限 Enterprise。免費方案的 128 KB 結構化內容上限與 Enterprise 檔案附件分開計算。免費方案可儲存 URL 參照。在上述限制內,免費方案仍可使用核心 MCP 測試案例工具。

免手動操作執行:執行檢閱頁面採用輪播介面,一次顯示一個案例,支援鍵盤快速鍵(P 通過 · F 失敗 · B 阻擋 · S 略過),並提供語音控制。點擊麥克風後,可說出「通過」、「失敗」、「阻擋」、「略過」、「下一個」、「上一個」、「新增備註」(將語音轉錄至備註欄位)、「儲存備註」或「關閉語音」。成功結果會自動前進至下一個尚未測試的案例;若失敗則停留在目前案例,讓測試人員口述詳細資訊並建立錯誤。支援 Chrome、Edge 和 Safari。

案例與資料夾
  • list_test_cases — 列出可存取的測試案例,可選擇使用 project 選擇器,以及 search、priority、type、status 和 sort 篩選條件。加入 folder_id(未歸檔時為 null)或 suite_id 以篩選直接隸屬項目,不含子項目。API 金鑰呼叫者需要 test_cases:read。limit 預設為 50(1-200);offset 預設為 0(0-1000000)。未變更的 cases 陣列會附帶 total / total_count(所有已授權的符合項目)、limit、offset、has_more 和可為 null 的 next_offset。先前 total 錯誤地代表頁面長度。持續使用 next_offset,直到值為 null;不要根據頁面長度推斷是否已完成。超過 offset 1000000 的續頁要求會明確失敗;請縮小篩選範圍,而不是收到無法使用的游標或錯誤的完成狀態。案例資料超過 1 MiB 的頁面會明確失敗:請改用較小的 limit 重試,而非接受遭省略的記錄。系統會使用穩定的 ID 作為排序依據,但並行編輯可能會使 offset 分頁位置移動。
  • 分頁範例: 使用 {"project":"test-bed","limit":50,"offset":0} 呼叫 list_test_cases。若有 55 個符合項目,回應會包含 total:55, has_more:true, next_offset:50。使用 offset:50 重複呼叫,以取得剩餘五個項目和 has_more:false, next_offset:null。
  • create_test_case — 在必要的 project 選擇器中建立測試案例(UUID、slug、完全相符的名稱或票證前綴;請先呼叫 list_projects)。提供兩種範本:steps(預設)— 透過 steps 陣列提供逐步的 { action, expected } 表格;text — 透過 text_content 提供單一自由格式描述。兩個欄位可在同一次呼叫中傳送。可選的 urls 陣列(最多 10 個 http/https URL)可附加參考連結,Free 方案也可使用。檔案附件需要 Enterprise 方案和儀表板工作階段。API 金鑰呼叫者需要 test_cases:write。
  • 分頁復原: 要求超出可用結果範圍的案例 offset 時,會傳回明確錯誤;請從 offset 0 重新開始。若在要求之間移除了案例,也可能發生此情況。請依照傳回的續頁位置繼續,而不要猜測下一個 offset。
  • 案例識別碼: list_test_cases、get_test_case、create_test_case 和 update_test_case 會傳回 UUID id、不可變的 short_id(例如 TEST-BA-CASE-123)以及數字型 case_number,包括精簡的更新/無操作回應。舊版無專案案例使用 TEST-CASE-123。缺少的識別碼會以 null 傳回;請使用 UUID 作為備援。識別碼由資料庫指派;呼叫者無法變更識別碼,也無法在建立時選擇識別碼。前綴重新命名不會改寫現有 ID。
  • 單一案例查詢: get_test_case 和 update_test_case 接受 id 中的 UUID 或完整短 ID;link_test_case_to_bug 和 list_test_case_links 則接受其中任一種,並放在 case_id 中。系統會先正規化前後空白、字母大小寫和數字補零,再於目前工作區中進行精確查詢。授權依據為儲存的工作區和專案,而非 ID 前綴。不接受單獨數字、不完整 ID 和萬用字元搜尋。批次案例陣列、執行結果 case_id、錯誤 ID、資料夾 ID 和套件 ID 仍僅接受 UUID。連結記錄會保留 UUID case_id。
  • 編號缺口: 案例編號不一定連續。編輯 URL 或遞增編號可能導致找不到案例或無法存取案例;這並非保證能取得下一個案例的操作。請使用清單工具探索案例,並依照其分頁結果繼續。
  • 工作區範圍: 不同工作區中可能存在相同的短 ID。MCP 只會在目前工作區中解析該 ID;使用其他工作區的短 ID 前,請先切換工作區內容。分享儀表板短 ID URL 時,請保留 ?team=<case.team_id>,例如 /dashboard/test-cases/TEST-BA-CASE-123?team=<team-uuid>。UUID 永久連結會保留現有的跨工作區授權行為。MCP 不會建構永久連結。
  • get_test_case — 取得已授權的案例記錄,包括步驟和識別碼。不會載入變更歷史或執行歷史。範例:{"id":"TEST-BA-CASE-123"}。
  • 執行時間估計: get_test_case 會傳回 estimated_time_seconds 和相容性別名 estimated_time,兩者的單位皆為秒。已儲存的 0 會維持為 0;未知或缺少的估計值為 null。若兩個名稱都存在,則以標準欄位為準,包括明確的 null;只有舊版欄位的 estimated_time 值會視為秒,不進行轉換。list_test_cases 使用 estimated_time_seconds。create_test_case 輸入仍為 estimated_time,單位同樣為秒;REST 要求和回應使用 estimated_time_seconds。
  • list_test_case_folders — 列出可存取的資料夾。上限為 500;接受彈性的 project 選擇器和 parent_folder_id 篩選條件(僅列出頂層項目時使用 "root")。API 金鑰呼叫者需要 test_cases:read。
  • get_test_case_folder — 使用必要的 id(UUID)直接讀取一個測試案例資料夾。只傳回資料夾記錄,不會隱含載入子資料夾或測試案例。需要具備其工作區和專案的存取權;API 金鑰呼叫者需要 test_cases:read。
  • type、list_test_cases、create_test_case 和 bulk_update_test_cases 的測試案例值:functional(建立時的預設值)、regression、smoke、integration、performance、security、usability、exploratory。寫入前會拒絕無效類型。端對端流程請使用 integration;e2e、accessibility 和 other 不接受作為測試案例類型。自動化指令碼類型屬於不同的契約。
  • create_test_case_folder — 在 list_projects 傳回的必要 project 中建立資料夾(透過 parent_folder_id 最多可巢狀 3 層)。需要具備貢獻者或更高層級的工作區存取權,以及專案存取權。API 金鑰呼叫者也需要 test_cases:write。
  • update_test_case_folder — 依資料夾 UUID 更新:id、可選的 name(去除前後空白後為 1-120 個字元)、可為 null 的 description(最多 50000 個字元)、可為 null 的 parent_folder_id,以及可為 null 的 card_color。父項 UUID 會在相同工作區和專案內移動資料夾及其子樹;null 會將其移至根目錄。顏色接受小寫調色盤 #1e293b, #7c2d12, #713f12, #14532d, #1e3a5f, #312e81, #581c87, #831843, #4a044e, #fef08a, #fca5a5, #93c5fd;null 會清除顏色。未提供的欄位會保留原值。至少需要一個更新欄位。未知、拼寫錯誤或無效的欄位會使整個要求遭拒,不會儲存任何變更。若形成自身/子孫循環、名稱與同層資料夾、直接父項或直接子項相同(忽略大小寫和前後空白),或子樹深度超過 3(根目錄深度為 0),則會遭拒。子孫深度會以原子方式更新;案例 ID 和隸屬關係不變。並行變更衝突可能導致失敗;重試前請重新讀取資料夾。需要具備作用中的貢獻者或更高層級專案存取權;API 金鑰還需要 test_cases:write。範例:{"id":"folder-uuid","card_color":"#93c5fd"}。會傳回更新後的 id、team_id、project_id、name、description、card_color、parent_folder_id、depth 和 updated_at。資料夾 get/list 讀取也會包含 card_color。
  • update_test_case — 使用 id 中的 UUID 或完整短 ID 修補現有案例,且至少提供一個欄位:name(或別名 title)、description、preconditions、steps、template_type、text_content、priority、type、status 或 folder_id。未提供的欄位會保留原值;steps 會取代整個陣列([] 會清除陣列)。明確提供 null 可清除描述、前置條件、text_content 或資料夾位置;空的 text_content 也會清除內容。若同時傳送 name 和 title,兩者必須相符。優先級和類型使用建立時的列舉值;狀態為 active、draft 或 deprecated。變更類型時,type_tags 會配合新類型調整,與 PATCH API 相同。不支援移動工作區/專案,也不支援寫入檔案中繼資料。資料夾必須屬於完全相同的工作區和專案。需要 test_cases:write。會傳回案例摘要、id、short_id、case_number 和 changed;值未變更時會傳回 changed: false。若更新已確認但歷史記錄項目未確認,會傳回 warnings;請勿為了修復歷史記錄而重複更新。發生並行變更錯誤時,請重新讀取案例後再重試。套件隸屬關係需另外處理:請使用下方的批次工具,而非在此工具使用 suite_id。不提供刪除工具。
  • bulk_update_test_cases — 對 1–500 個案例 UUID 套用一項操作;單一案例請傳入一個 ID。set_folder 接受 params.folder_id(要移入的 UUID;明確提供 null 則取消歸檔)。add_to_suite 和 remove_from_suite 接受 params.suite_id;新增隸屬關係不會移除其他隸屬關係,也不會移動資料夾。也支援 set_priority、set_status、set_type、add_tags、remove_tags、pin 和 unpin。API 金鑰需要 test_cases:write。會傳回 applied、skipped 和 errors;組織層級操作會計算已確認變更的資料列數、去除重複 ID,並略過現有隸屬關係。
  • 建立時指定位置: create_test_case 接受可選的 folder_id 和 suite_id。使用 list_test_case_folders 和 list_test_suites 探索目標(API 金鑰使用者探索套件時需要 test_runs:read)。資料夾是單一目錄位置;套件則是多對多的測試計畫隸屬關係。目標必須屬於相同的已授權工作區和完全相同的專案,包括舊版未指定範圍的案例。無法存取的案例 ID 會略過且不提供詳細資訊;目標不相符則會遭拒。無效的建立目標會在建立案例前導致失敗。
  • 部分建立: 案例建立和套件附加是分開的寫入操作。若附加失敗,回應會傳回已建立的案例 ID、suite_id: null 和 warnings 陣列。請勿重複執行 create_test_case;請針對傳回的 ID,使用 add_to_suite 重試 bulk_update_test_cases。
  • link_test_case_to_bug — 建立測試案例與錯誤報告 UUID(verified_by、covers 或 relates)之間的追溯關聯。兩筆記錄都必須屬於目前工作區,且位於呼叫者可存取的專案中。
  • list_test_case_links — 列出測試案例的所有追溯連結。
  • list_test_case_review_candidates — 無效測試旗標:never_run(建立後已超過 90 天)、always_passes(90 天內連續通過 5 次以上)、always_skipped(連續略過 3 次以上)。
  • mark_test_case_review_flags — 將目前的封存候選旗標寫入 test_cases.review_flag。透過 pg_cron 每週一 09:00 UTC 自動執行。
匯入
  • Figma 匯入(Enterprise)(僅限儀表板工作階段):上傳 Figma 畫面的 zip 匯出檔(最多 100 MiB),Claude 會分析每個畫面,並在您選擇或建立的資料夾中草擬測試案例。解碼前,封存檔最多可包含 1,000 個項目;每個項目解壓縮(解碼)後不得超過 20 MiB,所有項目的解壓縮資料總量不得超過 100 MiB;計算上限時也會納入忽略的檔案和目錄。解碼後的畫面緩衝區大小必須符合其宣告大小。格式錯誤的封存檔、大小不符和超出限制都會在 AI 分析前導致工作失敗;失敗時會保留原始上傳檔案以供重試,但仍受儲存空間清理政策限制。有效的封存檔會進入多階段流程(分類 → 逐畫面案例 → 跨共用前綴畫面的流程層級案例 → 自我批判),並使用提示快取、429 重試和逐畫面的 AI 錯誤隔離。案例會以 status=active 建立,並加上 ai_generated=true 標籤;source='figma' 和 source_frame_name 會保留指向原始畫面的連結。使用平台的 Anthropic 金鑰,不需要每個團隊另行設定 Claude 連線。
套件與執行
  • list_test_suites — 列出最多 50 個可存取的測試套件,並可選擇使用彈性的 project 篩選器。每個套件都包含精確的整數 case_count:所有狀態的直接指派案例,不含子孫套件,並排除其他工作區或其他專案的案例(仍包含沒有專案的舊版案例)。計數不受已擷取的成員資料列數量限制。為了與執行工作者保持向下相容,API 金鑰呼叫者需要 test_runs:read。
  • get_test_suite — 使用必要的 id(UUID)直接讀取一個測試套件。只傳回套件記錄,不會隱含載入子套件或成員測試案例。需要具備該套件工作區和專案的存取權;API 金鑰呼叫者需要 test_runs:read。
  • create_test_suite — 在 list_projects 傳回的必要 project 中建立套件。透過 parent_suite_id 最多巢狀 3 層。API 金鑰呼叫者需要 test_cases:write。
  • update_test_suite — 依套件 UUID 更新:id、選填的 name(去除前後空白後為 1–120 個字元)、可為 null 的 description(最多 50000 個字元),以及 status(啟用/封存)。未提供的欄位和案例成員資格會保留不變。需要具備有效的貢獻者或更高層級專案存取權,以及 test_cases:write。不支援移動父套件或釘選;移動父套件需要以原子方式維護子孫深度。傳回 id、team_id、project_id、name、description、parent_suite_id、depth、status 和 updated_at。範例:{"id":"suite-uuid","name":"Checkout regression","description":null}。
  • list_test_runs — 列出測試執行,包含套件名稱、受指派者和通過/失敗摘要。透過儀表板上傳的執行證據使用私人連結,必須有儀表板工作階段,並具備執行所在工作區和專案的存取權;MCP API 金鑰不會授予檔案存取權。
  • create_test_run — 建立由儀表板管理的套件執行。執行父套件時,會自動納入所有子孫子套件中的每個案例(同時連結至父套件和子套件的案例只會加入一次)。每個 test_run_results 資料列都會記錄案例的來源子套件,讓結果頁面能依來源分組。
外部代理程式執行

這些工具可讓 Hermes 或其他代理程式執行環境執行已核准的套件,而不會成為 QA 系統的正式記錄來源。請使用僅具備 test_runs:read 和 test_runs:write 權限的工作區範圍金鑰。套件會提供專案邊界;呼叫者無法覆寫。

  • start_test_plan — 使用穩定的 external_run_id 啟動或繼續不可變的套件快照。重複的 ID 會傳回現有的相符執行和第一頁,而不會建立重複項目。
  • get_test_run_plan — 讀取標準執行狀態和穩定的計畫頁面。傳入前一個 next_cursor;每頁預設包含 100 個案例,最多 200 個。
  • report_test_results — 使用 passed、failed、blocked 或 skipped 狀態提交 1–200 個結果。完全相同的重試可安全執行;嘗試以不同狀態覆寫案例會遭拒。
  • abort_test_run — 以冪等方式停止中斷的執行,同時保留已接受的部分結果和標準摘要。

**配額行為:**使用相同的 external_run_id 重試 start_test_plan,即可繼續相符的執行,而不會額外消耗一次執行額度。刪除資料不會重設每月執行用量。

**執行環境邊界:**案例快照不包含憑證、檔案內容或私人附件路徑。MVP 中的結果證據為文字。目標憑證會留在執行環境中。瀏覽器、模型和網路成本由客戶承擔,客戶必須限制目標存取權和網路輸出。缺陷和發布決策仍由人員負責。

Hermes Agent 指南 將此流程封裝為由 bugAgent 維護的社群技能。公開入門套件 包含可直接複製的設定和可安裝的技能。這不是 Nous Research 的官方整合。

報告(第 1 層 + 第 4 層分析)
  • get_test_reports_overview — 指定期間的主要 KPI(通過率、已完成執行數、已執行案例數),並與前一個等長期間比較差異。數值與「報告」分頁中的 KPI 列相同。這不會建立已儲存的專案報告。企業版 XLSX 專案報告及其排程由儀表板管理;此版本未啟用任何 MCP 工具來管理這些已儲存的成品。
  • 儀表板報告控制項:「報告」分頁可將多個套件(包括子孫套件)合併為一份篩選後的報告。已完成的執行也有「匯出 PDF」動作,其涵蓋率分母為該次執行所包含的案例。這些儀表板控制項不會新增 MCP 工具參數;下載單次執行的 PDF 需要儀表板工作階段。
  • **儀表板案例篩選器:**CSV 匯出會套用目前的「案例」篩選器,涵蓋所有符合條件的頁面。「套件健康狀況」和「依套件劃分的涵蓋率」會在所選套件範圍內,依實際父套件將子套件分組。只有階層結構的父套件會顯示破折號,不會彙總子套件指標。共用相同案例的無關套件仍會排除在外。這些修正不會變更 MCP 工具參數。
  • get_test_reports_failures — 四種「該修正什麼?」清單:failing_cases(失敗率 ≥50%,至少 3 次執行)、flaky_cases(通過/失敗狀態切換次數最多)、failing_suites(失敗率 ≥30%,至少 5 次執行)、regressed_cases(期間內最近一次失敗,且先前曾通過)。

範例工作流程

  1. create_test_case_folder → 建立資料夾樹狀結構(例如 Smoke → Auth)。在同一個專案中建立測試案例時,使用傳回的資料夾 ID;儀表板的「新增測試案例」表單也提供內嵌建立資料夾的功能。
  2. create_test_case → 定義案例;使用 update_test_case 編輯內容,並使用 bulk_update_test_cases 整理套件成員資格
  3. tools/call 範例:{"name":"update_test_case","arguments":{"id":"00000000-0000-4000-8000-000000000001","title":"Verify login rejection","steps":[{"action":"Submit an incorrect password","expected":"An error is shown; no session is created"}],"status":"active","folder_id":null}}。未提供的優先順序、類型和描述會維持不變。
  4. create_test_suite → 建立測試計畫(子套件為選用,最多巢狀 3 層)
  5. create_test_run → 從父套件建立由人員/儀表板管理的執行 — 自動納入子套件
  6. start_test_plan → 啟動或繼續可安全重試的外部代理程式執行
  7. get_test_run_plan → 擷取所有不可變計畫頁面,然後在所選執行環境中執行
  8. report_test_results → 傳回有數量上限的結果批次;若無法安全繼續執行,請呼叫 abort_test_run
  9. get_test_reports_failures → 執行完成後,詢問「本週該修正什麼?」
  10. get_test_reports_overview → 逐週追蹤通過率趨勢

⚡

團隊擴充服務

  • scale_team — 透過擴充測試人員立即擴大 QA 團隊。系統會自動佈建具備測試人員存取權的帳戶。請指定 team_size(1–10)、location、duration、budget,並可選擇指定 product_url、product_types 和 tech_levels。企業版方案提供此功能。核准前不會向您收費。

範例工作流程

  1. scale_team → 佈建 5 位位於美國、為期 1 個月的資深測試人員
  2. list_team_members → 確認新測試人員已出現在您的團隊中
  3. list_bug_reports → 檢視擴充測試人員提交的報告

📱

行動裝置測試(企業版)

行動裝置資源的範圍限定於專案。在建立、匯入和篩選清單時,請傳入 project_id 或彈性的 project 選取器。自動化會沿用連結應用程式的專案;否則伺服器會使用工作區的預設專案。未篩選的清單仍可能包含尚未遷移的舊版工作區層級資料列。

  • list_mobile_apps — 列出已上傳的應用程式,可選擇使用 project_id / project、platform 和 limit 篩選條件。每個應用程式都會回傳其 project_id,讓代理程式能在同一個專案中執行後續操作。
  • upload_mobile_app — 註冊 APK(Android)或 IPA(iOS)應用程式,以便在實體裝置上測試。需要 name、platform(android / ios)和 file_url;傳入 project_id 可將其指派給目前的專案。iOS 實體裝置執行需要上傳 IPA,接著使用儀表板上傳模擬器 .app 組建以進行錄製。
  • update_mobile_app — 以新版本取代應用程式二進位檔。清除快取的 URL 和模擬器組建,讓所有自動化在下次執行時使用新版本。需要 app_id 和 file_url。選用:version。私人連結登入設定檔需要由其建立者啟用;共用設定檔需要具備同一專案的有效存取權。排程會沿用受保護的自動化預設值。
  • list_mobile_automations — 列出行動自動化,可選擇使用 project_id / project、app_id、status 和 limit 篩選條件。結果包含 project_id 和連結的應用程式 ID。
  • create_mobile_automation — 建立測試指令碼。需要 name、app_id、script_type(YAML 使用 maestro、Appium Python 使用 appium、Appium JavaScript 使用 appium_js)和 script;若應用程式尚未限定於專案,請傳入 project_id。若要使用一個經外部驗證且自成一體的 Maestro YAML 流程,請將 execution_mode 設為 browserstack_maestro;否則預設為 appium_actions。YAML appId 必須符合連結應用程式儲存的套件或 bundle ID;若未儲存任何 ID,第一個通過驗證的原生流程會建立該 ID。佔位應用程式 ID 和混淆的 Android 資源 ID 會遭拒。支援內嵌 runFlow,但 v1 會拒絕外部流程/指令碼檔案參照。原生 Maestro 會保留 inputRandomText 和 copyTextFrom 等命令,以及 ${maestro.copiedText} 和 ${output.value} 等執行階段運算式。同一專案的 credential_id 可提供完整的 inputText 值,值為 ${USERNAME} / ${PASSWORD}。同一專案的 variable_profile_id 可為參照的 ${DATA_*} 值儲存預設值;每個參照的索引鍵都必須存在。資料設定檔僅限非機密的合成資料。
  • import_mobile_script — 匯入現有的行動測試指令碼,並將其轉換為可執行的自動化,同時保留開發人員自己的定位器,讓執行時能精確解析元素。支援的方言:Appium‑Python、WebdriverIO、Maestro(YAML 流程)和 Playwright(行動網頁)。混淆的 Android 資源 ID 佔位符會略過,並在選取器對應 warnings 中回報。僅限 Android 應用程式。需要 name、app_id 和 script;target_devices 和 project_id 為選用。回傳自動化,以及 action_count、偵測到的 dialect 和選取器對應 warnings。
  • run_mobile_automation — 在實體裝置上啟動行動自動化。需要 automation_id;device、os_version、credential_id 和原生 Maestro 的 variable_profile_id 為選用。若要使用資料,省略 variable_profile_id 以沿用自動化預設值,傳入 null 以不使用設定檔,或傳入同一專案的 UUID 以覆寫。每個參照的 ${DATA_*} 索引鍵都必須存在。私人登入設定檔需要由其建立者啟用;共用登入設定檔需要具備同一專案的有效存取權。系統會篩除完全相符的已知憑證值,並根據已保存的文字證據盡力篩除完全相符的資料設定檔值;經轉換、部分、編碼或由應用程式衍生的資料值可能仍會保留。經授權的私人影片/螢幕截圖仍可供存取,且可能顯示受測應用程式呈現的值,因此資料設定檔只能包含非機密的合成值。若無法取得憑證遮蔽脈絡,或無法證明清理作業安全,系統會隱藏含憑證的詳細文字,但仍會保留狀態和可用的視覺證據。診斷資訊需要工作區和專案授權;媒體連結會在五分鐘後失效。
  • list_mobile_runs — 取得已授權的行動執行結果(狀態、裝置、結果摘要、私人影片和螢幕截圖連結、BrowserStack 工作階段、在安全可用時經篩選的含憑證原生 Maestro 記錄和失敗資訊,以及任何自動建立的錯誤)。執行診斷資訊會強制執行工作區成員資格和專案存取權檢查。選用篩選條件:project_id、automation_id、status(queued、running、passed、failed、error、archived)和 limit。預設不包含已封存的執行記錄。
  • create_login_profile — 建立僅供寫入的加密使用者名稱/密碼設定檔,可供 Mobile、Web Automation 和 Exploratory AI 重複使用。需要 project_id、name、username 和 password;選用的 visibility 為 private(預設)或 shared。私人設定檔僅限建立者使用。具備同一專案存取權的有效成員可使用共用設定檔。
  • create_mobile_credential — create_login_profile 的相容性名稱;使用相同輸入和安全界線。
  • list_login_profiles — 僅列出呼叫者可見的設定檔,可選擇指定一個 project_id。回傳非機密中繼資料,包括 visibility;不會列出其他使用者擁有的私人設定檔和無法存取的專案。
  • list_mobile_credentials — list_login_profiles 的相容性名稱;絕不回傳憑證機密。
  • update_login_profile — 重新命名、輪替或變更 visibility。有效的建立者可更新任何欄位。有效的工作區擁有者/管理員可重新命名或輪替共用設定檔,但無法變更其可見性;私人設定檔仍僅限建立者使用。
  • update_mobile_credential — update_login_profile 的相容性名稱;使用相同的擁有權和專案檢查。
  • delete_login_profile — 建立者可軟刪除;僅共用設定檔可由擁有者/管理員復原生命週期。系統會清除未來使用的預設值,但保留稽核記錄。
  • delete_mobile_credential — delete_login_profile 的相容性名稱;保留歷史參照以供稽核。
  • create_mobile_variable_profile — 使用 project_id、name 和 variables 物件(例如 {"DATA_EMAIL":"qa@example.test","DATA_REGION":"ca"})建立可重複使用、限定於專案的合成測試資料。索引鍵必須是大寫的 DATA_* 識別碼。設定檔允許 1–100 個字串,每個值最多 4096 個 UTF-8 位元組,總計最多 65536 個位元組。系統會拒絕保留的憑證/執行階段名稱。絕不可儲存憑證、權杖、生產環境個人資料或其他機密。
  • list_mobile_variable_profiles — 列出一個已授權 project_id 的 Mobile/Both 設定檔及其可讀取的非機密值。適用專案指派規則。現有設定檔和行動建立預設為 both;建立/更新可接受 platform(mobile 或 both)。僅限 Web 的設定檔不會出現在行動目錄存取和執行階段使用中。
  • update_mobile_variable_profile — 重新命名設定檔,或以 id 完整取代其 variables 物件。只有有效的建立者或有效的工作區擁有者/管理員可以更新。
  • delete_mobile_variable_profile — 依據 id 軟刪除設定檔。只有有效的建立者或有效的工作區擁有者/管理員可以刪除;系統會清除自動化預設值,但保留歷史執行參照。
  • list_mobile_schedules、create_mobile_schedule、delete_mobile_schedule — 列出、建立和移除實體裝置排程。排程會沿用所選自動化的專案脈絡、登入設定檔和非機密變數設定檔。私人登入設定檔需要由其建立者啟用;共用登入設定檔需要具備同一專案的有效存取權。非機密變數設定檔沿用其建立者或擁有者/管理員政策。排程變更和刪除僅限有效的排程建立者或有效的工作區擁有者/管理員執行。

Web 測試資料目錄

Automate Web 也提供相同的非機密專案目錄。這些工具需要工作區的 automation 權益和 automations:write API 金鑰範圍,包括讀取操作。不需要 Mobile 存取權。這些值不會與加密登入設定檔共用記錄。目前目錄支援尚未將設定檔值綁定或注入 Web 執行。

  • create_web_variable_profile:必要項目 project_id、name、variables;選用項目 platform(web 或 both),預設為 web。使用與行動版相同的 DATA_* 限制。回傳設定檔,包括其 platform。
  • list_web_variable_profiles:必要項目 project_id;回傳僅包含 Web/Both 記錄的 { profiles: [...] }。
  • get_web_variable_profile:必要項目 id;回傳可存取的 Web/Both 設定檔及其合成值。
  • update_web_variable_profile:必要項目 id;選用項目 name、完整取代的 variables,或 platform(web 或 both)。需要有效的建立者或有效的工作區擁有者/管理員。若要將 Both 縮限為 Mobile,請使用具備 Mobile 存取權的 Mobile 目錄。
  • delete_web_variable_profile:必要項目 id;管理權限相同。執行軟刪除並回傳 { deleted: true },同時保留稽核記錄。

範例:使用 list_projects 解析專案,使用 {"project_id":"PROJECT_UUID","name":"Canadian checkout","platform":"both","variables":{"DATA_REGION":"CA"}} 呼叫 create_web_variable_profile,然後使用 list_web_variable_profiles 驗證。無法存取的專案/設定檔會在不洩露其值的情況下失敗;無效資料或專案範圍內重複的名稱會遭拒。

範例工作流程 — Android

  1. list_projects → 解析目標 project_id
  2. upload_mobile_app → 在該專案中註冊 APK
  3. 在儀表板中安全錄製,或使用 import_mobile_script / create_mobile_automation
  4. list_mobile_automations → 在同一專案中解析自動化
  5. run_mobile_automation → 在實體裝置上觸發自動化,可選擇使用登入設定檔
  6. list_mobile_runs → 檢查狀態、結果摘要、私人視覺連結和 BrowserStack 工作階段中繼資料
  7. 失敗時會自動建立錯誤報告,並附上失敗快照和步驟明細

範例工作流程 — iOS

  1. upload_mobile_app → 使用 project_id 註冊 IPA,以便在實體裝置上執行
  2. 在應用程式詳細資料頁面上傳模擬器 .app 組建(用於錄製)
  3. 在瀏覽器中錄製測試 → 擷取模擬器上的操作
  4. run_mobile_automation → 在 iPhone 上觸發已儲存的自動化(使用 IPA)
  5. update_mobile_app → 準備就緒時以新版本取代 IPA

範例工作流程 — 原生 Maestro

  1. upload_mobile_app → 在目標專案中註冊 APK 或 IPA
  2. create_mobile_credential → 可選擇建立同一專案的設定檔,以供已驗證的流程使用
  3. create_mobile_variable_profile → 可選擇建立流程使用的同一專案合成 DATA_* 值
  4. create_mobile_automation → 傳入一個已知可運作的 YAML 流程,其中包含連結應用程式的確切套件/bundle appId、script_type: maestro 和 execution_mode: browserstack_maestro。登入使用 ${USERNAME} / ${PASSWORD},合成輸入使用 ${DATA_EMAIL} 樣式的佔位符;傳入設定檔 ID 以儲存預設值。
  5. run_mobile_automation → 選取相容裝置,並可選擇覆寫登入或變數設定檔。省略變數設定檔以沿用預設值,或傳入 null 以在單次執行中停用。
  6. list_mobile_runs → 檢視已授權的通過/失敗摘要、私人影片/螢幕截圖、篩選後的記錄、實際步驟名稱、詳細失敗資訊和工作階段中繼資料。若無法確認含憑證執行的安全清理方式,系統會隱藏詳細文字,但仍會保留狀態和可用的視覺證據。

**使用 AI 精修:**允許清單中的 Beta 版可透過儀表板和 REST 精修端點使用。目前公開目錄尚未提供 Refine MCP 工具。

✅

合規與證據(企業版)

  • collect_compliance_evidence — 從已連線的服務(Cloudflare、GitHub、Sentry、Supabase、Railway)觸發自動化證據收集。回傳執行 ID。收集 SSL/TLS 設定、WAF 狀態、Dependabot 警示、錯誤趨勢、部署歷史等資訊。
  • check_config_drift — 檢查所有已連線服務的安全設定是否偏離基準(SSL 模式、TLS 版本、HSTS、WAF 規則、安全標頭)。
  • generate_access_review — 建立季度存取權限審查報告。稽核團隊成員、角色、MFA 狀態、API 金鑰使用情況,並產生建議(例如,撤銷未使用的金鑰)。
  • get_security_events — 查詢跨服務安全事件時間軸。依來源(cloudflare、sentry、github)和嚴重程度(critical、high、medium、low、info)篩選。事件會在各服務間自動關聯。

合規涵蓋範圍

這些工具有助於符合 SOC2(CC4.1、CC6.1、CC7.2、CC8.1)、ISO 27001(A.5.18、A.8.8、A.8.9、A.8.15-16、A.8.29)和 GDPR(Art. 5、25、32、33)的合規要求。

相容的用戶端

bugAgent Agent 可搭配任何支援 Model Context Protocol 的用戶端。以下是熱門用戶端的設定指南:

開啟 Settings → Developer → Edit Config,然後新增:

{
  "mcpServers": {
    "bugagent": {
      "type": "http",
      "url": "https://mcp.bugagent.com/mcp",
      "headers": {
        "Authorization": "Bearer ba_live_YOUR_KEY_HERE"
      }
    }
  }
}

儲存後重新啟動 Claude Desktop。

✳️

Cursor

開啟 Settings → MCP Servers → Add Server,或在專案根目錄編輯 .cursor/mcp.json:

{
  "mcpServers": {
    "bugagent": {
      "type": "http",
      "url": "https://mcp.bugagent.com/mcp",
      "headers": {
        "Authorization": "Bearer ba_live_YOUR_KEY_HERE"
      }
    }
  }
}

🌊

Windsurf

開啟 Settings → MCP → Add Server,或編輯 MCP 設定檔:

{
  "mcpServers": {
    "bugagent": {
      "type": "http",
      "url": "https://mcp.bugagent.com/mcp",
      "headers": {
        "Authorization": "Bearer ba_live_YOUR_KEY_HERE"
      }
    }
  }
}

直接從終端機新增 bugAgent Agent:

claude mcp add --transport http bugagent https://mcp.bugagent.com/mcp --header "Authorization: Bearer ba_live_YOUR_KEY_HERE"

這會直接連線至託管的 Streamable HTTP 伺服器。

對於需要 stdio 的用戶端,請使用已發布的 bugagent-mcp 橋接程式:

  • 命令:npx
  • 命令列:npx -y bugagent-mcp
  • 參數:["-y", "bugagent-mcp"]
  • 環境變數:BUGAGENT_API_KEY

取得協助

需要協助嗎?我們隨時為您提供支援。

Discord 社群

加入我們的 Discord,即時取得支援並參與社群討論。

電子郵件支援

support@bugagent.com — 我們通常會在 24 小時內回覆。