Skip to content

Connect Fanvue to Claude: Analyze Earnings & Audience Insights

Learn how to connect Fanvue to Claude using a managed MCP server. Automate earnings analysis, audience segmentation, and mass messaging campaigns with AI agents.

Sidharth Verma Sidharth Verma · · 10 min read
Connect Fanvue to Claude: Analyze Earnings & Audience Insights

If you need to connect Fanvue to Claude to automate creator earnings analysis, audience segmentation, or mass messaging campaigns, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between Claude's tool-calling capabilities and Fanvue's REST endpoints. You can either build and maintain this infrastructure yourself, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL.

If your team uses ChatGPT, check out our guide on connecting Fanvue to ChatGPT or explore our broader architectural overview on connecting Fanvue to AI Agents.

Giving a Large Language Model (LLM) read and write access to a creator platform like Fanvue is an engineering challenge. You have to handle OAuth 2.0 token lifecycles, map massive JSON schemas to MCP tool definitions, and deal with Fanvue's specific pagination and media handling quirks. Every time Fanvue updates an endpoint or deprecates a field, you have to update your server code, redeploy, and test the integration. This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Fanvue, connect it natively to Claude, and execute complex workflows using natural language.

The Engineering Reality of the Fanvue API

A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, implementing it against Fanvue's APIs requires navigating several platform-specific realities.

If you decide to build a custom MCP server for Fanvue, you own the entire API lifecycle. Here are the specific challenges you will face:

Complex Audience Segmentation and Contactability Fanvue does not rely on a flat "followers" list for audience management. The platform heavily utilizes dynamically computed segments called "Smart Lists" (e.g., subscribers, followers, auto_renewing, expired_subscribers) alongside manually curated "Custom Lists". When prompting Claude to message a specific audience, the LLM must first resolve the correct List UUID and understand contactability rules. A managed MCP server exposes these separate list resolution endpoints cleanly, allowing Claude to map intent to the correct UUID before triggering a mass message.

Asynchronous Media Resolution and Variant URLs Media handling in Fanvue is not as simple as passing a standard image URL. Uploads require initiating a multipart session, completing an S3 upload, and polling for status changes from PROCESSING to FINALISED. When retrieving media - such as chat attachments or vault items - the API relies on signed variant URLs that are short-lived. Claude cannot simply cache these URLs; it must re-resolve them dynamically using tools like list_all_fanvue_creator_chat_message_media. Managing this state machine manually inside a custom MCP server is tedious.

Aggregated Time-Series Analytics Fanvue provides rich earning and subscriber insights, but they are returned as time-series data buckets rather than standard REST objects. Querying these requires precise startDate and endDate parameters, and financial values are strictly represented in USD cents (e.g., gross and net). An LLM needs explicit schema descriptions to format these date ranges correctly and avoid hallucinatory math when converting cents to dollars.

Strict Rate Limits and Backoff Like any high-traffic platform, Fanvue enforces rate limits. Truto does not silently retry, throttle, or apply backoff on rate limit errors. Instead, when Fanvue returns an HTTP 429 error, Truto passes that error directly to the caller, normalizing the upstream rate limit info into standardized IETF headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset). Your MCP client or agent must read these headers and handle the retry logic.

How to Generate a Fanvue MCP Server with Truto

Truto dynamically generates MCP tools based on the active Fanvue integration schema. Tools are not pre-compiled; they are generated on the fly by reading the integration's documentation records and endpoint definitions. If a Fanvue endpoint lacks documentation in Truto, it will not be exposed to the LLM - serving as a strict quality gate.

You can generate an MCP server for your connected Fanvue account using either the Truto UI or the API.

Method 1: Via the Truto UI

For administrators setting up one-off environments or testing Claude configurations:

  1. Navigate to the Integrated Accounts page in your Truto dashboard.
  2. Select your connected Fanvue account.
  3. Click the MCP Servers tab.
  4. Click Create MCP Server.
  5. Select your desired configuration (e.g., restrict to read methods or apply specific tags).
  6. Copy the generated MCP server URL (e.g., https://api.truto.one/mcp/a1b2c3d4e5f6...).

Method 2: Via the API

For engineers building multi-tenant AI products who need to provision Claude environments programmatically, issue a POST request to the integrated account endpoint:

curl -X POST https://api.truto.one/integrated-account/<FANVUE_ACCOUNT_ID>/mcp \
  -H "Authorization: Bearer <TRUTO_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Claude Fanvue Analytics Server",
    "config": {
      "methods": ["read", "list"]
    }
  }'

The Truto API verifies that the Fanvue integration is AI-ready, hashes the token for secure KV storage, and returns a ready-to-use URL:

{
  "id": "mcp_srv_9x8y7z",
  "name": "Claude Fanvue Analytics Server",
  "config": { "methods": ["read", "list"] },
  "expires_at": null,
  "url": "https://api.truto.one/mcp/a1b2c3d4e5f6..."
}

This URL is fully self-contained. It encodes the integrated Fanvue account, the required authentication, and the configured method filters.

Connecting the MCP Server to Claude

Once you have the Truto MCP URL, you can connect it to Claude in two ways, depending on your environment.

Method A: Via the Claude UI

If you are using Claude Desktop or Claude Web with Custom Connectors enabled:

  1. Open Claude Settings.
  2. Navigate to Integrations (or Connectors depending on your plan tier).
  3. Click Add MCP Server or Add custom connector.
  4. Paste the Truto MCP URL into the Server URL field.
  5. Click Add.

Claude will immediately ping the endpoint, execute the MCP initialize handshake, and populate its context with the available Fanvue tools.

Method B: Via Manual Configuration File

For local development or headless Claude Desktop deployments, you can configure the MCP server using the claude_desktop_config.json file. Because Truto MCP servers use the Server-Sent Events (SSE) transport over HTTPS, you can use the official @modelcontextprotocol/server-sse wrapper.

Locate your configuration file (e.g., ~/Library/Application Support/Claude/claude_desktop_config.json on macOS) and add the following:

{
  "mcpServers": {
    "fanvue_analytics": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "https://api.truto.one/mcp/a1b2c3d4e5f6..."
      ]
    }
  }
}

Restart Claude Desktop. The agent will read the config, establish the connection, and discover the Fanvue integration resources.

Hero Tools for Fanvue Automation

When Claude connects to the Fanvue MCP server, it parses Truto's dynamically generated tools. Here are 6 high-leverage tools available for Fanvue automation and how Claude uses them.

1. list_all_fanvue_earnings_summaries

Retrieves pre-aggregated earnings metrics for the authenticated Fanvue creator, including all-time totals, month-over-month comparisons, and breakdowns by source (e.g., subscriptions, tips, mass messages).

Usage Note: Financial figures are returned in USD cents (gross, net). Claude uses this to analyze revenue trends without having to manually aggregate thousands of individual transaction rows.

"Claude, pull my Fanvue earnings summary for this month. Calculate my month-over-month growth percentage and tell me which revenue source (tips vs subscriptions) grew the fastest."

2. list_all_fanvue_insights_top_spenders

Lists the highest-spending fans for a creator. Returns comprehensive fan records including total gross spend, net earnings, message counts, and detailed user profiles (isTopSpender, registration dates).

Usage Note: Excellent for VIP identification and targeted campaign planning. The LLM can correlate message counts with net spend to identify high-value, low-maintenance subscribers.

"Retrieve the list of my top 20 spenders on Fanvue. Filter out anyone who has sent more than 100 messages, and format the remaining VIPs into a table with their display names and total net spend in dollars."

Lists tracking links with comprehensive performance metadata. Returns clicks, subscriber acquisitions, follower conversions, and total revenue generated per link.

Usage Note: Essential for marketing ROI. Claude uses this to determine which external social platforms (e.g., Twitter, Instagram) are driving actual paying subscribers versus empty clicks.

"Analyze my Fanvue tracking links. Compare the conversion rate (clicks to acquired subscribers) between my Twitter links and my Instagram links, and tell me which platform generated higher total net earnings."

4. list_all_fanvue_chats_smart_lists

Fetches all available system-generated dynamic audience segments (e.g., subscribers, followers, auto_renewing, expired_subscribers) along with real-time member counts.

Usage Note: This is the prerequisite step before launching a mass messaging campaign. Claude must read the Smart List UUIDs to know where to direct the broadcast.

"Check the member counts for my Fanvue smart lists. Tell me how many users are in the 'expired_subscribers' segment compared to 'auto_renewing'."

5. create_a_fanvue_creator_chats_mass_message

Broadcasts a mass message to one or more recipient lists. Accepts text, media UUIDs, price thresholds (for pay-to-view content), and scheduling parameters.

Usage Note: If price is included, it must be at least 200 cents ($2.00) and requires accompanying mediaUuids. Claude can use the scheduledAt field to queue messages for peak engagement hours.

"Draft a re-engagement mass message offering a custom video request. Once I approve the copy, use the 'expired_subscribers' list UUID to send it as a pay-to-view message priced at $5.00."

6. create_a_fanvue_creator_post

Publishes or schedules a new post to the creator's feed. Supports audience targeting, pricing, and media attachments.

Usage Note: By passing a future ISO 8601 timestamp to publishAt, Claude can act as an autonomous social media manager, batching content creation and scheduling posts for the entire week.

"Draft three promotional posts for my Fanvue feed based on my recent content themes. Schedule the first post for tomorrow at 9 AM, and the second for Friday at 5 PM."

For the complete inventory of available Fanvue endpoints, schema definitions, and required parameters, visit the Truto Fanvue Integration Reference.

Workflows in Action

Integrating Claude with Fanvue transforms manual platform management into conversational, agentic workflows. Here is how Claude executes multi-step processes using the Fanvue MCP server.

Workflow 1: EOM Earnings Audit & VIP Outreach

Creators and agency managers spend hours at the end of the month reconciling revenue and identifying fans who deserve special attention. You can prompt Claude to handle this entire lifecycle automatically.

"Claude, run my end-of-month Fanvue audit. First, get my earnings summary to check if we hit our $10k net goal. Then, find the top 10 spenders from this month. Finally, draft a thank-you mass message specifically for the 'subscribers' smart list, but don't send it yet."

How Claude executes this:

  1. Calls list_all_fanvue_earnings_summaries to retrieve total net earnings and month-over-month deltas.
  2. Calls list_all_fanvue_insights_top_spenders to extract the top 10 fans by net spend.
  3. Calls list_all_fanvue_chats_smart_lists to locate the exact UUID for the subscribers dynamic segment.
  4. Drafts the message text in its local context and presents the audit summary and proposed copy to the user.
sequenceDiagram
    participant User
    participant Claude as Claude Desktop
    participant MCP as Truto MCP Server
    participant Fanvue as Fanvue API

    User->>Claude: "Run EOM audit and prep VIP message"
    Claude->>MCP: Call list_all_fanvue_earnings_summaries
    MCP->>Fanvue: GET /api/v1/insights/earnings/summary
    Fanvue-->>MCP: { "totals": { "net": 1050000 } }
    MCP-->>Claude: JSON Schema Result
    
    Claude->>MCP: Call list_all_fanvue_insights_top_spenders
    MCP->>Fanvue: GET /api/v1/insights/top-spenders
    Fanvue-->>MCP: { "data": [...] }
    MCP-->>Claude: JSON Schema Result

    Claude->>MCP: Call list_all_fanvue_chats_smart_lists
    MCP->>Fanvue: GET /api/v1/chats/smart-lists
    Fanvue-->>MCP: { "data": [ { "name": "subscribers", "uuid": "abc-123" } ] }
    MCP-->>Claude: JSON Schema Result

    Claude-->>User: "Goal met! $10,500 net. Here are your top 10 spenders and the drafted message."

When managing traffic from external platforms, creators need to know exactly which links are converting. Claude can cross-reference tracking links with user metadata to calculate precise acquisition costs and ROI.

"Review my Fanvue tracking links. Identify which link generated the highest number of new subscribers this week. Then, pull the user metadata for that link so I can see where the traffic originated."

How Claude executes this:

  1. Calls list_all_fanvue_creator_tracking_links to retrieve the array of active tracking campaigns, analyzing the engagement.acquiredSubscribers and earnings.totalNet fields.
  2. Identifies the winning uuid (e.g., a specific Twitter promo link).
  3. Calls list_all_fanvue_tracking_link_users using that UUID to get the specific fan profiles converted by that campaign.
  4. Synthesizes the data into a performance report detailing conversion rates and the exact audience acquired.

Security and Access Control

When granting AI agents access to a platform that handles financial transactions and direct messaging, strict access control is non-negotiable. Truto's MCP architecture enforces security at the infrastructure layer, ensuring the LLM cannot hallucinate its way into destructive actions.

  • Method Filtering: You can restrict the Fanvue MCP server strictly to read-only operations. Passing "methods": ["read"] during server creation guarantees Claude can only execute GET and LIST tools, making it impossible for the agent to accidentally publish posts or alter banking data.
  • Tag-Based Scoping: Limit the server's access to specific functional areas using config.tags. For example, you can scope an agent purely to analytics by filtering for ["insights"] tags, hiding chat and media resources entirely.
  • Secondary Authentication: By enabling require_api_token_auth: true, possession of the MCP URL is no longer sufficient. The connecting client must also pass a valid Truto API token, locking down environments where the MCP URL might be exposed in configuration logs.
  • Ephemeral Servers: Set an expires_at timestamp when creating the MCP server. Truto utilizes Durable Object alarms to automatically sever the connection and wipe the access token from Cloudflare KV once the TTL expires - perfect for temporary agent tasks.

Moving Past Manual Creator Management

Connecting Fanvue to Claude via an MCP server bridges the gap between conversational AI and complex creator operations. By offloading the boilerplate of token refreshes, S3 multipart uploads, pagination schemas, and rate limit headers to a managed integration layer, engineering teams can focus entirely on prompt design and agent logic.

Whether you are building internal tools for talent agencies or autonomous agents that manage creator communities, Truto provides the secure, schema-driven foundation required to deploy AI against the Fanvue API reliably.

FAQ

Does Truto automatically handle Fanvue API rate limits?
No. Truto normalizes upstream rate limit information into standardized IETF headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) and passes HTTP 429 errors directly to the caller. The MCP client or AI agent is responsible for implementing retry and backoff logic.
How do I restrict the Claude agent from sending mass messages on Fanvue?
When creating the MCP server via Truto, use method filtering. Pass `"methods": ["read"]` in the configuration payload to strictly expose only GET and LIST endpoints, preventing Claude from executing state-changing operations like sending messages or creating posts.
How does Fanvue handle media attachments in chat messages?
Media in Fanvue relies on S3 multipart uploads and specific UUIDs. To send a mass message or post with media, the media must first be uploaded and finalized. Tools like `list_all_fanvue_creator_chat_message_media` retrieve signed variant URLs for these media items.

More from our Blog