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

# Connect Claude

> Use Bouncy in Claude on the web, desktop and mobile, in Claude Code and through the Claude API

Bouncy works everywhere Claude supports remote MCP servers. Pick the Claude you use:

* [Claude on the web, desktop and mobile](#claude-on-the-web-desktop-and-mobile): sign in with one click, no API key.
* [Claude Code](#claude-code): sign in from the terminal, or use an API key.
* [Claude API](#claude-api): call Bouncy tools from your own code with an API key.

## Claude on the web, desktop and mobile

<Steps>
  <Step title="Open connector settings">
    In Claude on the web ([claude.ai](https://claude.ai)) or in Claude Desktop, open **Customize**, then **Connectors**, and click **Add custom connector** (the **+** button).
  </Step>

  <Step title="Paste the Bouncy URL">
    * **Name:** `Bouncy`
    * **URL:** `https://mcp.bouncy.ai/mcp`

    Leave the advanced settings (OAuth Client ID and Client Secret) empty, then click **Add**.
  </Step>

  <Step title="Connect and approve">
    Click **Connect**. A Bouncy page opens:

    1. Log in to Bouncy if you are asked to.
    2. Check that the page says **Claude** is asking and shows **claude.ai** with a **Verified** badge.
    3. Pick an access level. **Full Access** is selected by default. Choose **Viewer** if Claude only needs to report on stats.
    4. Click **Approve**. You are sent back to Claude.
  </Step>

  <Step title="Use it in a chat">
    Start a chat and make sure **Bouncy** is switched on in the tools menu under the message box. Then ask, for example:

    > Create a deeplink for onlyfans.com/amy on tapmy.social with the slug amy and turn on the 18+ warning.

    Claude replies with the new deeplink, for example `https://tapmy.social/amy`.
  </Step>
</Steps>

### Claude mobile apps

Add the connector once on the web or in Claude Desktop. It then shows up in the Claude apps for iOS and Android when you are signed in to the same Claude account, and you can switch it on from the tools menu in any chat.

### Claude plan notes

<AccordionGroup>
  <Accordion title="Free Claude plans allow one custom connector">
    On the free Claude plan you can add one custom connector. If you already have one, remove it first, or upgrade your Claude plan to add more. Paid Claude plans (Pro, Max, Team and Enterprise) can add several.
  </Accordion>

  <Accordion title="Claude Team and Enterprise">
    An **Owner** of your Claude organization adds Bouncy once, under **Organization settings**, then **Connectors**, using **Add custom connector** with the same URL.

    After that, each member finds Bouncy in their own **Customize**, then **Connectors** list and clicks **Connect**. Every member signs in with their own Bouncy account, so people only ever reach their own Bouncy data.
  </Accordion>

  <Accordion title="Tool permissions">
    Claude asks before it runs a tool that changes something, such as creating, updating or deleting a deeplink, unless you have set that tool to always allow. Bouncy marks its tools as read-only, write or destructive so Claude knows which ones need extra care.

    We recommend keeping confirmations on for the update, pause and delete tools. See [Security](/mcp/security).
  </Accordion>
</AccordionGroup>

## Claude Code

Add Bouncy once for all your projects:

```bash theme={null}
claude mcp add --transport http --scope user bouncy https://mcp.bouncy.ai/mcp
```

Then start Claude Code, type `/mcp`, choose **bouncy** and pick **Authenticate**. Your browser opens the Bouncy approval page. Approve, return to the terminal, and the Bouncy tools are ready.

### Use an API key instead

If you prefer not to sign in through the browser (for example on a server), send a Bouncy API key as a header. Create one in the [API dashboard](https://app.bouncy.ai/api/dashboard) and pick the role you want the AI to have.

```bash theme={null}
claude mcp add --transport http --scope user bouncy https://mcp.bouncy.ai/mcp \
  --header "Authorization: Bearer bcy_live_pk_YOUR_API_KEY"
```

<Warning>
  Do not add a key with `--scope project`. That writes it into `.mcp.json` in your repository, which is usually committed and shared. Keep keys in user scope or in an environment variable.
</Warning>

Useful commands:

| Command                     | What it does                                           |
| --------------------------- | ------------------------------------------------------ |
| `claude mcp list`           | Shows your MCP servers and whether Bouncy is connected |
| `/mcp` (inside Claude Code) | Signs in, checks status or clears the sign-in          |
| `claude mcp remove bouncy`  | Removes Bouncy from Claude Code                        |

## Claude API

The Claude API's MCP connector lets your own code give Claude the Bouncy tools. Anthropic connects to `https://mcp.bouncy.ai/mcp` for you, so you do not need an MCP client library.

The API does not run the Bouncy sign-in page, so pass a Bouncy API key as the `authorization_token`. Create it in the [API dashboard](https://app.bouncy.ai/api/dashboard). A **Viewer** key is the safest choice for reporting tasks.

The request needs three things together:

* the beta header `anthropic-beta: mcp-client-2025-11-20`
* `mcp_servers` with the Bouncy URL, a name and your key
* a `tools` entry of type `mcp_toolset` that points at that same name

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.anthropic.com/v1/messages \
    -H "content-type: application/json" \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "anthropic-beta: mcp-client-2025-11-20" \
    -d '{
      "model": "claude-opus-5",
      "max_tokens": 16000,
      "mcp_servers": [
        {
          "type": "url",
          "url": "https://mcp.bouncy.ai/mcp",
          "name": "bouncy",
          "authorization_token": "bcy_live_pk_YOUR_API_KEY"
        }
      ],
      "tools": [
        { "type": "mcp_toolset", "mcp_server_name": "bouncy" }
      ],
      "messages": [
        { "role": "user", "content": "Which of my deeplinks got the most views in the last 7 days?" }
      ]
    }'
  ```

  ```python Python theme={null}
  import os
  import anthropic

  client = anthropic.Anthropic()

  response = client.beta.messages.create(
      model="claude-opus-5",
      max_tokens=16000,
      betas=["mcp-client-2025-11-20"],
      mcp_servers=[
          {
              "type": "url",
              "url": "https://mcp.bouncy.ai/mcp",
              "name": "bouncy",
              "authorization_token": os.environ["BOUNCY_API_KEY"],
          }
      ],
      tools=[{"type": "mcp_toolset", "mcp_server_name": "bouncy"}],
      messages=[
          {"role": "user", "content": "Which of my deeplinks got the most views in the last 7 days?"}
      ],
  )

  for block in response.content:
      if block.type == "text":
          print(block.text)
  ```

  ```typescript TypeScript theme={null}
  import Anthropic from "@anthropic-ai/sdk";

  const client = new Anthropic();

  const response = await client.beta.messages.create({
    model: "claude-opus-5",
    max_tokens: 16000,
    betas: ["mcp-client-2025-11-20"],
    mcp_servers: [
      {
        type: "url",
        url: "https://mcp.bouncy.ai/mcp",
        name: "bouncy",
        authorization_token: process.env.BOUNCY_API_KEY,
      },
    ],
    tools: [{ type: "mcp_toolset", mcp_server_name: "bouncy" }],
    messages: [
      { role: "user", content: "Which of my deeplinks got the most views in the last 7 days?" },
    ],
  });

  for (const block of response.content) {
    if (block.type === "text") console.log(block.text);
  }
  ```
</CodeGroup>

The response includes `mcp_tool_use` and `mcp_tool_result` blocks for each Bouncy tool Claude called, followed by Claude's answer.

### Allow only some tools

To limit Claude to a few tools, turn everything off by default and switch on the ones you want:

```json theme={null}
"tools": [
  {
    "type": "mcp_toolset",
    "mcp_server_name": "bouncy",
    "default_config": { "enabled": false },
    "configs": {
      "bouncy_list_deeplinks": { "enabled": true },
      "bouncy_get_deeplink_stats": { "enabled": true }
    }
  }
]
```

Tool names are listed in the [tools reference](/mcp/tools). The key's role still applies on top: a Viewer key can never create or change anything, whatever the toolset allows.

<Warning>
  Keep the Bouncy API key on your server. Never put it in browser or mobile app code.
</Warning>
