# Client setup (/docs/agents/clients)

Every client needs the same server URL:

```text
https://api.osorik.dev/mcp
```

Clients that support OAuth open the Osorik sign-in page the first time they
connect. Clients without OAuth can send a [team API
key](/docs/agents/authentication#api-keys) instead.

<Callout>
  Claude Code is tested end to end. Claude and Cursor use the same OAuth flow.
  If a client fails to connect, write to
  [support@osorik.com](mailto:support@osorik.com) with the client name and
  version.
</Callout>

<Tabs items={['Claude Code', 'Claude', 'Cursor', 'Other clients']}>
<Tab value="Claude Code">

Add the server, then sign in:

```bash
claude mcp add --transport http osorik https://api.osorik.dev/mcp
claude mcp login osorik
```

Add `--scope user` to `claude mcp add` to make Osorik available in every
project, not only the current one.

To use an API key instead of OAuth:

```bash
claude mcp add --transport http osorik https://api.osorik.dev/mcp \
  --header "Authorization: Bearer $OSORIK_API_KEY"
```

</Tab>
<Tab value="Claude">

In Claude on the web or desktop:

1. Open **Settings**, then **Connectors**.
2. Choose **Add custom connector**.
3. Name it `Osorik` and paste `https://api.osorik.dev/mcp` as the URL.
4. Choose **Connect**, sign in to Osorik, pick a team, and approve access.

</Tab>
<Tab value="Cursor">

Add Osorik to `.cursor/mcp.json` in your project, or to `~/.cursor/mcp.json`
for every project:

```json title="mcp.json"
{
  "mcpServers": {
    "osorik": {
      "url": "https://api.osorik.dev/mcp"
    }
  }
}
```

Open **Cursor Settings**, then **MCP**, and choose **Connect** next to Osorik to
sign in.

</Tab>
<Tab value="Other clients">

Any client that supports the streamable HTTP transport can connect.

- **With OAuth:** point the client at `https://api.osorik.dev/mcp`. A request without a
  token returns `401` with a `WWW-Authenticate` header that links to the
  protected resource metadata, which starts discovery.
- **With an API key:** send it on every request as
  `Authorization: Bearer osk_…`.

</Tab>
</Tabs>
