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

# Get started

> Install synth-ai[research], connect the Managed Research MCP, and verify connectivity.

This page is the shortest path from **zero** to a working **MCP** connection. Install
the unified SDK first — Managed Research and Research Factory both use
`SynthClient().research`. For product context, read [Managed Research
intro](/managed-research/intro) or [Research Factory](/managed-research/research-factory).

## 1. Sign in and API key

1. Create or open your Synth account at [usesynth.ai](https://usesynth.ai/signup).
2. Create a **Synth API key** in the product (same key type as other Synth API access).
3. Expose it to your terminal and MCP clients as **`SYNTH_API_KEY`**.

For self-hosted or staging backends, set **`SYNTH_BACKEND_URL`** to that base URL. Production MCP defaults to the hosted API; see [MCP Quickstart](/managed-research/mcp-quickstart#connect) for details.

## 2. Install synth-ai and connect MCP

```bash theme={null}
uv add "synth-ai[research]"
export SYNTH_API_KEY="sk_..."
```

Managed Research MCP is served from the Synth API. Connect from Codex or Claude Code
— no separate MCP package required for the hosted HTTP path.

<Tabs>
  <Tab title="Codex">
    ```bash theme={null}
    codex mcp add managed-research --url https://api.usesynth.ai/mcp
    ```

    Ensure **`SYNTH_API_KEY`** is available in the environment Codex uses (shell profile, IDE env, or Codex config), per Codex docs for MCP env inheritance.
  </Tab>

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

    Ensure **`SYNTH_API_KEY`** is set for the Claude Code process.
  </Tab>

  <Tab title="Local stdio">
    ```bash theme={null}
    uv tool install "synth-ai[research]"
    synth-ai-managed-research-mcp
    ```

    Point your MCP client at the stdio command; set **`SYNTH_API_KEY`** (and **`SYNTH_BACKEND_URL`** if not production).
  </Tab>
</Tabs>

## 3. Smoke test

In your agent client, ask for something that forces a tool call, for example:

```text theme={null}
List my Managed Research projects.
```

You should see a call to **`smr_list_projects`**. An empty list still means auth and connectivity succeeded.

## 4. Next steps

<CardGroup cols={2}>
  <Card title="Projects in the web app" icon="window" href="/managed-research/projects-and-context#using-projects-in-the-web-app-logged-in">
    Navigate the logged-in project hub, runs, resources, and results in the browser.
  </Card>

  <Card title="MCP Quickstart" icon="plug" href="/managed-research/mcp-quickstart">
    Start one-off and project-scoped runs and inspect evidence from MCP.
  </Card>

  <Card title="MCP tool reference" icon="list" href="/managed-research/mcp-reference">
    Full `smr_*` tool list grouped by area.
  </Card>

  <Card title="Python SDK quickstart" icon="code" href="/managed-research/sdk-quickstart">
    Script runs with `SynthClient().research`.
  </Card>
</CardGroup>

Public automation should use **MCP** or **`SynthClient().research`**, not ad hoc `/smr`
REST calls. See [Managed Research intro](/managed-research/intro#public-contract).
