Connect your AI agent to your traffic
Point Claude or Cursor at mcp.busymate.dev. They see the same live feed you do.
# Claude Code — add the server, then authorize in your browser:
claude mcp add --transport http busymate-devtools https://mcp.busymate.dev{
"mcpServers": {
"busymate-devtools": {
"url": "https://mcp.busymate.dev"
}
}
}The same
Role-scoped, confirm-gated, audit-logged — everything the dashboard can do.
Full dashboard parity
Every read and write the dashboard performs has a matching tool. If a human can do it in the UI, an agent can do it over MCP — parity is a standing rule here, not a roadmap item.
Real superpowers, not CRUD
Remote Chrome control. Android and iOS farm automation with live mirroring. TestFlight beta admin. Billing. A queryable audit log. These aren't wrappers around a database — they're the platform's actual capabilities.
OAuth 2.1, done right
Dynamic client registration plus PKCE — no pasted API keys. The one token you get back also authenticates REST, WebSockets and Edge Functions: one identity across every surface.
Safe enough for production
Every call is scoped to the caller's role by the database itself. Destructive tools demand an explicit confirm. And everything — every tool, every agent — lands in the audit trail.
Try it before you wire it
The dashboard's in-app MCP console fires real tool calls with your own logged-in token and shows live responses. No Postman, no mock server — the actual API, right there in the app.
URL to tool call in
The whole handshake is standard: Streamable HTTP, OAuth 2.1, JSON-RPC 2.0. Nothing proprietary to learn.
- 01
Add one URL
Point your client at mcp.busymate.dev. Discovery — initialize, tools/list, ping — answers before you even authenticate, so clients and registries can see the surface immediately.
- 02
Authorize in the browser
On the first real call your client registers itself (Dynamic Client Registration) and opens Busymate's sign-in. PKCE protects the exchange — no API keys, no secrets in config files.
- 03
Call tools
tools/call is JSON-RPC 2.0 over Streamable HTTP. Every call runs as you: the database checks your role on every row it returns.
- 04
Confirm the dangerous ones
Reads just run. Writes that change or destroy state require an explicit confirm parameter, and raw-power executors are admin-only — an agent can't wipe what you wouldn't.
POST https://mcp.busymate.dev # JSON-RPC 2.0, Authorization: Bearer <token>
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_entries",
"arguments": { "query": "checkout", "limit": 20 }
}
}A map of the
The complete surface, straight from the registry: 55 families covering every tool, each with its full list of real tool names. Every read and write the dashboard performs is in here.
list_devices · get_device · get_device_statusDevices & fleet — list, inspect, rename, transfer and unpair devices; flip capture on and off; test PAC connectivity; resume held breakpoints and resend requests. Destructive writes require confirm.
All 15 tools
list_devicesget_deviceget_device_statusrename_devicedelete_devicetransfer_device_ownershipunpair_devicevpn_on_devicevpn_off_devicetest_pac_connectionopen_sheet_deviceenroll_device_captureresend_requestbreakpoint_continuelist_breakpoint_events
get_device_health · list_device_events · set_device_audit_modeDevice observability — the one-query capture-health read (engine, CA trust, decrypt reasons), the filterable per-device telemetry stream, and the opt-in TTL-expiring verbose audit tier.
All 4 tools
get_device_healthlist_device_eventsset_device_audit_modelist_device_audit_modes
request_screen_share · stop_screen_share · list_screen_share_recordingsCustomer screen share — request a consent-prompted live view of a device, end it from either side, and list, replay or delete the saved recordings.
All 5 tools
request_screen_sharestop_screen_sharelist_screen_share_recordingsget_screen_share_recordingdelete_screen_share_recording
search_entries · list_entries · get_entryCaptured traffic — search, filter, tag and inspect full request/response pairs, summarize a device's traffic profile, export HAR, and delete or wipe (confirm-gated, irreversible).
All 13 tools
search_entrieslist_entriesget_entryget_entry_countget_entry_counts_freshnessinspect_requestssummarize_device_traffictag_entryuntag_entryexport_hardelete_entrieswipe_entrieslist_wipe_jobs
get_scripts_global · get_scripts_device · set_scripts_globalScripting engine — sandboxed JavaScript that rewrites or synthesizes matching traffic inline, at global, service, user and device tiers, with a no-write dry run. Writes are admin-only: this is arbitrary-code power.
All 9 tools
get_scripts_globalget_scripts_deviceset_scripts_globalset_scripts_deviceset_scripts_userset_scripts_servicedry_run_scriptget_script_engine_enabledset_script_engine_enabled
get_block_rules_global · get_block_rules_device · set_block_rules_globalBlock rules & breakpoints — auto-block or mock requests by method and host/path wildcard, and set the patterns that pause matching exchanges for inspection. Writes alter live traffic, so they require confirm.
All 10 tools
get_block_rules_globalget_block_rules_deviceset_block_rules_globalset_block_rules_deviceset_block_rules_userset_block_rules_serviceset_breakpoint_patterns_globalset_breakpoint_patterns_deviceset_breakpoint_patterns_userset_breakpoint_patterns_service
get_inspect_all_requests · set_inspect_all_requests · get_mitm_all_hostsCapture switches — inspect-all-requests, decrypt-all-hosts MITM mode, and the paused-domains list, each a read/write pair.
All 6 tools
get_inspect_all_requestsset_inspect_all_requestsget_mitm_all_hostsset_mitm_all_hostsget_paused_domainsset_paused_domains
get_global_settings · get_device_settings · set_global_connection_typeSettings — the effective global and per-device settings documents, connection type at global, user and device tiers, and the iOS Live Activity pill text.
All 6 tools
get_global_settingsget_device_settingsset_global_connection_typeset_device_connection_typeset_user_connection_typeset_live_activity_message
get_env_global · get_env_device · set_env_var_globalEnvironment variables — read, set, delete and bulk-import the global and per-device variable bags scripts and rules interpolate.
All 8 tools
get_env_globalget_env_deviceset_env_var_globalset_env_var_devicedelete_env_var_globaldelete_env_var_deviceimport_env_globalimport_env_device
list_proxies · set_device_external_proxy · get_device_egress_statusEgress control — the upstream proxy pool (credentials redacted), per-device external-proxy routing, live egress-IP status, TTL'd manual overrides and the fail posture.
All 7 tools
list_proxiesset_device_external_proxyget_device_egress_statusset_manual_egress_ipclear_manual_egress_ipget_device_egress_fail_postureset_device_egress_fail_posture
browser_targets · browser_open · browser_evalRemote browsers — open pages, evaluate scripts, screenshot and snapshot a connected Chrome, behind a per-device opt-in. Raw Chrome DevTools Protocol passthrough is admin-only.
All 9 tools
browser_targetsbrowser_openbrowser_evalbrowser_screenshotbrowser_snapshotbrowser_cdpset_device_cdp_controlset_device_capture_enabledset_device_autostart
list_browser_profiles · get_browser_profile · upsert_browser_profileBrowser profiles — CRUD over custom Chromium-family launch profiles authored in the dashboard and synced to the bmc CLI.
All 4 tools
list_browser_profilesget_browser_profileupsert_browser_profiledelete_browser_profile
list_cdp_instances · start_device · stop_deviceCDP daemon — start, stop and provision named browser-capture devices on a remote bmc machine, read daemon status and logs, and hot-update the daemon without losing capture.
All 9 tools
list_cdp_instancesstart_devicestop_devicecreate_deviceupdate_cdp_hostget_cdp_daemon_statusget_cdp_logsrestart_cdp_daemonupdate_cdp_daemon
provision_farm_phone · list_farm_devices · farm_list_phonesAndroid farm — provision phones as child devices, list the fleet, screenshot, dump UI hierarchy, and read capture status, automations, recordings, schedules and daemon logs.
All 10 tools
provision_farm_phonelist_farm_devicesfarm_list_phonesfarm_capture_statusfarm_screenshotfarm_dump_uifarm_list_automationsfarm_list_recordingsfarm_list_schedulesget_farm_logs
farm_mobile_list_devices · farm_mobile_list_apps · farm_mobile_list_elementsFarm phone driving — tap, swipe, type, press buttons, launch and terminate apps, screenshot, record and read crash logs on real farm phones; app install/uninstall is admin-only.
All 24 tools
farm_mobile_list_devicesfarm_mobile_list_appsfarm_mobile_list_elementsfarm_mobile_get_screen_sizefarm_mobile_get_orientationfarm_mobile_screenshotfarm_mobile_list_crashesfarm_mobile_get_crashfarm_mobile_tapfarm_mobile_double_tapfarm_mobile_long_pressfarm_mobile_swipefarm_mobile_typefarm_mobile_press_buttonfarm_mobile_open_urlfarm_mobile_launch_appfarm_mobile_terminate_appfarm_mobile_set_orientationfarm_mobile_start_recordingfarm_mobile_stop_recordingfarm_mobile_install_appfarm_mobile_uninstall_appfarm_mobile_install_from_appstorefarm_device_logs
farm_find_and_tap · farm_set_setting · farm_set_wifiFarm actions — find-and-tap by content, change settings and Wi-Fi, manage app lifecycle, grant permissions, pull files, and run, replay or schedule recorded automations (confirm-gated).
All 11 tools
farm_find_and_tapfarm_set_settingfarm_set_wififarm_app_lifecyclefarm_grant_permissionfarm_uninstall_appfarm_pull_filefarm_run_automationfarm_replay_recordingfarm_schedulefarm_remove_schedule
farm_run_shell · farm_run_adb · farm_install_appFarm raw power — shell, adb, arbitrary input, proxy and airplane toggles, reboot and file push. Admin-only, confirm-gated, and excluded from the free-text assistant entirely.
All 8 tools
farm_run_shellfarm_run_adbfarm_install_appfarm_inputfarm_set_proxyfarm_set_airplanefarm_rebootfarm_push_file
provision_ios_phone · list_ios_phones · ios_list_phonesiOS farm — the iPhone analog: provision, list, screenshot, dump UI, drive taps and input, manage apps and orientation, onboard the on-device control runner, and start a live mirror.
All 16 tools
provision_ios_phonelist_ios_phonesios_list_phonesios_screenshotios_dump_uiios_list_appsios_find_and_tapios_inputios_app_lifecycleios_open_urlios_set_orientationios_install_appios_uninstall_appsetup_ios_devicekitenroll_farm_phone_appios_start_mirror
farm_start_mirror · set_farm_mirror_transport · farm_get_variablesLive mirror & control locks — start a low-latency phone mirror with touch input over a single-use scoped relay token, tune the transport, manage automation variables, and acquire or release exclusive device control.
All 7 tools
farm_start_mirrorset_farm_mirror_transportfarm_get_variablesfarm_set_variablesacquire_device_controlrelease_device_controladmin_force_release_device_control
get_farm_phone_health · farm_retry_phone · farm_restart_tunnelFarm phone health & recovery — the per-phone status/why/fix model, plus the software-first repair ladder: retry, tunnel restart, remote reboot, per-port USB power-cycle and the composed fleet heal.
All 7 tools
get_farm_phone_healthfarm_retry_phonefarm_restart_tunnelpower_cycle_farm_hubcycle_farm_phone_portheal_farm_fleetios_reboot
get_farm_daemon_status · restart_farm_daemon · update_farm_daemonFarm daemon & components — live daemon status, restart and self-update, tunnel reaping, and the per-component install/update/onboard lifecycle across one phone or the whole fleet.
All 8 tools
get_farm_daemon_statusrestart_farm_daemonupdate_farm_daemonfarm_reap_tunnelsupdate_farm_componentupdate_farm_fleetonboard_farm_fleetfarm_component_action
list_workspaces · get_workspace · create_workspaceWorkspaces & tabs — shared workspaces with retention policy, plus the tab model: create, rename, filter and select exactly what the dashboard shows.
All 12 tools
list_workspacesget_workspacecreate_workspacerename_workspacedelete_workspaceset_workspace_retentionlist_tabscreate_tabrename_tabdelete_tabset_tab_filtersset_tab_selected_entry
create_snapshot · list_snapshots · download_snapshotSnapshots — create, list and download point-in-time captures of a workspace's traffic.
list_service_groups · get_service_group · upsert_service_groupService groups & tags — group hosts into named services with linked agents, manage device membership, and the tag vocabulary entries are labeled with.
All 11 tools
list_service_groupsget_service_groupupsert_service_groupdelete_service_groupset_service_group_agentslist_device_service_groupsadd_device_to_service_groupremove_device_from_service_grouplist_tagsupsert_tagdelete_tag
list_todos · get_todo · create_todoTo-dos — the owner-scoped shared task board: list, create, update, complete and delete, live on every surface.
All 6 tools
list_todosget_todocreate_todoupdate_todocomplete_tododelete_todo
list_notifications · mark_notification_read · get_notification_prefsNotifications — the in-app notification center: read and archive, per-type channel preferences with mute windows, and self-notify.
All 7 tools
list_notificationsmark_notification_readget_notification_prefsset_notification_prefscreate_notificationnotify_userslist_web_push_subscriptions
list_push_tokens · send_push · get_push_responseDevice push — list APNs tokens, send notifications (including actionable Accept/Reject prompts), and read back the device's answer.
list_advisor_findings · get_advisor_finding · share_advisor_findingAdvisor Center & issue reports — browse enriched findings with evidence and deep links, turn one into a GitHub issue or a to-do, and file or list one-tap issue reports.
All 7 tools
list_advisor_findingsget_advisor_findingshare_advisor_findingfix_advisor_finding_issuefix_advisor_finding_todoreport_issuelist_issue_reports
get_telegram_link · list_telegram_links · link_telegramTelegram linking — link up to five accounts to the Telegram bot, switch the active one, and unlink (admin variant included).
All 5 tools
get_telegram_linklist_telegram_linkslink_telegramunlink_telegramadmin_unlink_telegram
list_busybro_sessions · get_busybro_session · create_busybro_sessionAssistant sessions — the AI assistant's multi-session chat threads, uploaded attachments (short-lived signed URLs), and shared-conversation links.
All 8 tools
list_busybro_sessionsget_busybro_sessioncreate_busybro_sessionrename_busybro_sessiondelete_busybro_sessionlist_busybro_attachmentsget_busybro_sharedelete_busybro_share
list_memories · save_memory · forget_memoryAssistant memory — personal long-term memory plus the governed team store: propose, approve, reject and edit shared facts, attribution, and the per-user GDPR erasure path.
All 13 tools
list_memoriessave_memoryforget_memoryget_memory_statslist_global_memoriespropose_global_memoryapprove_global_memoryreject_global_memoryupdate_global_memorylist_memory_contributorsadmin_list_user_memoriesadmin_forget_user_memorygdpr_forget_user
list_skills · get_skill · upsert_skillAssistant skills — the loadable instruction-and-tool bundles the assistant activates mid-chat, with per-skill files and an AI-drafted starting point. Writes are admin-only.
All 10 tools
list_skillsget_skillupsert_skilldelete_skillset_skill_enableddraft_skilllist_skill_filesget_skill_fileupsert_skill_filedelete_skill_file
list_repo_skills · edit_repo_skill · set_repo_skill_enabledRepo skills — the git-committed SKILL.md corpus: read it, and edit, toggle or remove entries as reviewed commits. Writes are admin-only git write-back.
All 4 tools
list_repo_skillsedit_repo_skillset_repo_skill_enabledremove_repo_skill
list_agents · get_agent · upsert_agentAssistant agents — the specialist-agent registry task delegation and service groups reference. Writes are admin-only.
All 4 tools
list_agentsget_agentupsert_agentdelete_agent
import_resource · list_imports · get_importKnowledge imports — queue a repo or uploaded file into the team knowledge store; the worker fetches, audits, embeds and de-duplicates, with live progress and bulk undo.
All 4 tools
import_resourcelist_importsget_importdelete_import
get_busybro_usage · get_busybro_settings · set_busybro_settingsAssistant configuration — token and cost analytics, the global on/off switch, and the brain's model and behavior knobs (admin-only to write).
All 5 tools
get_busybro_usageget_busybro_settingsset_busybro_settingsget_busybro_enabledset_busybro_enabled
list_plugins · get_plugin · install_pluginPlugins — browse, install and uninstall packaged extensions; publishing and removal are admin-only.
All 7 tools
list_pluginsget_plugininstall_pluginuninstall_pluginupsert_pluginset_plugin_install_enableddelete_plugin
list_directory · list_directory_listings · upsert_directory_listingDirectory & installs — the published catalogue of skills and plugins, operator-curated listings, per-user skill installs, and the install defaults new users receive.
All 9 tools
list_directorylist_directory_listingsupsert_directory_listingset_directory_listing_statusdelete_directory_listinglist_install_defaultsset_install_defaultinstall_skilluninstall_skill
list_mcp_servers · upsert_mcp_server · delete_mcp_serverDownstream MCP servers — register, enable and inspect the external MCP servers the assistant can call through.
All 5 tools
list_mcp_serversupsert_mcp_serverdelete_mcp_serverset_mcp_server_enabledinspect_mcp_server
list_my_mcp_connectors · upsert_my_mcp_connector · delete_my_mcp_connectorPersonal connectors — your own outbound MCP connectors with a full OAuth 2.1 client leg (discovery, DCR, PKCE); tokens land write-only in the vault, never readable back.
All 9 tools
list_my_mcp_connectorsupsert_my_mcp_connectordelete_my_mcp_connectorset_my_mcp_connector_enabledset_my_mcp_connector_secretset_my_connector_oauth_client_secretprobe_mcp_connectorconnect_my_mcp_connectordisconnect_my_mcp_connector
get_my_account · delete_my_account · set_my_display_nameMy account — your profile, devices, subscription and endpoints in one self-scoped read, display and preferred names, per-user assistant settings, and self-service account deletion (confirm-gated).
All 6 tools
get_my_accountdelete_my_accountset_my_display_nameset_my_preferred_nameget_my_busybro_settingsset_my_busybro_settings
list_roles · create_role · update_roleRoles & users — RBAC roles and capabilities, per-user role assignment, the configurable default signup role, and the admin user roster with exact-email lookup.
All 9 tools
list_rolescreate_roleupdate_roledelete_roleset_user_roleset_default_rolelist_usersget_useradmin_delete_user
list_access_grants · create_access_grant · revoke_access_grantAccess grants & impersonation — time-boxed capability grants, effective-permission preview, and audited support impersonation with an explicit end.
All 6 tools
list_access_grantscreate_access_grantrevoke_access_grantpreview_effective_permissionsimpersonate_userend_impersonation
list_audit_events · get_audit_eventAudit trail — the filterable, paginated who-did-what-when ledger of every action on every surface, agents included, with full per-event detail.
get_stats · get_statusLive stats & status — platform-wide capture statistics and infrastructure health at a glance.
get_subscription · list_invoices · get_usageBilling — your subscription, invoices and metered usage, checkout and customer-portal sessions, and the value-blind Stripe admin reads and non-secret config writes (cancel is confirm-gated).
All 13 tools
get_subscriptionlist_invoicesget_usagecreate_checkout_sessionget_stripe_configlist_priceslist_customersget_webhook_eventsget_billing_settingsset_default_priceset_billing_settingsreport_usage_nowcancel_subscription
list_testflight_groups · list_testflight_testers · get_testflight_testerTestFlight beta admin — groups, testers, invitations and App Store review status, with invite, remove and group-membership writes (confirm-gated).
All 14 tools
list_testflight_groupslist_testflight_testersget_testflight_testerlist_testflight_invitationslist_testflight_userslist_testflight_user_invitationsget_app_store_statusinvite_testflight_testerdelete_testflight_testeradd_testflight_tester_to_groupremove_testflight_tester_from_groupsend_testflight_invitationinvite_testflight_usercancel_testflight_user_invitation
list_locales · upsert_locale · delete_localeLocalization — locales, namespaces, keys and messages, coverage stats and the missing-translation report, machine translation, bulk import and catalog publishing.
All 21 tools
list_localesupsert_localedelete_localeset_default_localelist_i18n_namespacesupsert_i18n_namespacelist_i18n_keysupsert_i18n_keydelete_i18n_keylist_i18n_messagesupsert_i18n_messagedelete_i18n_messageget_i18n_settingsset_i18n_settingsget_i18n_manifestget_i18n_statsget_i18n_missing_reportget_i18n_catalogimport_i18nmachine_translate_i18npublish_i18n_catalog
list_api_projects · create_api_project · update_api_projectObserved API — turn captured traffic into an evidence-backed API model: projects, immutable revisions, reviewable path candidates, drift detection and deterministic OpenAPI 3.1 export.
All 13 tools
list_api_projectscreate_api_projectupdate_api_projectrefresh_api_projectset_api_project_scheduleset_api_project_archiveddelete_api_projectget_api_revisionlist_api_candidatesreview_api_candidateexport_api_specgenerate_api_assetlist_api_drift
list_federation_clients · upsert_federation_client · delete_federation_clientFederated SSO — the closed, admin-onboarded partner-client registry; secrets are vault names only, never values.
list_app_secrets · create_app_secret · update_app_secretApp secrets — the vault-backed secret store: names and metadata are listable, values are write-only and never read back on any surface. Mutations are admin-only.
All 4 tools
list_app_secretscreate_app_secretupdate_app_secretdelete_app_secret
list_demo_users · get_demo_status · create_demo_userDemo accounts — provision, reset and regenerate the guided demo users and their sample content.
All 6 tools
list_demo_usersget_demo_statuscreate_demo_userreset_demo_userdelete_demo_userregenerate_demo_content
get_test_status · run_test_suite · cancel_test_runQuality — run, re-run and cancel test suites, and read live results, history and the feature-to-test coverage maps.
All 8 tools
get_test_statusrun_test_suitecancel_test_runrerun_test_suitelist_test_suitesget_test_coverageget_test_path_coverageget_test_suite_history
wip_list · wip_update · wip_clear_doneWork-in-progress board — the live projection of open work: list, update, history and clear-done.
All 4 tools
wip_listwip_updatewip_clear_donewip_task_history
db_select · db_insert · db_updateRaw database & realtime — direct table CRUD, RPC and broadcast. The escape hatch: admin-only and excluded from the free-text assistant entirely.
All 7 tools
db_selectdb_insertdb_updatedb_deletedb_rpclist_tablesrealtime_broadcast
Power,
An agent with this much reach needs real guardrails, not a disclaimer. These are the actual gates, in the order a call meets them.
OAuth 2.1DCR + PKCEThe only way in. Dynamic Client Registration plus PKCE issues the token; there is no pasted API key and no session-token path.
initialize · tools/list · pingpre-authDiscovery is served before login with a scoped read-only public profile, so clients can enumerate the surface — but tools/call and every write stay OAuth-gated.
confirm: truewritesEvery destructive or state-changing tool demands an explicit confirm parameter — an agent has to state what it's about to do before it does it.
adminOnly · powerdenylistedRaw-power executors (direct database access, raw broadcast) are admin-only and excluded from the free-text assistant entirely.
audit_logevery callEvery tool call lands in the audit trail with its actor and arguments — and the trail itself is queryable and live-subscribable.
If the dashboard can,
Parity is a standing rule here: every capability aligns across the dashboard, MCP, REST, WebSockets and BusyBro — same data, same permissions, checked on every ship.
Before you
Which MCP clients work with Busymate DevTools?
Any client that speaks the Streamable-HTTP transport with OAuth: Claude Code, Claude.ai and Claude Desktop, Cursor, VS Code, ChatGPT developer-mode connectors, Continue, Cline, Zed, or your own agent. The install page has copy-paste configs for each.
Do I need an API key?
No. Access is OAuth 2.1 with Dynamic Client Registration and PKCE — your client registers itself and you authorize in the browser. The token it receives also authenticates REST, WebSockets and Edge Functions.
What's the connection URL?
https://mcp.busymate.dev — the canonical host. The older mcp.busymate.net keeps serving the same server forever, and OAuth issues host-matched metadata on both, so an existing client config never breaks.
Can an agent break something?
Only what your own role allows, and only with an explicit confirm on destructive tools. Raw-power executors are admin-only, and every call is written to the audit trail.
Can I see the tools before authorizing?
Yes — discovery (initialize, tools/list, ping) answers pre-auth with a scoped read-only public profile, so registries and clients can enumerate the surface before OAuth consent. Calling anything still requires authorization.
Is this the same data as the dashboard?
The same rows, live. MCP is one of five parity surfaces over one platform — the dashboard, MCP, REST, WebSockets and BusyBro expose the same capabilities, by standing rule.
Connect your
One click for Cursor or VS Code, or paste the config. Authorize once, then call any of the 454 tools.