> ## Documentation Index
> Fetch the complete documentation index at: https://docs.autogrowth.farm/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> AutoGrowth runs social accounts on real phones. Everything a page describes happens on a physical device in the customer's own fleet, never through a social platform's API.
> The Companion is a macOS desktop app that runs on the customer's own Mac and manages the phones over USB — iPhones through WebDriverAgent, GrapheneOS phones through ADB and scrcpy. Nothing runs while the Companion is closed.
> The Companion builds, signs and installs WebDriverAgent on each iPhone itself. Never tell a customer to sign WebDriverAgent by hand in Xcode; Xcode is a prerequisite the Companion drives, not a step the customer performs.
> Autogrowth MAX is a one-time, invite-only lifetime license bought from the organization's credit balance, not a subscription tier. It is required to run any automation, workflow or Incubator program. Without a price set for that organization, the purchase is refused.
> An automation is one of AutoGrowth's built-in definitions; a script is a graph the customer builds in the Script Builder. The Script Builder is locked platform-wide, so never present building a script as something a customer can do today.
> An API key is a bare 64-character hex string with no prefix. It is shown once, at creation, is sent as `Authorization: Bearer <key>`, and can never be read back.
> An API key sees only the key owner's own accounts, content, collections, prompts, scripts and executions. Devices and tags are organization-scoped, and a non-owner sees only the devices assigned to them or carrying one of their tags. The automation catalog is global.
> There is no pagination. List endpoints return the whole set; the only limiting parameter anywhere is `limit` on `GET /v1/executions`, which defaults to 50 and has no offset to page with.
> Remote control and the live screen are dashboard-only, over WebSocket and MJPEG. Neither is part of the public API.
> The MCP server is hosted at https://mcp.autogrowth.farm and authenticates with OAuth. It is not an npm package and there is nothing to install locally. Its tools inherit exactly the scope of the API key behind them.
> Android support is partial and GrapheneOS-only: those phones appear in the fleet and can be watched and remote-controlled, but they cannot run scripts or automations.
> Never document Hi Katie or any persona feature. When a page and the code disagree, the code wins — check a claim against the source before repeating it.

# Connect to the MCP server

> Point Claude, Cursor or any MCP client at https://mcp.autogrowth.farm and complete the OAuth sign-in.

The server URL is:

```
https://mcp.autogrowth.farm
```

That is the whole configuration. There is no package to install, no API key to
paste and no local process to run.

## Before you start

* An AutoGrowth user that belongs to an organization. A user with no organization
  can approve the client and still get no working connection.
* A browser signed in to [dash.autogrowth.farm](https://dash.autogrowth.farm), on
  the same machine as the client.

## Add the server

<Tabs>
  <Tab title="Claude Code">
    ```bash theme={"dark"}
    claude mcp add --transport http autogrowth https://mcp.autogrowth.farm
    ```

    Then run `/mcp` inside Claude Code and pick **autogrowth** to start the
    sign-in. Your browser opens the consent page.
  </Tab>

  <Tab title="Claude">
    In claude.ai or Claude Desktop, open **Settings → Connectors**, choose
    **Add custom connector**, and paste the URL:

    ```
    https://mcp.autogrowth.farm
    ```

    Give it a name you will recognise later — that name is what appears on your
    API key list. Then press **Connect** and complete the consent page.
  </Tab>

  <Tab title="Cursor">
    Add the server to `mcp.json` — `~/.cursor/mcp.json` for every project, or
    `.cursor/mcp.json` inside one project:

    ```json .cursor/mcp.json theme={"dark"}
    {
    	"mcpServers": {
    		"autogrowth": {
    			"url": "https://mcp.autogrowth.farm"
    		}
    	}
    }
    ```

    Cursor picks the server up on save and prompts you to sign in.
  </Tab>

  <Tab title="Any other client">
    Any client that speaks **Streamable HTTP** and **OAuth 2.0** works. The
    details it may ask for:

    | Setting             | Value                                                                |
    | ------------------- | -------------------------------------------------------------------- |
    | Server URL          | `https://mcp.autogrowth.farm`                                        |
    | Transport           | Streamable HTTP, at the root path                                    |
    | Authorization       | OAuth 2.0 authorization code with PKCE (`S256`)                      |
    | Client registration | Dynamic — the server registers your client itself                    |
    | Client secret       | Not required                                                         |
    | Metadata            | `https://mcp.autogrowth.farm/.well-known/oauth-authorization-server` |

    Stdio-only clients cannot connect. There is no local binary to wrap.
  </Tab>
</Tabs>

## The consent page

Whichever client you use, the sign-in is the same:

<Steps>
  <Step title="Your browser opens the dashboard">
    The page is titled **Authorize Access** and names the client that asked, along
    with what it is requesting: view your devices, view and schedule scripts, view
    and schedule automations, view and upload media.
  </Step>

  <Step title="Press Allow Access">
    **Deny** sends the client away with an error and creates nothing. Approving
    hands the client a one-time code that is good for 10 minutes, so let the
    client finish rather than closing it mid-flow.
  </Step>

  <Step title="You land back in the client">
    The tools appear. Nothing else is needed on your side.
  </Step>
</Steps>

Afterwards, a key named `MCP: <client name>` shows up under **Settings → Developer
API** in the dashboard. That key is the connection — deleting it disconnects the
client. See [what the connection can see](/mcp/overview#what-the-connection-can-see).

## Troubleshooting

<AccordionGroup>
  <Accordion title="The consent page says you are not signed in, or nothing happens when you press Allow">
    The page authorizes whoever the browser is signed in as. Open
    [dash.autogrowth.farm](https://dash.autogrowth.farm) in the same browser, sign
    in, then start the connection again from your client.
  </Accordion>

  <Accordion title="Tools stopped working after a month">
    Tokens last 30 days. Clients normally refresh in the background, but one that
    was closed for longer, or that lost its stored credentials, has to redo the
    consent. Remove the server from the client and add it again.
  </Accordion>

  <Accordion title="Sign-in completes but every tool call fails">
    The connection needs a user who is a member of an organization. If you were
    invited to one and have not accepted, or you were removed, the authorization
    cannot be completed. Check with your organization's owner — see
    [Team](/guides/team).
  </Accordion>

  <Accordion title="The assistant sees fewer phones or accounts than the dashboard">
    That is scoping, not a fault. Accounts, content, scripts and executions are
    limited to rows **you** own, and phones to the ones you can reach. Full rules
    in [What a key can see](/api/authentication#what-a-key-can-see).
  </Accordion>
</AccordionGroup>
