Connect Superchat to Claude: Build Content Templates & Send Messages
Learn how to build a managed MCP server for Superchat to automate WhatsApp templates, manage multi-channel conversations, and send messages directly from Claude.
If you need to connect Superchat to Claude to automate WhatsApp templates, resolve cross-channel conversations, or orchestrate bulk messaging workflows, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between Claude's internal tool-calling engine and Superchat's REST APIs. You can either build, host, 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 Superchat to ChatGPT or explore our broader architectural overview on connecting Superchat to AI Agents.
Giving a Large Language Model (LLM) read and write access to a multi-channel messaging platform like Superchat is a complex engineering challenge. You have to handle OAuth 2.0 token lifecycles, map massive nested JSON schemas for conversation threading to MCP tool definitions, and deal with strict rate limits. Every time an endpoint changes or a new channel is added, 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 Superchat, connect it natively to Claude Desktop, and execute complex support workflows using natural language.
The Engineering Reality of the Superchat API
A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover and execute tools, the reality of implementing it against Superchat's specific API architecture is painful. You are not just integrating a simple database - you are orchestrating conversations across WhatsApp, SMS, web chat, and email, all of which have different constraints, metadata formats, and compliance requirements.
If you decide to build a custom MCP server for Superchat, you own the entire API lifecycle. Here are the specific challenges you will face:
Multi-Channel Conversation Context and Time Windows
Superchat unifies conversations from wildly different protocols. When an LLM retrieves a conversation via the API, the payload includes nested channel details (type, id, url), snoozed_until states, and highly specific time_window constraints. WhatsApp, for instance, enforces a strict 24-hour customer service window. If your LLM attempts to reply to a WhatsApp conversation after the window has closed using standard messaging endpoints, the request will fail. Your MCP server must explicitly expose these time_window fields to Claude so the model understands when it must fallback to an approved WhatsApp template instead of a free-form message.
Complex Template Structures and Approvals
Creating messaging templates in Superchat is not a simple string insertion. Templates require managing nested variables, associating them with specific folder_ids, specifying target channels, and binding them to a whats_app_business_account_id. The LLM needs access to precise JSON schemas to generate these structures correctly. If you build this manually, you have to write and maintain TypeScript schemas that perfectly mirror Superchat's requirements, updating them whenever Meta changes their business messaging policies.
Expiring File Links and Attachment Lifecycles
Handling file attachments in Superchat introduces race conditions for AI agents. When you query a file or a conversation export, the Superchat API returns a link object containing a temporary url and a valid_until timestamp. If Claude tries to access that URL after the expiration time, it hits a 403 Forbidden. Your agent needs to know exactly how to fetch fresh URLs if a workflow gets delayed. Truto exposes these expiration timestamps directly in the generated MCP schemas, giving Claude the context it needs to manage file lifecycles safely.
Rate Limit Passthrough and Backoff
Superchat enforces strict rate limits to prevent spam and system abuse. When connecting an autonomous agent to these APIs, the agent can easily trigger HTTP 429 Too Many Requests errors if it tries to sync too many contacts or summarize too many conversations simultaneously. Truto does not retry, throttle, or apply backoff on rate limit errors. Instead, when Superchat returns a 429, Truto passes that error directly to the caller and normalizes the upstream rate limit info into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF spec. It is the responsibility of the caller (your agent framework or Claude) to read these headers and implement intelligent backoff.
How to Generate a Superchat MCP Server with Truto
Truto dynamically generates MCP servers based on the exact configuration of your connected Superchat account. Tools are built on the fly using live integration documentation and schemas. There is zero code to write. You can generate the server via the Truto UI or programmatically via the API.
Method 1: Generating the Server via the Truto UI
For internal tooling and manual Claude Desktop setups, the UI is the fastest path.
- Log into your Truto dashboard and navigate to the Integrated Accounts page.
- Select your connected Superchat account.
- Click the MCP Servers tab.
- Click Create MCP Server.
- Select your desired configuration. For example, you can filter the server to only expose
readmethods to prevent Claude from accidentally sending messages, or restrict it to specific tags liketemplatesorconversations. - Click Generate and copy the resulting MCP Server URL (e.g.,
https://api.truto.one/mcp/a1b2c3d4...).
Method 2: Generating the Server via the API
If you are building an AI product and need to provision MCP servers for your end-users dynamically, use the Truto REST API. This generates a secure token stored in edge KV infrastructure, returning a ready-to-use endpoint.
Make a POST request to /integrated-account/:id/mcp:
curl -X POST https://api.truto.one/integrated-account/YOUR_ACCOUNT_ID/mcp \
-H "Authorization: Bearer YOUR_TRUTO_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Claude Superchat Templates Manager",
"config": {
"methods": ["read", "write"],
"tags": ["templates", "conversations"]
},
"expires_at": "2026-12-31T23:59:59Z"
}'The API responds with the server ID and the authenticated URL:
{
"id": "mcp_8f7e6d5c4b3a",
"name": "Claude Superchat Templates Manager",
"url": "https://api.truto.one/mcp/x9y8z7...",
"config": {
"methods": ["read", "write"],
"tags": ["templates", "conversations"]
},
"expires_at": "2026-12-31T23:59:59Z"
}Keep this URL secure. It contains a cryptographic token that authenticates the JSON-RPC connection directly to that specific Superchat workspace.
Connecting the Superchat MCP Server to Claude
Once you have your Truto MCP URL, you need to register it with your client. Because Truto MCP servers operate over standard Server-Sent Events (SSE) or HTTP POST JSON-RPC 2.0, you do not need to install local npm packages or configure complex environment variables.
Method 1: Via the Claude Desktop UI
Anthropic has made adding remote MCP servers straightforward in their desktop applications.
- Open Claude Desktop.
- Navigate to Settings -> Integrations.
- Click Add MCP Server.
- Paste the Truto MCP URL into the connection field.
- Click Add.
(Note: If you are using ChatGPT Enterprise or Pro, you can follow a similar path: Settings -> Apps -> Advanced settings -> Enable Developer mode -> Add custom connector under MCP servers.)
Method 2: Via Manual Configuration File
For advanced users, CI/CD pipelines, or specific agent frameworks that read from the Claude config file, you can manually map the SSE transport.
Edit your claude_desktop_config.json file (typically found at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"superchat-truto": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sse",
"https://api.truto.one/mcp/x9y8z7..."
]
}
}
}Restart Claude Desktop. Claude will send an initialize request to the server, and Truto will dynamically construct the tool schemas from your Superchat integration documentation and return them to the model.
Superchat Hero Tools for Claude
Truto automatically generates tools for every documented resource and method in the Superchat API. When Claude queries the MCP server, it receives a comprehensive list of capabilities. Here are the highest-leverage tools available for Superchat workflows.
List All Superchat Conversations
list_all_superchat_conversations
This tool retrieves the active conversation inbox. It returns highly detailed objects including the status, channel, assigned users, applied labels, and crucial time_window constraints. Claude can use this to triage the inbox and identify which conversations require immediate action before SLA windows close.
"Fetch all open conversations from Superchat. Filter for those assigned to the support inbox, and group them by channel type (WhatsApp vs Webchat). Flag any WhatsApp conversations where the time_window is expiring in less than 2 hours."
Get Single Conversation by ID
get_single_superchat_conversation_by_id
Once Claude identifies a specific thread, it uses this tool to pull the deep context. This returns the complete state of the thread, including who the contacts are, which internal users are assigned, and the exact channel URLs required for routing or escalation.
"Get the full details for Superchat conversation ID 9482. Identify who the assigned user is, check if there are any snoozed_until constraints active, and summarize the channel details."
Create a Superchat Message
create_a_superchat_message
This is the core execution tool for responding to customers. It requires specifying the origin channel (from), the destination (to), and the content. Because Superchat handles multiple channels, Claude must map the correct handles derived from the conversation context.
"Send a reply to the customer in conversation ID 9482. Use the WhatsApp channel ID associated with that conversation as the 'from' address. The message content should be: 'Your replacement part has been shipped. Tracking number: 1Z99999999.'"
List All Superchat Templates
list_all_superchat_templates
Before initiating a new outbound WhatsApp message (or replying outside the 24-hour window), Claude must use an approved template. This tool allows the model to search the workspace for available templates, inspecting their status, content structure, and required variable formats.
"List all available Superchat templates in the workspace. Find templates that are approved for the WhatsApp channel and return their required content variable schemas so I know how to format a shipping update."
Create a Superchat Template
create_a_superchat_template
For content operations teams, Claude can be used to draft and stage new messaging templates directly into Superchat. The model constructs the required JSON payload containing the name, content, folder_id, and whats_app_business_account_id.
"Draft a new Superchat template named 'holiday_delay_notice'. The content should include a dynamic variable for the customer's first name and the expected delay duration. Target this template for WhatsApp channels and place it in folder ID 102."
Create a Superchat File
create_a_superchat_file
Messaging often requires attachments. This tool allows Claude to upload a file to Superchat's API resource. It returns the file API resource url, a temporary download link (link.url) with its expiration (link.valid_until), and the unique file id which can then be passed into a message creation payload.
"Upload the attached PDF invoice to Superchat. Once uploaded, give me the returned file ID and verify the expiration timestamp on the temporary download link so we can attach it to the next message."
To see the complete list of available Superchat tools, including endpoints for notes, labels, contact lists, and webhooks, view the full inventory on the Superchat integration page.
Workflows in Action
When you connect Claude to Superchat via MCP, you move beyond simple chat interfaces into autonomous, multi-step execution. Here is how Claude handles complex, domain-specific tasks.
Scenario 1: Automated WhatsApp Template Generation & Approval Prep
A marketing operations lead needs to translate a new promotion into localized WhatsApp templates and stage them in Superchat for Meta's approval.
"We are launching a 'Spring Sale' offering 20% off. Check our existing Superchat templates to see how we format our WhatsApp promotional messages. Then, create three new templates for this sale in English, Spanish, and German. Put them all in the 'Promotions' folder."
Step-by-step execution:
- Claude calls
list_all_superchat_template_foldersto find the ID for the "Promotions" folder. - Claude calls
list_all_superchat_templatesto retrieve previous promotional templates, analyzing their variable structures and standard greetings. - Claude translates the new copy into English, Spanish, and German, ensuring it adheres to WhatsApp template variable syntax (e.g.,
{{1}},{{2}}). - Claude calls
create_a_superchat_templatethree separate times, passing the localizedcontent, the targetchannels(WhatsApp), and the correctfolder_id.
Result: The marketing lead gets immediate confirmation that three perfectly formatted templates are now staged in Superchat, ready for final review and Meta submission.
Scenario 2: Cross-Channel VIP Triage
A Customer Success manager needs to audit all incoming messages from high-value accounts and ensure nothing is sitting unanswered.
"Find all open conversations in Superchat. Cross-reference the contact details for these conversations to see if any of them have the custom attribute 'tier' set to 'VIP'. If you find any VIP conversations that have been open for more than 4 hours, draft a summary note and attach it to the conversation for the on-call team."
Step-by-step execution:
- Claude calls
list_all_superchat_conversationsfiltering for open statuses. - For the contacts associated with those conversations, Claude calls
get_single_superchat_contact_by_idto inspect theircustom_attributesarray. - Claude identifies a contact where the attribute
tierequalsVIPand checks the conversation'screated_attimestamp against the current time. - Finding a conversation older than 4 hours, Claude calls
create_a_superchat_noteusing theconversation_id, detailing the SLA breach and summarizing the customer's last message.
Result: High-priority conversations are programmatically flagged with internal notes, ensuring the support team has immediate context when they open the thread.
Security and Access Control
Giving an LLM access to your enterprise messaging platform requires strict boundaries. Truto provides several configuration flags at the MCP token level to ensure Claude only accesses what it should.
- Method Filtering (
methods): You can restrict an MCP server to read-only operations. By passingmethods: ["read"]during token generation, Truto will completely drop allcreate,update, anddeletetools from the MCP schema. Claude physically cannot send a message or delete a contact. - Tag Filtering (
tags): Superchat resources in Truto are tagged by domain. You can passtags: ["conversations", "templates"]to expose only messaging tools, hiding administrative endpoints like user directories or API rate limit metrics. - Enforced Expiration (
expires_at): For temporary workflows or contractor access, you can set an ISO datetime for the MCP server to self-destruct. Truto's underlying KV storage automatically purges the token at the exact second, instantly severing Claude's access. - Extra Authentication (
require_api_token_auth): By default, possessing the MCP URL is enough to connect. If you enable this flag, the connecting client must also pass a valid Truto API token in the Authorization header, preventing leaked URLs from being abused by unauthenticated parties.
Wrapping Up
Integrating Superchat with Claude transforms an LLM from a passive drafting tool into an active participant in your customer communication workflows. By using Truto to generate a managed MCP server, you eliminate the need to write OAuth handlers, maintain complex JSON schemas for WhatsApp templates, or build pagination logic from scratch. You get dynamic, documentation-driven tools that update automatically as the API evolves.
Whether you are triaging cross-channel support queues, bulk-uploading localized messaging templates, or analyzing file attachments, Truto provides the secure, zero-code infrastructure required to make AI agents actually useful in a production environment.
FAQ
- Does Truto automatically handle Superchat API rate limits?
- No. Truto does not retry, throttle, or apply backoff on rate limit errors. When Superchat returns an HTTP 429 Too Many Requests, Truto passes that error directly to the caller and normalizes the upstream rate limit info into standardized IETF headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset). It is the responsibility of the client or AI agent to implement backoff.
- How does Claude handle expiring file URLs in Superchat?
- When Claude fetches a file via the Superchat MCP server, the response schema includes a link object with a 'valid_until' timestamp. Truto explicitly exposes this schema to the LLM, allowing Claude to check if the temporary URL has expired and request a fresh one if necessary.
- Can I prevent Claude from sending messages or modifying Superchat templates?
- Yes. When creating the MCP server in Truto, you can use Method Filtering. By setting the configuration to methods: ['read'], Truto will dynamically strip all create, update, and delete tools from the schema. Claude will only be able to view data, not modify it.
- Do I need to write code to handle WhatsApp template schemas?
- No. Truto dynamically derives the tool schemas from live Superchat integration documentation. Claude receives the exact nested JSON structure required to submit templates, including folder IDs and channel arrays, without you having to write or maintain custom TypeScript interfaces.