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

# Other MCP Clients

> Configure Affonso MCP with any MCP-compatible client

## Overview

Affonso MCP uses the **Streamable HTTP** transport, which is the standard for cloud-hosted MCP servers. Any client that supports this transport can connect to Affonso.

## Connection Details

| Setting            | Value                                           |
| ------------------ | ----------------------------------------------- |
| **URL**            | `https://api.affonso.io/mcp`                    |
| **Transport**      | Streamable HTTP                                 |
| **Authentication** | OAuth 2.1 (automatic) or Bearer token (API key) |

## Authentication

### OAuth 2.1 (Recommended)

Clients that support OAuth (like Claude.ai, ChatGPT, Claude Desktop) handle authentication automatically. Just enter the server URL and you'll be guided through a login flow — no API key needed.

The server publishes OAuth metadata at:

* `/.well-known/oauth-protected-resource`
* `/.well-known/oauth-authorization-server`

Clients discover these endpoints automatically per the MCP specification.

### API Key

For clients that don't support OAuth, authenticate with a Bearer token:

```json theme={null}
{
  "url": "https://api.affonso.io/mcp",
  "headers": {
    "Authorization": "Bearer sk_live_your_api_key_here"
  },
  "transport": "streamable-http"
}
```

## HTTP Request Format

For custom implementations, MCP requests are standard HTTP POST:

```bash theme={null}
curl -X POST https://api.affonso.io/mcp \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "affonso_list_affiliates",
      "arguments": {
        "limit": 10
      }
    }
  }'
```

## Supported Clients

### Confirmed Compatible

| Client         | Auth Method      | Notes                                                  |
| -------------- | ---------------- | ------------------------------------------------------ |
| Claude.ai      | OAuth            | Just enter the URL — [Setup guide](/mcp/setup/claude)  |
| ChatGPT        | OAuth            | Just enter the URL — [Setup guide](/mcp/setup/chatgpt) |
| Claude Desktop | OAuth or API key | [Setup guide](/mcp/setup/claude)                       |
| Claude Code    | OAuth or API key | [Setup guide](/mcp/setup/claude-code)                  |
| Codex          | OAuth or API key | [Setup guide](/mcp/setup/codex)                        |
| Cursor         | API key          | [Setup guide](/mcp/setup/cursor)                       |
| Continue.dev   | API key          | Use generic config above                               |
| Cline          | API key          | Use generic config above                               |

### Building Custom Clients

If you're building a custom MCP client, use the official MCP SDK:

<CodeGroup>
  ```bash npm theme={null}
  npm install @modelcontextprotocol/sdk
  ```

  ```bash pip theme={null}
  pip install mcp
  ```
</CodeGroup>

Example TypeScript client:

```typescript theme={null}
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";

const transport = new StreamableHTTPClientTransport(
  new URL("https://api.affonso.io/mcp"),
  {
    requestInit: {
      headers: {
        Authorization: "Bearer sk_live_your_api_key"
      }
    }
  }
);

const client = new Client({
  name: "my-app",
  version: "1.0.0"
});

await client.connect(transport);

// List available tools
const tools = await client.listTools();

// Call a tool
const result = await client.callTool({
  name: "affonso_list_affiliates",
  arguments: { limit: 10 }
});
```

## Server Capabilities

The Affonso MCP server supports:

| Capability | Supported      |
| ---------- | -------------- |
| Tools      | Yes (18 tools) |
| Resources  | No             |
| Prompts    | No             |
| Sampling   | No             |

## Rate Limits

MCP requests share the same rate limits as REST API requests:

| Plan       | Requests/min |
| ---------- | ------------ |
| Launch     | 300          |
| Growth     | 600          |
| Elite      | 1,200        |
| Enterprise | 3,000+       |

## Next Steps

<CardGroup cols={2}>
  <Card title="Claude" icon="message-bot" href="/mcp/setup/claude">
    Claude.ai & Claude Desktop setup
  </Card>

  <Card title="Claude Code" icon="terminal" href="/mcp/setup/claude-code">
    Claude Code setup
  </Card>

  <Card title="Codex" icon="terminal" href="/mcp/setup/codex">
    Codex setup
  </Card>

  <Card title="ChatGPT" icon="brain" href="/mcp/setup/chatgpt">
    ChatGPT setup
  </Card>

  <Card title="Cursor" icon="i-cursor" href="/mcp/setup/cursor">
    Cursor IDE setup
  </Card>
</CardGroup>
