MCP server
Busymate DevTools Official
dev.busymate/busymate-devtools
Checked 25 Oct 2026, 20:29 UTC · Connected to it and listed its tools
Capture, inspect & debug HTTPS traffic across iOS, Android, browsers & backends — 304 MCP tools.
Working at last checkVerified publisher: busymate.devAbout 16,409 tokens per request once connected49 tools
https://mcp.busymate.dev
At a glance
- Type
- MCP server
- Publisher
- busymate.dev (verified by the MCP Registry)
- Status
- Working at last check
- Tools
- 49
- Token cost
- About 16,409 tokens per request
- Sets up in
- Claude Code, Claude Desktop, Codex, Gemini CLI, Cursor, VS Code, Antigravity, ChatGPT, OpenAI API, Grok
- Last checked
- 25 Oct 2026, 20:29 UTC
Connect it to your agent
Opens the app, which shows the server and asks you to confirm. For other apps, copy the setup below.
Claude Code
claude mcp add --transport http busymate-devtools https://mcp.busymate.dev
Claude Desktop
Settings → Connectors → Add custom connector, and paste the URL.
Codex (config.toml)
[mcp_servers.busymate-devtools] url = "https://mcp.busymate.dev"
Gemini CLI
{"mcpServers":{"busymate-devtools":{"httpUrl":"https://mcp.busymate.dev"}}}
Cursor
{"mcpServers":{"busymate-devtools":{"url":"https://mcp.busymate.dev"}}}
VS Code
{"servers":{"busymate-devtools":{"type":"http","url":"https://mcp.busymate.dev"}}}
Antigravity
agy mcp add busymate-devtools https://mcp.busymate.dev
ChatGPT
Settings → Apps & Connectors → Advanced settings: turn on Developer mode, then Create a connector and paste the URL. Which plans can do this varies.
OpenAI API (Responses tools)
{"type":"mcp","server_label":"busymate-devtools","server_url":"https://mcp.busymate.dev","require_approval":"always"}
Grok (xAI API tools)
{"type":"mcp","server_label":"busymate-devtools","server_url":"https://mcp.busymate.dev"}
Tools
download_snapshot~72 tokens
Get a 5-minute signed download URL for a snapshot file (name from list_snapshots).export_har~107 tokens
Export captured entries as a HAR 1.2 log. Optionally scope by device, host, and date range.get_advisor_finding~211 tokens
Get ONE advisor finding in FULL by its `fingerprint` (from list_advisor_findings) — with its up-to-20 resolved (already-redacted) audit EVENTS, the SCOPED /audit deep link, and the /advisor permalink, so you can act with zero re-investigation. Returns { found, finding, events:[{id,at,surface,action,get_audit_event~271 tokens
Get ONE audit-trail row in FULL by its `id` (from list_audit_events) — including the fields the list omits: the REDACTED `detail` (old→new diffs for allowlisted keys, redacted at write time — never raw args/secrets) and `statement_excerpt` (the left-400-char SQL for a direct-PG write). Owner-scoped:get_block_rules_device~215 tokens
Read what ONE device ENFORCES — the EFFECTIVE 4-tier block-rule union (global ++ service ++ user ++ device, de-duped by id, device wins then user then service then global) plus the SERVICE list (the applied service groups' rules, flattened in service-group name order), the device owner's USER list,get_device~706 tokens
Get one device row by uuid, name, OR its PAC PORT — the DIRECT resolver for a KNOWN device: when you already hold a device uuid/name (from traffic rows, audit events, another tool's result) or a per-device PAC/proxy endpoint, call this instead of browsing or paging list_devices. `pac_port` accepts Eget_device_egress_fail_posture~389 tokens
Read a device's PAC egress FAIL POSTURE (#1657) — what the proxy does when the device is handed the #76 PAC DIRECT fallback (its PAC-fetch source IP is not yet in the CONNECT-source admission allowlist, routine on CGNAT). The setting `egressFailPosture` ∈ open | closed | auto rides settings_{global,get_device_egress_status~348 tokens
Read a device's egress-IP set (#1432) — the device→proxy INGRESS / CONNECT-source ADMISSION IPs the proxy allowlists for it (the addresses it will ACCEPT this device's CONNECTs FROM), PLUS any manual dev overrides. These are the CONNECT-source ADMISSION IPs, NOT the target-visible egress ORIGIN theget_device_health~625 tokens
THE ONE QUERY (#1157/#1160): the latest capture-health projection for ONE device — one `device_health` row, no scan, no on-device access needed. Answers "is the TLS-intercept engine armed, and if not, WHY": engine_state ('armed'|'inert') + engine_reason (e.g. no_ca_key) + state_established_at (whenget_device_settings~72 tokens
Read settings_device for one device (device_uuid or deviceName).get_device_status~178 tokens
Get a device's live status: `online` is DERIVED truth (#776 — devices.last_seen_at within 90s, 150s for farm hosts; the same derivation as every other surface, so it can't latch stale), plus the device_status row (last_heartbeat_at, ip, vpn_state, source, reported_online = the raw stored flag, diagnget_entry~564 tokens
Get ONE captured entry's FULL detail by the id you already hold — method, URL, host, path, status, timing (duration_ms) + sizes, the request AND response HEADERS, and the request AND response BODIES (size-capped, truncation stated explicitly). The ID-SCOPED twin of inspect_requests (which is per-HOSget_entry_count~174 tokens
Count entries in a workspace (workspace_id or workspace_slug) with optional device/host/method/status/search filters.get_entry_counts_freshness~246 tokens
The ONE freshness surface for every dashboard counter (#2147): mode 'live' — entry_dh_counts is a LEDGER maintained in the write transaction of every insert / delete / wipe / partition drop and broadcast as COUNTS_DELTA (never an hourly snapshot); ledger_since; reconciled_at + drift_rows / drift_absget_my_account~341 tokens
YOUR account at a glance — ONE self-scoped read returning the calling account's profile (name, display_name, email, role, sign-in providers, user_id, created_at), your per-user default connection type (own value + the global default + the effective fold), your linked Telegram accounts, the devices Yget_product_pricing~134 tokens
Return the canonical Busymate DevTools plan prices and cloud phone/browser rental rates, with numeric amounts, USD currency, billing periods and https://busymate.dev/pricing as the source. Check draft, publicationStatus and purchasable: draft figures are proposals awaiting approval, never live offerget_push_response~232 tokens
Read back a device's answer to an actionable push (#75) by the correlation_id returned from send_push. Returns the push_responses row { correlation_id, device_uuid, action (accept|reject|skip), context, responded_at, action_intent } or null if the user hasn't responded yet. action_intent (or null) cget_screen_share_recording~264 tokens
Fetch ONE saved screen-share recording (#1916) by id — the metadata row plus, with `with_url:true`, a SHORT-TTL (600s) signed playback URL + a download URL for the mp4 (H.264 — plays in any <video> element / on iPhone). YOUR OWN recording by default; `all:true` (devices:view operators, dispatch-poliget_service_group~59 tokens
Get one service group by id or name.get_stats~165 tokens
Return the live fleet stats aggregate (get_stats_internal RPC). total_entries is the counters LEDGER (Σ entry_dh_counts.n — never an ANALYZE estimate) with total_entries_source ('ledger'|'snapshot') and total_entries_as_of (its stamp); status_class_mix / source_mix / top_domains / top_devices descriget_status~315 tokens
Return the latest infra status snapshot (service_status) MERGED with the Edge tier's self-reported deployed build. The VPS posts the StatusBody (overall, host{cpu,load,mem,uptime}, components[], and — when it supplies one — builds[]); this RECONCILES that builds[] against the Edge tier's own numbersget_subscription~173 tokens
Return the caller's OWN Stripe subscription(s) — status/price/product/quantity/period/trial/cancel-at-period-end (from stripe_subscriptions, owner-scoped to the caller's OAuth sub). A billing:view operator (admin via grants_all) may pass `all_users:true` for the whole fleet. Returns { count, subscriget_todo~103 tokens
Get ONE of YOUR to-dos by id — its full row. Owner-scoped: an id you don't own returns not-found (never reveals another user's to-do). Returns { todo }.get_usage~275 tokens
Return the caller's OWN metered usage rollup (metric `captured_entries` = count of captured entries per device per period; from stripe_usage_events, owner-scoped to the caller's OAuth sub) aggregated by period over a window. `since_days` (default 30, max 365), `metric` (default captured_entries). Aget_workspace~57 tokens
Get one workspace by id or slug.inspect_requests~525 tokens
Deep-inspect FULL captured request/response detail for ONE host — method, URL, request + response HEADERS, and request + response BODIES (size-capped). The tool for reverse-engineering how a real app/API works from its actual captured traffic (auth flows, required headers, payload shapes) and for bulist_advisor_findings~350 tokens
Browse the ADVISOR CENTER findings (public.advisor_findings) — the advisor-monitor's deduped audit/health findings you see on the dashboard /advisor view. Filter by `severity` (info|warning|alert), `kind` (a taxonomy slug like audit.denied_spike / advisor.security), and `q` (free-text over the findilist_audit_events~1176 tokens
Read the platform AUDIT TRAIL (public.audit_log) — the unified who-did-what-when-how ledger across every surface (mcp / busybro / dashboard / rest / db / auth / proxy / daemon / cron / ios / cdp / farm / edge:<fn> — #533: the surface is DERIVED at the DB trigger tier by HOW a write ARRIVED — a direclist_breakpoint_events~434 tokens
List HELD (paused) breakpoint exchanges — the READ side of the breakpoint-continue flow (public.breakpoint_events; a row with resumed_at NULL is a request/response the proxy is holding RIGHT NOW, waiting for breakpoint_continue — feed it the returned request_id). YOUR OWN devices' events by defaultlist_device_audit_modes~182 tokens
Every device with AUDIT-mode telemetry currently armed — device_uuid + name, enabled, expires_at + expires_in, level, categories, who armed it (set_by_label) and when (set_at). The 'standing cost is never invisible' list (#1160 spec §5): audit mode is per-device + TTL-expiring, and this is where youlist_device_events~1452 tokens
The MULTI-PRODUCER device TELEMETRY event stream (#1160/#1208) — every DECISION and STATE TRANSITION reported about the capture pipeline by the iOS app OR by the PAC/proxy server (public.device_events, 14-day retention, weekly-partitioned). iOS kinds — this list is what the app ACTUALLY emits, correlist_device_service_groups~227 tokens
List the device↔service-group membership edges (public.device_service_groups) — the delegation boundary: which devices belong to which service group. Resolves device_name + service_group_name. Filters: `service_group_id`, `device_uuid`, `limit` (default 500, cap 1000). This is the ADMIN-CONTROLLED alist_devices~1039 tokens
List devices, ONE PAGE at a time — YOUR OWN by default (owner-scoped to the calling account: the same reach the dashboard gives you), or the WHOLE fleet with `all:true` (devices:view operators only; re-verified server-side — for a non-operator `all` is rejected, never silently widened). PAGINATION (list_entries~774 tokens
LIST the newest captured traffic entries as SLIM feed rows (id, ts, device, kind, request_id, host, path, method, status, contentType, url — NO bodies/headers) — the dashboard main live feed's MCP-parity read (#778). No search term needed (unlike search_entries' required `q`). FULL /feed filter setlist_invoices~180 tokens
List the caller's OWN Stripe invoices — status/amounts (minor units)/currency/hosted_invoice_url/period (from stripe_invoices, owner-scoped to the caller's OAuth sub), newest first. Optional `limit` (default 50, max 200). A billing:view operator may pass `all_users:true` for the fleet. Returns { coulist_issue_reports~407 tokens
List issue reports from the one-tap reporter (public.issue_reports — the durable rows behind report_issue + the dashboard ⌘⇧1 dialog). YOUR OWN reports by default (owner-scoped to the calling account — the same reach the RLS gives you), or EVERY reporter's with `all:true` (audit:view operators only;list_push_tokens~152 tokens
List registered device push tokens (masked), PLATFORM-ROUTED (#1542): each `device_push_tokens` row carries a `platform` discriminator — `ios` = an APNs device token (push-notify's APNs leg), `android` = an FCM registration token (push-notify's FCM HTTP v1 leg). The column defaults `ios`, so legacylist_screen_share_recordings~385 tokens
List saved screen-share RECORDINGS (#1916) — operator-captured mp4s of live share streams (the dashboard viewer's Record control), saved for later reference in public.screen_share_recordings. YOUR OWN recordings by default (owner-scoped to the calling account — the same reach the row RLS gives the dlist_service_groups~78 tokens
List every service group (full rows incl. ssl_proxy_domains) with each group's primary_agent + ordered agents[] from the service_group_agents join.list_snapshots~50 tokens
List snapshot files in the snapshots storage bucket.list_tabs~69 tokens
List a workspace's tabs (workspace_id or workspace_slug).list_tags~46 tokens
List every tag (id, name, color, patterns).list_todos~370 tokens
List YOUR to-dos from the /todo app (public.todos) — the shared "what to do / what's done" list you + the user both maintain. Owner-scoped to the calling account. Filters: `status` (open|in_progress|done|blocked), `priority` (low|medium|high|urgent), `source` (user|claude|ask), `tag` (one tag to matlist_wipe_jobs~331 tokens
List the workspace's WIPE JOBS (public.entries_wipe_jobs, #2147) — the ONE source of truth for wipe progress, the same rows the dashboard's wipe banner renders. Each job: the EXACT device set, the narrowing predicate (hosts/methods/status_class/search_q/origin), total (from the live entry_dh_countslist_workspaces~166 tokens
List workspaces. YOUR OWN by default (owner-scoped to the caller — the reach the dashboard RLS owner arm gives you); `all:true` lists EVERY account's workspaces and needs the workspaces.view capability (re-verified in-handler, fail-closed). Omits archived unless include_archived.search_entries~410 tokens
LOCATE captured entries by ANY keyword `q` — matched against the host/url/path AND the DECRYPTED request/response DATA: the request+response HEADERS and the request+response BODY text (#1577). Case-insensitive substring. Body/header matching covers full headers + the head of each body (first ~4KB reshare_advisor_finding~260 tokens
Build a SHAREABLE package for ONE advisor finding — the max-context markdown + flat LLM prose + the permalink, so it can be dropped into a doc/chat/issue with full context (Finding · Analysis · Evidence · Deep links · Repro · Meta). Returns { format, permalink (https://dash.busymate.dev/advisor?sev&summarize_device_traffic~429 tokens
BOUNDED traffic aggregation for ONE device — the FIRST tool to call to report what a device is doing, find the busy/flooding host, or pick a host to clean up. REQUIRES a device (`device_uuid` or `deviceName`) — a host alone is NOT enough: if you don't know which device, ask the user (or check list_dtest_pac_connection~621 tokens
PROVE whether PAC capture actually works for ONE device — the "is it really working?" answer, not "does it look configured". Runs 8 independent checks and returns a per-check verdict with a specific human fix: (1) connection mode — is the device even on `pac` (a `vpn`/`off` device is SAID SO plainly
Browse
Related MCP servers
- Hookden
Webhook capture bins for agents: get a URL, wait for webhooks, set replies, verify signatures. - Webhook Studio
Keyless webhook endpoints: capture, wait, replay, forward, and generate types from real traffic. - Pipehero
Debug webhooks from your AI agent: inspect and replay captured webhooks on localhost. - Ask AI
Ask questions across Shopify, Klaviyo, GA4 and 20+ e-commerce sources in plain English. - IA-QA — 130+ QA & Dev Tools for AI Agents
130+ QA & dev tools for AI agents: prompt injection, RAG testing, VLM eval, guardrails. Free. - Strale - 290+ API capabilities for AI agents
290+ quality-scored API capabilities for AI agents across 27 countries via MCP. - Openhook
Webhook, email and DNS inboxes for AI agents to capture callbacks and test integrations. - Cleanor
Zero-auth MCP: image optimize, cited storage/format data, and dev utilities LLMs get wrong.
Badge for your README
[](https://aptlynx.net/servers/dev.busymate/busymate-devtools)
Listing text is written by the maker; AptLynx lists tools and does not vouch for them. Find another tool · Browse by topic · For agents