Connect Help Scout to Claude: Sync Support Threads and Workflows
Learn how to connect Help Scout to Claude using a managed MCP server. Automate ticket triage, read conversation threads, and sync customer data natively.
If you need your AI agents to read support tickets, draft replies, and update customer profiles in Help Scout, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between Claude's native tool-calling capabilities and Help Scout's REST APIs. If your team uses ChatGPT, check out our guide on connecting Help Scout to ChatGPT or explore our broader architectural overview on connecting Help Scout to AI Agents.
Giving a Large Language Model (LLM) read and write access to a sprawling support ecosystem like Help Scout is an engineering challenge. You have to handle OAuth 2.0 token lifecycles, map massive nested JSON schemas to MCP tool definitions, and deal with Help Scout's specific rate limits. Every time an endpoint updates, 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 Help Scout, connect it natively to Claude, and execute complex support workflows using natural language.
The Engineering Reality of the Help Scout 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, the reality of implementing helpdesk integrations against Help Scout's APIs requires significant custom logic.
If you decide to build a custom MCP server for Help Scout, you own the entire API lifecycle. Here are the specific Help Scout challenges you will face:
The Mailbox, Conversation, and Thread Hierarchy
Help Scout does not have a flat "tickets" table. The data model is strictly hierarchical. Every ticket is a Conversation, but you cannot easily query all conversations globally - they are segmented by Mailbox. Inside every conversation are Threads, which represent the individual back-and-forth messages, internal notes, and state changes. If you expose raw endpoints to Claude, the model will frequently attempt to update a Conversation's text directly, rather than correctly creating a new Thread attached to the Conversation. A managed MCP toolset normalizes these schemas so the LLM understands exactly which entity to target.
Embedded Customer Sub-Entities Help Scout's Customer object is highly complex. Phone numbers, email addresses, chat handles, and social profiles are not flat strings; they are arrays of typed objects. Updating a customer requires patching these specific arrays. If an LLM tries to write a flat email string to a customer profile, the API will reject the payload. Truto's dynamically generated tools provide explicit JSON Schema definitions for these embedded entities, preventing malformed requests.
Rate Limits and 429 Passthrough
Help Scout enforces rate limits per endpoint (e.g., 400 requests per minute for the Mailbox API). If your AI agent gets stuck in a loop or attempts to summarize 500 conversation threads concurrently, it will hit a 429 Too Many Requests error. Truto does not retry, throttle, or apply backoff on rate limit errors. When Help Scout returns an HTTP 429, Truto passes that error directly to the caller. Truto normalizes the upstream rate limit information into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF spec. Your AI agent or MCP client is completely responsible for handling the retry and backoff logic using these headers.
Instead of building OAuth state management, schema generation, and pagination handling from scratch, you can use Truto to generate a secure MCP server URL in seconds.
Step 1: Generate the Help Scout MCP Server
Truto derives MCP tools dynamically from the Help Scout integration's resource definitions. You can spin up an MCP server via the Truto UI or programmatically via the API.
Method A: Via the Truto UI
If you are manually provisioning access for an internal AI agent, the Truto UI is the fastest path:
- Log into your Truto dashboard and navigate to the Integrated Accounts page.
- Select your connected Help Scout account.
- Click the MCP Servers tab.
- Click Create MCP Server.
- Select your desired configuration (name, allowed methods, tags, and expiry).
- Copy the generated MCP server URL (e.g.,
https://api.truto.one/mcp/a1b2c3d4e5f6...).
Method B: Via the API
If you are embedding AI capabilities into a SaaS product and need to generate MCP servers for your end-users dynamically, use the Truto REST API.
The API generates a secure token, provisions the server, and returns a ready-to-use URL.
Endpoint: POST /integrated-account/:id/mcp
Request body:
{
"name": "Help Scout Support Agent MCP",
"config": {
"methods": ["read", "write"]
},
"expires_at": "2026-12-31T23:59:59Z"
}Response:
{
"id": "mcp_srv_9x8y7z6",
"name": "Help Scout Support Agent MCP",
"config": {
"methods": ["read", "write"]
},
"expires_at": "2026-12-31T23:59:59Z",
"url": "https://api.truto.one/mcp/a1b2c3d4e5f67890"
}This URL is fully self-contained. It encodes the tenant routing and authentication required to execute tools against that specific Help Scout instance.
Step 2: Connect the MCP Server to Claude
Once you have the Truto MCP URL, you need to register it with your Claude environment. All communication happens over HTTP POST using standard JSON-RPC 2.0 messages.
Method A: Via the Claude UI
If you are using Claude's enterprise or team interfaces that support custom custom connections:
- In Claude, navigate to Settings -> Integrations -> Add MCP Server.
- Name the integration (e.g., "Help Scout Truto").
- Paste the Truto MCP server URL.
- Click Add.
Claude will immediately call the tools/list initialization method and discover all available Help Scout tools.
Method B: Via Manual Config File (Claude Desktop)
If you are running Claude Desktop locally, you configure MCP servers by editing the claude_desktop_config.json file. Because Truto exposes a remote HTTP/SSE endpoint and Claude Desktop natively expects local stdio processes, you use the official @modelcontextprotocol/server-sse transport bridge.
Open your Claude config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add the Help Scout server:
{
"mcpServers": {
"help-scout": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sse",
"https://api.truto.one/mcp/a1b2c3d4e5f67890"
]
}
}
}Save the file and restart Claude Desktop. The model now has full access to the Help Scout API.
High-Leverage Help Scout MCP Tools
Truto automatically maps Help Scout's API into dozens of discrete, LLM-friendly tools. Do not dump the entire tool list into a single prompt - let the model discover them. Here are the highest-leverage tools your agent will use.
list_all_help_scout_conversations
Retrieves a paginated list of conversations (tickets). This requires filtering by mailbox and supports sorting by modifiedSince or status.
"Find all 'active' conversations in the support mailbox (ID: 12345) that have been modified since yesterday."
get_single_help_scout_conversation_by_id
Fetches the complete metadata for a single conversation, including custom fields, tags, assignee information, and state.
"Get the details for conversation ID 9876543 to check if it has been assigned to a tier 2 support engineer."
list_all_help_scout_conversation_threads
Conversations do not contain the message text natively - you must fetch the threads. This tool returns the actual back-and-forth communication, internal notes, and state changes for a given conversation ID.
"Retrieve all threads for conversation ID 9876543 and summarize the customer's main complaint and the troubleshooting steps we have taken so far."
create_a_help_scout_conversation_thread
Adds a new reply or internal note to an existing conversation. This is the primary way an AI agent communicates with the customer or leaves context for human agents.
"Create an internal note thread on conversation ID 9876543 stating that the bug has been confirmed and linked to Jira issue DEV-102."
update_a_help_scout_conversation_by_id
Updates the metadata of the conversation itself. Used to change the status (e.g., active, pending, closed), assign it to a specific user, or move it to a different folder.
"Update conversation ID 9876543 by setting its status to 'closed' and adding the tag 'resolved-via-ai'."
list_all_help_scout_customers
Searches the Help Scout CRM for customer profiles based on email, name, or mailbox. Essential for pulling up historical context before replying to a new ticket.
"Search for a customer with the email 'jane.doe@acme.com' to see if they have a history of billing issues."
For the complete inventory of available Help Scout tools, query parameters, and schema definitions, visit the Help Scout integration page.
Workflows in Action
Connecting Claude to Help Scout transforms the LLM from a passive chat interface into an active support engineer. Here is how complex workflows play out in practice.
Workflow 1: Automated Ticket Triage and Drafting
Instead of humans reading every new ticket to categorize it, Claude can scan the inbox, classify the issue, and draft a proposed reply as an internal note.
"Look at the 'unassigned' folder in our main support mailbox. For each conversation, read the threads to understand the issue. If it is a password reset request, add an internal note with a drafted response containing our reset instructions, and tag the conversation 'password-reset'."
Execution Steps:
- Claude calls
list_all_help_scout_conversationsfiltering by the target mailbox and unassigned folder. - For each conversation returned, Claude calls
list_all_help_scout_conversation_threadsto read the actual user messages. - Claude analyzes the text. Upon identifying a password reset, it formulates a response.
- Claude calls
create_a_help_scout_conversation_threadto post the drafted reply as a hidden internal note for human review. - Claude calls
update_a_help_scout_conversation_by_idto append the 'password-reset' tag.
Workflow 2: VIP Customer Profile Enrichment
Support teams often need to ensure customer records in Help Scout match external data. Claude can act as a data enrichment agent.
"Find the customer record for 'Alex Smith' at 'Initech'. Check their profile. If they do not have a phone number listed, update their Help Scout profile to include the phone number 555-0199 and mark their organization as a VIP."
Execution Steps:
- Claude calls
list_all_help_scout_customersusing the name and organization to locate the specific user ID. - Claude calls
get_single_help_scout_customer_by_idto pull the full customer schema, including the embeddedphonesandorganizationarrays. - Recognizing the missing phone data, Claude constructs the specific JSON patch required by Help Scout.
- Claude calls
update_a_help_scout_customer_by_idto write the new phone number array back to the platform.
Security and Access Control
Giving an LLM write access to your primary customer support inbox requires strict governance. Truto MCP servers provide four layers of security to restrict agent blast radius:
- Method Filtering (
config.methods): You can restrict an MCP server strictly to read-only operations. By passingmethods: ["read"]during server creation, tools likecreate_a_help_scout_conversation_threadanddelete_a_help_scout_customer_by_idare completely stripped from the server. The LLM cannot hallucinate a write operation if the tool does not exist. - Tag Filtering (
config.tags): Truto groups tools by integration tags. If you only want the agent to access customer profile data and not touch conversations, you can filter by specific resource tags. - Expiration (
expires_at): For ephemeral agents or contractor access, you can set a strict ISO datetime for the server to self-destruct. Once expired, the server URL immediately returns an unauthorized error, requiring zero manual cleanup. - Secondary Auth (
require_api_token_auth): By default, possessing the MCP URL grants access. For high-security deployments, enabling this flag forces the MCP client to also pass a valid Truto API token in the Authorization header. This guarantees that even if the MCP URL is leaked in logs, it cannot be used without a valid user session.
Scaling AI Support Operations
Connecting Claude to Help Scout is just the baseline. Real support automation requires orchestration across your entire stack - pulling data from Jira to check bug statuses, querying Stripe to verify billing, and updating Help Scout conversations seamlessly.
Building this orchestration layer in-house means maintaining dozens of OAuth clients, dealing with undocumented rate limits, and constantly updating API schemas. Truto normalizes the chaos of third-party APIs into clean, documented MCP servers that work instantly with Claude, Cursor, and custom agent frameworks.
FAQ
- How does Truto handle Help Scout API rate limits?
- Truto does not absorb, retry, or apply backoff logic to rate limits. When Help Scout returns an HTTP 429 error, Truto passes it directly to the caller with standardized IETF rate limit headers. Your AI agent must handle the retry logic.
- Can I prevent Claude from deleting conversations or customers?
- Yes. When generating the MCP server in Truto, you can configure method filtering (e.g., methods: ['read']). This completely removes write and delete tools from the server, preventing the LLM from executing them.
- How do I configure Claude Desktop to use the Truto Help Scout MCP URL?
- You must update your claude_desktop_config.json file to use the official @modelcontextprotocol/server-sse transport. This bridges Claude's local stdio requirement with Truto's remote SSE URL.