INTEGRATIONS · MCP

One MCP URL. ChatGPT and Claude talk to your OnlyFans data.

The Only API ships a native MCP server. Connect it to ChatGPT or Claude with OAuth 2.1 — or with a CRM API key if your client can't do OAuth. Then just ask: "who unsubscribed this week, what's my PPV conversion rate, chart revenue per creator." 59 tools across 17 domains, plus escape hatches that reach the full 200+ endpoint surface.

Fansly accounts connected to your panel surface through the same normalized read tools — accounts, subscribers, transactions and earnings all return Fansly data in the OnlyFans shape. Connecting a Fansly account is currently REST-API-only.

URLhttps://theonlyapi.com/mcp

Set up in under a minute

Same OAuth flow on every client. Approve once per panel, and the token lives in your client's config. To cut access off, rotate your API key from /dashboard/api-keys.

ChatGPT

OAuth 2.1 + DCR
  1. 01In ChatGPT, open Settings → Connectors → Add custom connector (you may need to enable developer mode first).
  2. 02Paste https://theonlyapi.com/mcp as the server URL.
  3. 03Click Connect. A consent screen pops up — sign in with the email tied to your CRM panel.
  4. 04Approve the requested scopes. ChatGPT now has access to all 59 tools.

Claude (web / desktop)

OAuth 2.1 + DCR
  1. 01Open Claude → Settings → Connectors → Add custom connector.
  2. 02Paste https://theonlyapi.com/mcp.
  3. 03Approve the OAuth consent screen.
  4. 04The connector is now available in any Claude chat — open the attachments/tools menu to see the available tools.

Claude Code / Claude Agent SDK

CLI
  1. 01Run: claude mcp add --transport http theonlyapi https://theonlyapi.com/mcp
  2. 02An OAuth window opens in your browser — approve.
  3. 03Inside a Claude Code session, type /mcp to confirm the 59 tools are loaded.
  4. 04Build agents that call the OF tools directly from your workflows.

--transport http is required. Without it the CLI defaults to stdio and tries to execute the URL as a local command.

Cursor / config-file clients

JSON config
  1. 01Open your client's MCP config file (Cursor: Settings → Cursor Settings → MCP).
  2. 02Paste the snippet below into mcpServers.
  3. 03Restart the client. OAuth pops automatically on first tool call.

Config snippet — Cursor (OAuth)

{
  "mcpServers": {
    "theonlyapi": {
      "url": "https://theonlyapi.com/mcp"
    }
  }
}

No credential in the file — OAuth runs on the first tool call.

Config snippet — Claude Desktop (bearer)

{
  "mcpServers": {
    "theonlyapi": {
      "url": "https://theonlyapi.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Drop into claude_desktop_config.json and restart. Config-file setups need the explicit Authorization header — grab your key from /dashboard/api-keys. Or skip the file entirely and use the Connectors UI instead.

What you can ask it

A few of the example prompts available in your dashboard — see the full set at /dashboard/mcp. Drop any of these into ChatGPT or Claude after connecting.

"What's my plan and remaining API quota?"
"What's my total earnings this month across all creators?"
"Which creator made the most this week?"
"Show me the top 10 fans by lifetime spend on bella_has_johnson."
"Who unsubscribed in the last 7 days?"
"List subscribers expiring in the next 3 days on bella_has_johnson."
"What's my PPV conversion rate on bella_has_johnson over the last 30 days?"
"Create a tracking-link campaign on bella_has_johnson and show me its claimers."
"What's my biggest single tip this month?"
"Which automations fired in the last 24h and what did they do?"
"Pull this week's revenue per creator and chart it."

59 tools across 17 domains

Every major domain is wrapped for reads; writes cover messaging, campaigns, automations, webhooks, payouts and account settings. Anything not wrapped is reachable via the of_crm_request / of_proxy_request escape hatches. The AI picks which tools to chain based on the question.

Accounts

7 tools

of_list_accounts, of_set_subscription_price, of_get/set_polling, of_get/set_proxy, of_delete_account. Connected Fansly accounts appear here too.

Automations

7 tools

Full CRUD plus of_run_automation_now and of_list_automation_runs to inspect what actually fired.

Webhooks

7 tools

Full CRUD plus of_test_webhook to fire a test payload and of_list_webhook_deliveries for the delivery log.

Earnings

6 tools

of_get_balances, of_get_earnings_summary, of_get_earnings_chart, of_get_payout_account, of_list/create_payout_request.

Campaigns

5 tools

of_list/create_campaign (tracking-link campaigns), of_list_campaign_claimers, of_get_campaign_earnings, of_refresh_campaigns.

Fans

5 tools

of_list_fans, of_refresh_fan_profile, of_add/remove_fan_tag, of_list_fan_transactions for per-fan lifetime spend.

Transactions

5 tools

of_list_purchases, of_list_transactions_cached, of_refresh_transactions, of_get_refresh_status, of_list_active_refreshes.

Inbox & DMs

3 tools

of_list_chats, of_list_messages, of_send_message — read threads and send a single text DM (write requires confirm=true).

Subscribers

3 tools

of_list_subscribers (active / expired / all), of_refresh_subscribers, of_list_subscribers_cached for free repeat reads.

Login

3 tools

of_login_account, of_login_with_cookies, of_verify_login_otp. OnlyFans only — connect Fansly via the REST API.

Escape hatches

2 tools

of_crm_request and of_proxy_request for endpoints not yet wrapped. Non-GET proxying is off by default — enable mcp_unsafe_proxy in the dashboard danger zone.

Events

1 tool

of_list_events — the polled event stream from the backend.

Notifications

1 tool

of_list_notifications — native OnlyFans notifications.

PPV analytics

1 tool

of_get_ppv_stats — PPV conversion rate, revenue and per-fan breakdown over a date range. Read-only.

Integrations

1 tool

of_list_telegram_groups — Telegram groups wired to your panel.

Identity

1 tool

of_whoami — resolve your token to a panel identity.

Usage & quota

1 tool

of_get_usage — live plan, calls consumed this month, and remaining quota. Start here so an agent can budget before looping.

Not exposed over MCP: there are no vault, media-upload, mass-DM or message-scheduling tools. of_send_message sends one text DM to one fan, with no price, media, schedule or recipient-list parameter.

Security model

  • OAuth 2.1 + PKCE + DCR. Industry-standard auth. Each client (ChatGPT, Claude, Cursor) auto-registers via Dynamic Client Registration — no manual client IDs to wrangle.
  • Bearer auth also works. Clients that can't do OAuth can send a CRM API key in the Authorization: Bearer header. Both schemes run side-by-side; the JWT path takes priority when the bearer looks like a JWT.
  • Audience-bound JWTs. The issued token is scoped to one CRM panel and one MCP audience — it cannot be replayed against another tenant or a different MCP server.
  • Write actions require confirm=true. of_send_message, of_create_payout_request, of_delete_account and friends return a dry-run preview unless explicitly confirmed.
  • Untrusted content is fenced. Fan usernames, message text and bios are wrapped in <UNTRUSTED> markers so the model treats them as data, never instructions — a prompt-injection guard.
  • Revoke anytime. Rotate your API key from /dashboard/api-keys — the MCP server's auth cache drops within seconds via push-invalidate, and in-flight sessions are rejected on the next tool call.
  • Rate limits + quota guard. The MCP server enforces the same per-plan API quota as the REST API — runaway AI agents can't blow your budget. Ask of_get_usage for calls consumed and remaining.

Scale affordably in the AI Era

Let's discuss how we can help transform your digital presence and drive growth.