Echidna
Automate

AI agents (MCP)

Echidna includes a Model Context Protocol (MCP) server. Connect an AI app such as Claude Desktop, Claude Code, Codex or Cursor, and the agent can create and organise profiles, open them and browse with human-like input.

How it works

Your AI app starts Echidna's engine program with the arguments mcp --control. It talks to the app over standard input and output, and connects to the engine that the Echidna app is already running. Everything the agent creates or opens shows up in the app.

The AI agents (MCP) tab in Settings → Automation & API writes these configurations for you, with the engine path of your installation filled in. Turn on Include the token in copied examples to copy them with your token.

Without a token the server falls back to the app's own token from the data folder, which can do everything the app can. Use the automation token for agents.

Find the engine program

Point your AI app at the engine program inside your Echidna installation:

SystemPath
macOS/Applications/Echidna.app/Contents/Resources/engine/echidna-engine
Windows (default install)C:\Users\you\AppData\Local\Echidna\engine\echidna-engine.exe
Linux (.deb)/usr/lib/Echidna/engine/echidna-engine

Replace you with your Windows user name. The AppImage has no fixed install location, so install the .deb if you want to connect an agent on Linux.

Claude Desktop and Cursor

Add Echidna to Claude Desktop's claude_desktop_config.json (Settings → Developer → Edit Config), or to Cursor's mcp.json (~/.cursor/mcp.json; on Windows %USERPROFILE%\.cursor\mcp.json). Both use the same JSON. On macOS:

{
  "mcpServers": {
    "echidna": {
      "command": "/Applications/Echidna.app/Contents/Resources/engine/echidna-engine",
      "args": ["mcp", "--control"],
      "env": { "ECHIDNA_API_TOKEN": "eca_your_automation_token" }
    }
  }
}

On Windows, write the full path with doubled backslashes:

{
  "mcpServers": {
    "echidna": {
      "command": "C:\\Users\\you\\AppData\\Local\\Echidna\\engine\\echidna-engine.exe",
      "args": ["mcp", "--control"],
      "env": { "ECHIDNA_API_TOKEN": "eca_your_automation_token" }
    }
  }
}

Restart the AI app after editing its configuration.

Claude Code

# macOS
claude mcp add echidna --env ECHIDNA_API_TOKEN=eca_your_automation_token -- /Applications/Echidna.app/Contents/Resources/engine/echidna-engine mcp --control

# Linux (.deb)
claude mcp add echidna --env ECHIDNA_API_TOKEN=eca_your_automation_token -- /usr/lib/Echidna/engine/echidna-engine mcp --control

# Windows
claude mcp add echidna --env ECHIDNA_API_TOKEN=eca_your_automation_token -- "C:\Users\you\AppData\Local\Echidna\engine\echidna-engine.exe" mcp --control

Codex

Add a server to ~/.codex/config.toml (on Windows %USERPROFILE%\.codex\config.toml):

[mcp_servers.echidna]
command = "/Applications/Echidna.app/Contents/Resources/engine/echidna-engine"
args = ["mcp", "--control"]
env = { ECHIDNA_API_TOKEN = "eca_your_automation_token" }

What an agent can do

The server offers its tools in groups. With the automation token, the accounts and ops groups and the few tools outside the token's reach (cards and billing, changing settings, captcha keys, autofill and form templates, exports) are left out of the tool list, so the agent is only offered what it can use. Five vault tools stay listed: fill_saved_value, list_cards, get_account, get_totp and wait_for_otp. They work once you turn on Settings → Automation & API → Let scripts use saved cards, billing and logins; until then they answer [forbidden] and name the switch.

Checkout with saved cards

With the switch on, fill_saved_value types one saved card field, billing or shipping field, or the profile's saved login into a field of the open page. The agent never sees the value: the tool answers {ok, card: "••4242"}. list_cards shows id, brand and last 4 digits, so you can tell the agent which card each profile pays with, for example: “For shop-01, shop-02 and shop-03, open the checkout page, fill the billing name and address, then fill the card number, expiry and CVV with the card ending 4242 for shop-01 and 1881 for the others, and stop before paying.” If the automation token leaks, someone could make purchases with your cards, so turn the switch on only while you need it. Every use is listed in Settings → Automation & API and the audit log. See Saved cards, billing and logins.

GroupCoversExamples
appProfiles, fingerprints, cookies, groups and tags, schedules, templates and the launch queuelist_profiles, create_profile, open_profile, close_profile, get_fingerprint, move_to_group
proxyThe proxy pool: add, test, assign and rotateadd_proxies, test_proxy, assign_proxy, rotate_proxy
pageDriving an open profile: navigate, read, click, type, scroll, upload, screenshots and network capturenavigate, read_page, click, type_text, fill_form, screenshot
liveTabs and windows of every open profile, previews and URL monitorslist_all_tabs, tab_action, arrange_windows, add_url_monitor
automationFlows, recordings, multi-window sync and captchassave_flow, run_flow, record_start, solve_captcha
accountsSaved logins, 2FA and mail codes, profile health and history (app token only)set_account, get_totp, wait_for_otp, profile_health
opsNotifications, diagnostics, backups and storage (app token only)set_webhooks, export_diagnostics, backup_now, storage_usage

The guide tool explains Echidna's concepts to the agent, so it can look up how profiles, proxies and flows work before acting.

To give an agent fewer tools, set ECHIDNA_MCP_TOOLSETS in the server's env to a comma-separated list of groups, for example "app,page".

Page tools never start a browser. The agent opens a profile with open_profile, works in it, and closes it with close_profile. A profile you opened yourself shares its window with the agent; agents are expected to ask before closing a window you are using.

Paced or raw. The agent's own page tools already move and type like a person, so they attach to the browser directly. When an agent hands a profile to your own script with connect_profile, it gets cdp_url, which paces that script's clicks and keys like a hand, and raw_cdp_url, which is faster but sends raw automation input with no mouse path or human timing.

Built-in safety

Changes made through the engine are listed in the app under Activity → Audit log; calls made with the automation token are labelled automation.

If the agent reports that the engine “rejected the automation token”, the token was replaced or automation was turned off: copy the current token from Settings → Automation & API into the configuration and restart the AI app.

Tips