AutoGrowth Developers
Run your phones from an AI agent.
A hosted MCP server and a REST API. Your agent can run automations, watch each run and tell you why one failed.
- Claude
- Claude Code
- Cursor
- Any MCP client
Included with every plan. Nothing to install.
YouWarm up every online iPhone for 20 minutes, then show me the first run.
- get_automation { automationId: "warmup-instagram" }Result: Warmup. Inputs: account, duration (5 to 30)
- list_devices {}Result: 12 phones, 11 online, every slot active
- bulk_run_automations { executions: [11 × { automationId, deviceId, inputValues: { duration: "20" } }] }Result: 11 executions started, one per phone
- watch_run { executionId: "0199a3d8…9e47", since: 0 }Result: processing, step 4: scrolling the feed. Screen attached
AgentAll 11 online phones are warming up. Shelf 05 is offline, so I left it out.
YouWhy did last night’s post fail on Shelf 07? Show me the screen where it stopped.
- list_schedules { deviceId: "0199a3c2…1b30", status: ["failed"] }Result: 1 failed: Post, 02:14
- get_execution_logs { executionId: "0199a1f0…07c1" }Result: script-log, error-screenshot, error-source
- read_execution_log { executionId: "0199a1f0…07c1", file: "error-screenshot" }Result: Stopped at step 9. A pop-up covered the Share button
AgentA pop-up covered Share at step 9. Want me to run it again at 09:00?
YouOpen TikTok on Shelf 03 and tap the search bar.
- list_apps { deviceId: "0199a3c2…5e10" }Result: 14 apps. TikTok is com.zhiliaoapp.musically
- open_app { deviceId, bundleId: "com.zhiliaoapp.musically" }Result: Opened
- observe_phone { deviceId, include: ["screenshot", "elements"] }Result: Screenshot and 41 elements. Search is e12
- act { deviceId, kind: "tap", elementId: "e12", observationId }Result: Tapped. New screen attached
AgentSearch is open on Shelf 03. What should I look up?
Setup
Connect in one line
Paste one URL into your AI client. Nothing to install, no key to copy.
https://mcp.autogrowth.farmclaude mcp add --transport http autogrowth https://mcp.autogrowth.farm- Run it in your terminal.
- Start Claude Code, type /mcp and pick autogrowth.
- Your browser opens the approval page. Press Allow Access.
https://mcp.autogrowth.farm- In claude.ai or Claude Desktop, open Settings, then Connectors.
- Choose Add custom connector and paste the URL. The name you give it becomes the name of the key.
- Press Connect, then Allow Access in your browser.
{
"mcpServers": {
"autogrowth": {
"url": "https://mcp.autogrowth.farm"
}
}
}- Add it to ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one.
- Cursor picks it up when you save and asks you to sign in.
Server URL https://mcp.autogrowth.farm
Transport Streamable HTTP, at the root path
Authorization OAuth 2.0 authorization code with PKCE (S256)
Registration Dynamic: the server registers your client
Metadata https://mcp.autogrowth.farm/.well-known/oauth-authorization-server- Any client that speaks Streamable HTTP and OAuth 2.0 works. No client secret.
- Stdio-only clients cannot connect: there is no local binary to wrap.
You approve the client once in your dashboard. Delete its key there to disconnect.
MCP server
74 tools in seven areas
Every tool acts as you, with your role and permissions.
Devices and phone control
16 tools
List your phones and their containers, tag them, and drive one by hand: open and close apps, read the screen, tap, swipe and type, and send media to its gallery.
list_devicesget_device_containerscreate_containersdelete_containerset_device_tagslist_tagscreate_tagupdate_tagdelete_taglist_appsopen_appkill_appobserve_phoneactsend_media_to_phoneget_media_push
Automations and runs
9 tools
Read the built-in catalog and the inputs each automation takes, run one now or up to 100 at once, and follow every run step by step with the screen at each step.
list_automationsget_automationrun_automationbulk_run_automationslist_runsget_runwatch_runstop_runget_run_artifact
Schedules and workflows
16 tools
Schedule runs for a set time, one or up to 100 at once, check a phone for overlaps first, read why a run failed, and set up daily routines.
schedule_automationbulk_schedule_automationscheck_conflictslist_schedulesget_executionget_execution_logsread_execution_logcancel_executiondelete_executionlist_workflowsget_workflowcreate_workflowupdate_workflowpause_workflowresume_workflowdelete_workflow
Media and collections
13 tools
Upload from a public URL, a local file or inline bytes, sort media into collections, star it, and check how much storage is left.
upload_mediacreate_media_uploadcomplete_media_uploadlist_mediastar_mediadelete_mediaget_storagelist_collectionsget_collectioncreate_collectionupdate_collectiondelete_collectionmove_media
Accounts
10 tools
Track social accounts, read their follower and run history, pause or resume their stats, and set which phones an account lives on.
list_accountsget_accountget_account_historylist_account_runsadd_social_accountupdate_accountdelete_accountpause_accountresume_accountbind_account_devices
Prompts
5 tools
Reusable text that an automation input can point at. Create, read, update and delete it.
list_promptsget_promptcreate_promptupdate_promptdelete_prompt
Identity, docs and stats
5 tools
See whose key the agent holds and what it may do, search and read the AutoGrowth docs, read fleet counters, and test a proxy.
get_mesearch_docsread_docget_statscheck_proxy
Billing, team and settings stay in the dashboard.
REST API
Or call it from your own code
The same actions over HTTPS, for your own scripts. Bearer key in, JSON out.
https://api.autogrowth.farm/v1 Devices
- GET
/devices - GET
/devices/ {id}/ containers - GET
/devices/ {id}/ apps - POST
/devices/ {id}/ observe - POST
/devices/ {id}/ act
Automations and runs
- GET
/automations - GET
/automations/ {id} - GET
/automations/ runs - POST
/automations/ runs/ {executionId}/ stop
Executions
- POST
/executions - POST
/executions/ bulk - POST
/executions/ check-conflicts - GET
/executions/ {id}/ logs - PATCH
/executions/ {id}/ cancel
Content
- POST
/content/ uploads - POST
/content/ uploads/ {uploadId}/ complete - GET
/content/ storage
Plus accounts, workflows, collections, prompts, tags, stats and /me.
curl -X POST https://api.autogrowth.farm/v1/executions \
-H "Authorization: Bearer $AUTOGROWTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"automationId": "warmup-instagram",
"deviceId": "0199a3c2-5e10-7b4d-9a61-2f8e4c7d1b30",
"scheduledAt": "2026-10-15T09:00:00Z",
"inputValues": { "duration": "20" }
}'const res = await fetch('https://api.autogrowth.farm/v1/executions', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.AUTOGROWTH_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
automationId: 'warmup-instagram',
deviceId,
scheduledAt: '2026-10-15T09:00:00Z',
inputValues: { duration: '20' },
}),
})
const { execution, conflicts } = await res.json()import os, requests
res = requests.post(
"https://api.autogrowth.farm/v1/executions",
headers={"Authorization": f"Bearer {os.environ['AUTOGROWTH_API_KEY']}"},
json={
"automationId": "warmup-instagram",
"deviceId": device_id,
"scheduledAt": "2026-10-15T09:00:00Z",
"inputValues": {"duration": "20"},
},
)
execution = res.json()["execution"]{
"execution": {
"id": "0199a3d8-41f2-7c09-b6e3-8d5a2f1c9e47",
"userId": "0198e2b7-0c44-7d1e-a3f0-6b9c8d7e5a12",
"type": "automation",
"engineAutomationId": "0198f8a0-77c1-7e2a-9b40-5c3d2e1f0a96",
"status": "pending",
"scheduledAt": "2026-10-15T09:00:00.000Z",
"deviceId": "0199a3c2-5e10-7b4d-9a61-2f8e4c7d1b30",
"inputValues": { "duration": "20" },
"createdAt": "2026-10-14T18:32:05.114Z",
"updatedAt": "2026-10-14T18:32:05.114Z"
},
"conflicts": []
}Keys and limits
The same rules as the dashboard
Your agent or code can do what you can do in the dashboard, and nothing more.
API keys
Make a key in Settings, Developer API.
What a key can see
Each key acts as the user who made it.
On your phones
Runs still happen on your phones, while the desktop app is open.
Limits
Limits and error codes are in the docs.
Docs
Read the full reference
Guides and the full reference live at docs.autogrowth.farm. Most pages need you to sign in.
- PublicMCP and APIWhat both can do, and what stays in the dashboard.(opens in a new tab)
- Sign inConnect Claude with MCPThe 10-minute setup, with first requests to try.(opens in a new tab)
- Sign inMCP toolsEvery tool by area, with its inputs.(opens in a new tab)
- Sign inAPI referenceKeys, conventions and every endpoint.(opens in a new tab)
- Sign inErrorsEvery code, and what to do about it.(opens in a new tab)
Ready when your phones are.
Plug them in and run every account from one dashboard.
From $99.95 a month. Cancel any time in Billing.





