> ## Documentation Index
> Fetch the complete documentation index at: https://grow-hub.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Connect an MCP client to Studio in about two minutes.

## Before you start

You need a Studio account. Go to [studio.growhub.ai](https://studio.growhub.ai)
and sign in with Google — a personal studio is created for you on first sign-in.

## Add the server

<Tabs>
  <Tab title="Claude Code">
    ```bash theme={null}
    claude mcp add --transport http studio https://studio-api.growhub.ai/mcp
    ```

    Then run `/mcp` inside Claude Code and pick **studio** to complete sign-in.
  </Tab>

  <Tab title="Claude Desktop / Cursor">
    Add the server to your client's MCP config:

    ```json theme={null}
    {
      "mcpServers": {
        "studio": {
          "command": "npx",
          "args": ["mcp-remote", "https://studio-api.growhub.ai/mcp"]
        }
      }
    }
    ```

    Restart the client. `mcp-remote` opens a browser window for sign-in the
    first time and caches the token afterwards.
  </Tab>

  <Tab title="MCP Inspector">
    ```bash theme={null}
    npx @modelcontextprotocol/inspector@latest
    ```

    Enter `https://studio-api.growhub.ai/mcp`, choose **Streamable HTTP**, and
    run the Quick OAuth flow.
  </Tab>
</Tabs>

<Note>
  Any client that speaks streamable HTTP can connect directly to the endpoint.
  Clients limited to stdio should bridge through `npx mcp-remote <url>`.
</Note>

## Sign in

The first tool call triggers the OAuth flow:

<Steps>
  <Step title="Your client discovers the authorization server">
    The server answers an unauthenticated request with `401` and a
    `WWW-Authenticate` header pointing at its metadata.
  </Step>

  <Step title="A browser window opens">
    You land on `studio.growhub.ai/login` and continue with Google.
  </Step>

  <Step title="You grant consent">
    Studio issues an access token to the client. It is stored by the client, not
    by you — there is no key to copy.
  </Step>
</Steps>

See [Authentication](/authentication) for the full flow and the endpoints involved.

## Verify it works

Ask your assistant:

```text theme={null}
List my Studio connections.
```

A fresh studio returns an empty list — that is a successful call. Connect a
platform next:

```text theme={null}
Connect LinkedIn to my studio.
```

The `connect_platform` tool returns a URL. Open it, authorize LinkedIn, and ask
for `list_connections` again to confirm.

## Write something

```text theme={null}
Draft a LinkedIn post about our new scheduler, then show me the link.
```

Studio creates the draft and returns its `url`. Open it to review, then:

```text theme={null}
Publish it.
```

<Tip>
  Ask for a draft *first*, review the `url`, then publish. `publish_post` is
  immediate and irreversible from Studio's side — deleting a published post
  happens on the platform.
</Tip>

## Local development

Running the Worker locally? Point the client at your dev server instead:

```bash theme={null}
claude mcp add --transport http studio-dev http://localhost:8787/mcp
```

Local dev uses the same OAuth flow against `http://localhost:5173/login`.
