Connect Busymate DevTools and your agent gets 48 tools, among them download_snapshot, export_har, get_advisor_finding. It answers at https://mcp.busymate.dev over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 10 September 2026; the last check, on 19 October 2026, succeeded.
Capture, inspect & debug HTTPS traffic across iOS, Android, browsers & backends — 304 MCP tools.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
download_snapshot | Get a 5-minute signed download URL for a snapshot file (name from list_snapshots). Inputs: name |
export_har | Export captured entries as a HAR 1.2 log. Optionally scope by device, host, and date range. Inputs: device_uuid, deviceName, host, since, before, limit |
get_advisor_finding | 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-investigati Inputs: fingerprint |
get_audit_event | 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` Inputs: id, at |
get_block_rules_device | 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 Inputs: device_uuid, deviceName |
get_device | 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 inst Inputs: device_uuid, deviceName, pac_port |
get_device_egress_fail_posture | 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 `egres Inputs: device_uuid, deviceName |
get_device_egress_status | 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-sou Inputs: device_uuid, deviceName |
get_device_health | 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') + Inputs: device_uuid, deviceName |
get_device_settings | Read settings_device for one device (device_uuid or deviceName). Inputs: device_uuid, deviceName |
get_device_status | 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 Inputs: device_uuid, deviceName |
get_entry | 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 explicitl Inputs: entry_id, request_id, max_body_chars |
get_entry_count | Count entries in a workspace (workspace_id or workspace_slug) with optional device/host/method/status/search filters. Inputs: workspace_id, workspace_slug, device_uuids, hosts, methods, status_class |
get_entry_counts_freshness | 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 sna |
get_my_account | 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 e |
get_push_response | 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 Inputs: correlation_id |
get_screen_share_recording | 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 b Inputs: id, with_url, all |
get_service_group | Get one service group by id or name. Inputs: id, name |
get_stats | 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); stat |
get_status | 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 |
get_subscription | 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 `a Inputs: all_users |
get_todo | 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 }. Inputs: id |
get_usage | 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` (d Inputs: metric, since_days, all_users, user_id |
get_workspace | Get one workspace by id or slug. Inputs: id, slug |
inspect_requests | 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 traff Inputs: host, path_contains, method, status, device_uuid, deviceName |
list_advisor_findings | 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_ Inputs: severity, kind, q, limit, before |
list_audit_events | 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 DER Inputs: all, since, until, surface, status, actor_id |
list_breakpoint_events | 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 th Inputs: all, include_resumed, limit |
list_device_audit_modes | 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): au |
list_device_events | 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). Inputs: device_uuid, deviceName, category, action, outcome, reason |
list_device_service_groups | 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`, `li Inputs: service_group_id, device_uuid, limit |
list_devices | 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-opera Inputs: all, owner_email, limit, cursor, order, fields |
list_entries | 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 ( Inputs: device_uuid, deviceName, host, host_contains, method, status |
list_invoices | 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 ope Inputs: limit, all_users |
list_issue_reports | 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 Inputs: all, status, limit |
list_push_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-noti Inputs: device_uuid, deviceName |
list_screen_share_recordings | 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 Inputs: device_uuid, session_id, all, limit |
list_service_groups | 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 | List snapshot files in the snapshots storage bucket. |
list_tabs | List a workspace's tabs (workspace_id or workspace_slug). Inputs: workspace_id, workspace_slug |
list_tags, list_todos, list_wipe_jobs, list_workspaces, search_entries, share_advisor_finding, summarize_device_traffic, test_pac_connection
Every block below points at https://mcp.busymate.dev. Pick your client and copy.
claude mcp add --transport http busymate-devtools https://mcp.busymate.dev
{
"mcpServers": {
"busymate-devtools": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.busymate.dev"]
}
}
}{
"mcpServers": {
"busymate-devtools": {
"url": "https://mcp.busymate.dev"
}
}
}{
"servers": {
"busymate-devtools": {
"type": "http",
"url": "https://mcp.busymate.dev"
}
}
}{
"context_servers": {
"busymate-devtools": {
"url": "https://mcp.busymate.dev"
}
}
}{
"mcpServers": {
"busymate-devtools": {
"serverUrl": "https://mcp.busymate.dev"
}
}
}{
"mcpServers": {
"busymate-devtools": {
"url": "https://mcp.busymate.dev"
}
}
}name: Busymate DevTools
version: 0.0.1
schema: v1
mcpServers:
- name: Busymate DevTools
type: streamable-http
url: https://mcp.busymate.dev{
"mcpServers": {
"busymate-devtools": {
"httpUrl": "https://mcp.busymate.dev"
}
}
}{
"mcpServers": {
"busymate-devtools": {
"type": "http",
"url": "https://mcp.busymate.dev"
}
}
}{
"mcpServers": {
"busymate-devtools": {
"url": "https://mcp.busymate.dev"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.busymate.dev&type=streamable_http&id=busymate-devtools&name=Busymate%20DevTools
It answered our last check on 19 October 2026 in 710 ms. Over 6 checks since 10 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by busymate.dev and served from mcp.busymate.dev, the vendor's own domain: https://mcp.busymate.dev.
48, as returned by the server's own tools/list on 11 September 2026: download_snapshot, export_har, get_advisor_finding, get_audit_event, get_block_rules_device, get_device, get_device_egress_fail_posture, get_device_egress_status, and 40 more.
It answered our last check on 19 October 2026 in 710 ms. Over 6 checks since 10 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.busymate.dev. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: dev.busymate. Endpoint host: mcp.busymate.dev. ARD identifier: urn:air:dev.busymate:mcp:busymate-devtools.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.