Reference
Integrations
Argus speaks the Model Context Protocol, so an agent that already knows how to use tools can drive your profiles without being taught an API. Connecting installs nothing.
On this page
Agents over MCP
MCP is how a coding agent discovers what a program can do. The agent asks for a tool list, gets one back with names, descriptions and argument schemas, and calls what it needs — no wrapper, no SDK, nothing to keep in step with a changelog.
The Argus server runs from inside the launcher's own application bundle, started with ELECTRON_RUN_AS_NODE. There is no package to install and nothing new listening: it speaks JSON-RPC over stdin and stdout to the client that launched it, and reaches the local API on your behalf.
For most clients the launcher writes the config file for you and shows you the path first. Two of them have no file it can write, and say so by handing over a snippet instead.
This is a local API. It listens on loopback on the machine running Argus, and nothing off that machine can reach it. There is no hosted web API.
Supported clients
Coding agents
Claude Code
Anthropic's coding agent CLI. Drive profiles as tools from any project.
- Config
- ~/.claude.json
- Key
- mcpServers.argus
Run /mcp in any project — argus should be in the list.
Codex
OpenAI's coding agent CLI. Same tools, wired into Codex's own config.
- Config
- ~/.codex/config.toml
- Key
- [mcp_servers.argus]
Codex reads its MCP servers at startup — ask it what tools it has and the argus ones should be there.
Cursor
The AI editor. Registered in Cursor's global MCP config.
- Config
- ~/.cursor/mcp.json
- Key
- mcpServers.argus
Open Cursor Settings → MCP: argus should be listed and switched on.
Gemini CLI
Google's coding agent CLI. Same tools, in its own settings file.
- Config
- ~/.gemini/settings.json
- Key
- mcpServers.argus
Run /mcp — argus should be in the list.
Windsurf
The Codeium editor. Registered for Cascade to use.
- Config
- ~/.codeium/windsurf/mcp_config.json
- Key
- mcpServers.argus
Open Cascade's plugin panel: argus should be listed there.
VS Code
Agent mode in Visual Studio Code, through its user MCP config.
- Config
- Code/User/mcp.json
- Key
- servers.argus
Switch Chat to Agent mode and open the tools picker — the argus tools should be listed.
Zed
Zed's agent panel, through its context server settings.
- Config
- ~/.config/zed/settings.json
- Key
- context_servers.argus
Check the agent panel's settings: argus should appear under context servers.
Automation
OpenClaw
Personal assistant gateway across chat channels.
- Config
- ~/.openclaw/openclaw.json
- Key
- mcp.servers.argus
It loads its config at startup — argus should show up among its tools.
Set up by hand
These two have no config file Argus can write. Connecting them means handing over a snippet rather than pretending to wire them up.
Hive
by handMulti-agent runtime. Run QA and monitoring sweeps across many profiles at once.
- Config
- its own .env
- Key
- environment variables
Hive reads the .env at startup — its first sweep will use this key.
Any other MCP client
by handAnything that speaks MCP. Copy the server block into its config yourself.
- Config
- whatever your client reads
- Key
- mcpServers.argus
Your client should list argus among its MCP servers once it is back up.
Setting it up by hand
For everything above except Hive and “any other MCP client”, Argus writes this block for you and shows you the file path before it touches anything. If you would rather do it yourself, or your client is not on the list, this is the shape.
{
"mcpServers": {
"argus": {
"type": "stdio",
"command": "Argus Launcher",
"args": ["<the path shown after you connect>"],
"env": {
"ELECTRON_RUN_AS_NODE": "1",
"ARGYS_API_TOKEN": "<your key>",
"ARGYS_API_BASE": "http://127.0.0.1:39219"
}
}
}
}Hive reads environment variables out of its own .env instead:
ARGYS_API_BASE=http://127.0.0.1:39219
ARGYS_API_TOKEN=<your key>Restart the client afterwards. Every one of these reads its MCP config at process start and there is no reload signal Argus can send.
What an agent gets
39 tools, and the instructions the server hands the model on connect:
Drive Argus anti-detect browser profiles. Each profile is an isolated browser identity with its own proxy, fingerprint and cookie jar. Typical flow: argus_list_profiles, then argus_launch_profile, then argus_navigate / argus_read_page / argus_screenshot, then argus_close_profile. A launched session is anonymous — never send it credentials or tokens.
34 tools wrap an endpoint
argus_list_profilesList profiles (optional ?folder=<id>)
argus_get_profileRead one profile
argus_create_profileCreate a profile
argus_update_profileUpdate name, status, tags, colour, avatar, folder, proxy mode, start URL or launch automation
argus_profile_notesRead a profile's notes, newest first
argus_add_profile_noteAppend a note to a profile
argus_assign_proxyPut a profile on a proxy from the library
argus_launch_profileOpen a profile for automation; returns its CDP url. Reuses a running session unless relaunch is set
argus_profile_sessionWhere a running profile's CDP endpoint is, without launching it
argus_close_profileClose a session this key opened
argus_delete_profileMove a profile to Trash (permanent: true to purge; the tool only soft-deletes)
argus_update_fingerprintRe-roll or override a profile's fingerprint
argus_list_proxiesList proxies
argus_check_proxyCheck reachability and egress IP
argus_list_automationsList the org's automations, with step counts
argus_automation_schemaThe step catalogue: every step type, its fields and how they validate
argus_get_automationRead one automation, including its full step tree
argus_create_automationCreate an automation. Steps are validated before anything is stored
argus_update_automationChange an automation's name, description, steps or wiring
argus_delete_automationMove an automation to Trash. It stops running on launch and on its schedule
argus_run_automationRun an automation against a profile, launching it if needed
argus_automation_runsRecent runs of one automation, with status and errors
argus_list_connectorsThe workspace's connectors, and the field list of every kind
argus_create_connectorAdd a connector. Owner-only, like the Connectors view
argus_update_connectorRename a connector, change its config or make it the default
argus_delete_connectorDelete a connector
argus_test_connectorSend a real test message, or a one-word AI completion
argus_list_foldersThe folders profiles, proxies, cookie sets and automations are filed in
argus_list_statusesEvery status label a profile, proxy or cookie set can carry
argus_telegram_statusWhether the notification bot is set up, and who is subscribed
argus_set_telegram_prefSubscribe the signed-in user to one automation's outcomes
argus_set_telegram_botSet the workspace's notification bot. Owner-only
argus_table_columnsWhat each table shows, and every column it could show
argus_set_table_columnsShow or hide columns on a table
5 drive a page directly, with no endpoint behind them
argus_list_tabsList the open pages in a running profile
argus_navigatePoint a page at a URL and wait for it to settle
argus_read_pageRead a page's visible text, whole or by CSS selector
argus_screenshotScreenshot a page — JPEG by default, PNG on request
argus_evalEvaluate a JavaScript expression in a page and return its value
7 endpoints have no tool at all — the destructive and bulk ones. They are listed on the API reference, marked HTTP only.
Automation connectors
Connectors are the outside services an automation can reach: a model to ask, somewhere to send the answer, and somewhere for a run's rows to land. A step stores a connector id and nothing else, so a key changes in one place and every automation using it follows.
Twelve AI entries share exactly two wire protocols. Eleven speak OpenAI's chat-completions shape, because each of them publishes an OpenAI-compatible endpoint; Claude is the one that is genuinely different. Two of the twelve run on your own machine and need no key at all.
The data connectors are where the save rows and load rows steps point. Each one carries its own container as well as its credential — a Sheets connector holds the spreadsheet, an Airtable one the base — so a step only ever names a single table, tab, key or file.
Connector credentials are stored in your workspace, readable by anyone in it who can open the connectors list — and returned in full over the local API, so an Argus API key is equivalent to the credentials it can read. Argus masks them in its own interface, but that is a convenience rather than a security boundary — give a connector the narrowest key the service will issue.

AI models
Asked by the aiPrompt and aiCheck steps. The model box is free text rather than a fixed list — these services rename and retire models faster than a release ships — so the model below is a starting point.
ChatGPT
OpenAI-compatible- Endpoint
- https://api.openai.com/v1
- Model
- gpt-4.1-mini
- Needs
- API key
Claude
Anthropic wire- Endpoint
- https://api.anthropic.com
- Model
- claude-sonnet-5
- Needs
- API key
DeepSeek
OpenAI-compatible- Endpoint
- https://api.deepseek.com/v1
- Model
- deepseek-chat
- Needs
- API key
Google Gemini
OpenAI-compatible- Endpoint
- https://generativelanguage.googleapis.com/v1beta/openai
- Model
- gemini-2.5-flash
- Needs
- API key
Mistral
OpenAI-compatible- Endpoint
- https://api.mistral.ai/v1
- Model
- mistral-small-latest
- Needs
- API key
OpenRouter
OpenAI-compatible- Endpoint
- https://openrouter.ai/api/v1
- Model
- openai/gpt-4.1-mini
- Needs
- API key
Together AI
OpenAI-compatible- Endpoint
- https://api.together.xyz/v1
- Model
- meta-llama/Llama-3.3-70B-Instruct-Turbo
- Needs
- API key
Hugging Face
OpenAI-compatible- Endpoint
- https://router.huggingface.co/v1
- Model
- meta-llama/Llama-3.3-70B-Instruct
- Needs
- API key
LM Studio
OpenAI-compatible- Endpoint
- http://127.0.0.1:1234/v1
- Model
- local-model
- Needs
- None — it runs on your machine
Ollama
OpenAI-compatible- Endpoint
- http://127.0.0.1:11434/v1
- Model
- llama3.1
- Needs
- None — it runs on your machine
Other
OpenAI-compatible- Needs
- Your own endpoint, and a key if it wants one
Anything that answers POST {base}/chat/completions. You supply the base URL.
Messaging
Where a notify step sends its message, and where a run tells you it finished. One adapter each: unlike model vendors, chat services never converged on a wire format.
Telegram
- Needs
- Bot token and chat ID
From @BotFather. The bot must have messaged the chat once, or be in the group. Group ids are negative numbers.
Where to get a keySlack
- Needs
- Incoming webhook URL
The URL is the credential — anyone holding it can post to the channel.
Where to get a key- Needs
- Cloud API phone number ID, access token, and a recipient
Free-form messages only reach people who messaged this number in the last 24 hours; outside that window WhatsApp requires a pre-approved template.
Where to get a keyEmail (SMTP)
- Needs
- Host, port, from and to — username and password where the relay wants them
Port 465 connects over TLS; anything else starts plain and upgrades with STARTTLS.
Databases and files
Where the saveRowsstep writes a run's results, and where loadRowsreads a work list back out. Every write goes out from the launcher, never from the profile's page — so a row landing in your own database is not billed to an identity's proxy.
Supabase
- Needs
- Project URL and service role key
Use the service_role key, not the anon key — the anon key is subject to row level security and will usually insert nothing without a policy.
Where to get a keyPostgres
- Needs
- Host, database, user and password
TLS is verified by default. Managed databases that present a self-signed certificate need the “require” mode, which encrypts but does not verify.
Firebase
- Needs
- Service account project ID, client email and private key
The service account needs the Cloud Datastore User role. Firestore is schemaless, so columns are free text.
Where to get a keyRedis
- Needs
- Host — password, database number and TLS where the server wants them
Rows are appended to a Redis list as JSON documents, one entry per row, and read back in arrival order. Managed Redis (Upstash, Redis Cloud) is TLS-only — pick verify-full.
Google Sheets
- Needs
- Service account client email and private key, plus the spreadsheet
Share the spreadsheet with the service account’s address as an Editor — a service account has no access to a file until it is shared with it, exactly like a person.
Where to get a keyNotion
- Needs
- Internal integration token
Open each database you want to write to and connect the integration under ••• → Connections. The token alone sees nothing.
Where to get a keyAirtable
- Needs
- Personal access token and the base
The token needs data.records:read, data.records:write and schema.bases:read, and access to this base.
Where to get a keyLocal file
- Needs
- A folder on this machine
csv opens in any spreadsheet app. jsonl appends one object per line and survives a crash mid-run; json rewrites the whole array each time.
Meta Lead Ads
- Needs
- Page or System User access token with leads_retrieval, plus the Page id
Read-only: leads load into automations and datasets; nothing is ever written back to Meta.
Where to get a keyPoint an agent at it
Create a key in the launcher, connect your client, and the tools appear in it. The API itself stays on http://127.0.0.1:39219, where only your machine can reach it.