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.
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- 01In ChatGPT, open Settings → Connectors → Add custom connector (you may need to enable developer mode first).
- 02Paste https://theonlyapi.com/mcp as the server URL.
- 03Click Connect. A consent screen pops up — sign in with the email tied to your CRM panel.
- 04Approve the requested scopes. ChatGPT now has access to all 59 tools.
Claude (web / desktop)
OAuth 2.1 + DCR- 01Open Claude → Settings → Connectors → Add custom connector.
- 02Paste https://theonlyapi.com/mcp.
- 03Approve the OAuth consent screen.
- 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- 01Run: claude mcp add --transport http theonlyapi https://theonlyapi.com/mcp
- 02An OAuth window opens in your browser — approve.
- 03Inside a Claude Code session, type /mcp to confirm the 59 tools are loaded.
- 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- 01Open your client's MCP config file (Cursor: Settings → Cursor Settings → MCP).
- 02Paste the snippet below into mcpServers.
- 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.
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 toolsof_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 toolsFull CRUD plus of_run_automation_now and of_list_automation_runs to inspect what actually fired.
Webhooks
7 toolsFull CRUD plus of_test_webhook to fire a test payload and of_list_webhook_deliveries for the delivery log.
Earnings
6 toolsof_get_balances, of_get_earnings_summary, of_get_earnings_chart, of_get_payout_account, of_list/create_payout_request.
Campaigns
5 toolsof_list/create_campaign (tracking-link campaigns), of_list_campaign_claimers, of_get_campaign_earnings, of_refresh_campaigns.
Fans
5 toolsof_list_fans, of_refresh_fan_profile, of_add/remove_fan_tag, of_list_fan_transactions for per-fan lifetime spend.
Transactions
5 toolsof_list_purchases, of_list_transactions_cached, of_refresh_transactions, of_get_refresh_status, of_list_active_refreshes.
Inbox & DMs
3 toolsof_list_chats, of_list_messages, of_send_message — read threads and send a single text DM (write requires confirm=true).
Subscribers
3 toolsof_list_subscribers (active / expired / all), of_refresh_subscribers, of_list_subscribers_cached for free repeat reads.
Login
3 toolsof_login_account, of_login_with_cookies, of_verify_login_otp. OnlyFans only — connect Fansly via the REST API.
Escape hatches
2 toolsof_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 toolof_list_events — the polled event stream from the backend.
Notifications
1 toolof_list_notifications — native OnlyFans notifications.
PPV analytics
1 toolof_get_ppv_stats — PPV conversion rate, revenue and per-fan breakdown over a date range. Read-only.
Integrations
1 toolof_list_telegram_groups — Telegram groups wired to your panel.
Identity
1 toolof_whoami — resolve your token to a panel identity.
Usage & quota
1 toolof_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: Bearerheader. 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_accountand 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_usagefor calls consumed and remaining.
Open in dashboard
/dashboard/mcp →
Copy-paste client configs, your bearer API key, and 24 example prompts.
Pricing
/pricing →
Same plans, same quota. Free: 1 account, 1,000 API calls/month. Slots: $20/slot/mo ($15 at 15+). Enterprise: custom.
Help center
help.xcelerator.agency →
Troubleshooting, OAuth flow diagrams, full tool reference.
Scale affordably in the AI Era
Let's discuss how we can help transform your digital presence and drive growth.