Connects AI assistants to Help Scout's support platform through their OAuth2 API. Exposes conversation search with filters for status, tags, date ranges, and email domains, plus customer and organization lookups. You get tools to pull full thread histories, conversation summaries, and inbox activity across multiple mailboxes. Ships with optional PII redaction for message bodies and customer contact fields if you need compliance guardrails. Includes a Cowork plugin that bundles navigation skills to help Claude pick the right search tool for ambiguous queries. Useful if your team lives in Help Scout and wants to query tickets, pull customer context, or spot patterns without switching windows.
An MCP server that gives AI assistants direct access to your Help Scout inboxes, conversations, customers, organizations, threads, and Docs knowledge base. Search tickets, pull customer and account context, inspect articles, spot patterns, and get answers without leaving your editor or chat window.
Built by a Help Scout customer who wanted to give his support team superpowers. If you handle customer conversations in Help Scout and want AI to help you work faster, this is for you.
Install the helpscout-navigator plugin. It auto-starts the MCP server and includes navigation skills that help Claude pick the right search tool for your query.
drewburchfield/help-scout-mcp-serverThe plugin bundles guided skills, session hooks, and tool selection guidance on top of the MCP server. Other install methods give you the tools; this one also teaches the AI how to use them well.
One-click install using Desktop Extensions:
.mcpb file from releasesThe same helpscout-navigator plugin works in Claude Code with the same navigation skills.
/plugin in Claude Code to open the marketplaceHELPSCOUT_APP_ID and HELPSCOUT_APP_SECRET as environment variablesAdd to your MCP client's config file (e.g., claude_desktop_config.json, .cursor/mcp.json):
{
"mcpServers": {
"helpscout": {
"command": "npx",
"args": ["help-scout-mcp-server"],
"env": {
"HELPSCOUT_APP_ID": "your-app-id",
"HELPSCOUT_APP_SECRET": "your-app-secret"
}
}
}
}
docker run -e HELPSCOUT_APP_ID="your-app-id" \
-e HELPSCOUT_APP_SECRET="your-app-secret" \
drewburchfield/help-scout-mcp-server
Help Scout uses OAuth2 Client Credentials flow exclusively. Personal Access Tokens are not supported.
| Help Scout UI | Environment Variable |
|---|---|
| App ID | HELPSCOUT_APP_ID |
| App Secret | HELPSCOUT_APP_SECRET |
Alternative names HELPSCOUT_CLIENT_ID / HELPSCOUT_CLIENT_SECRET and legacy HELPSCOUT_API_KEY are also supported.
Docs knowledge base tools use Help Scout Docs API v1, which is separate from the Mailbox API. Set HELPSCOUT_DOCS_API_KEY only if you want to use listDocs*, searchDocsArticles, getDocsArticle, or redirect tools.
For the MCP compatibility contract and roadmap, see:
| Task | Tool | Example |
|---|---|---|
| List recent tickets | searchConversations | "Show me active tickets from this week" |
| Find by keyword | comprehensiveConversationSearch | "Find conversations about billing errors" |
| Look up a ticket number | structuredConversationFilter | "Show me ticket #42839" |
| Complex filters | advancedConversationSearch | "All @acme.com conversations tagged urgent" |
| Browse customers | listCustomers | "Show customers named Jane" |
| Find a customer by email | searchCustomersByEmail | "Find customer jane@acme.com" |
| Inspect a customer profile | getCustomer | "Open customer 12345" |
| Pull customer contact channels | getCustomerContacts | "Show contact details for customer 12345" |
| Browse organizations | listOrganizations | "Show the busiest organizations" |
| Inspect an organization | getOrganization | "Open organization 456" |
| List customers in an organization | getOrganizationMembers | "Who belongs to organization 456?" |
| List organization conversations | getOrganizationConversations | "Show support history for organization 456" |
| Raw conversation detail | getConversation | "Open conversation 12345 with full metadata" |
| Quick conversation overview | getConversationSummary | "Summarize this conversation" |
| Full message history | getThreads | "Show me the complete thread" |
| Inspect routing state | getInboxRouting | "Show routing for inbox 359402" |
| Search Docs articles | searchDocsArticles | "Find knowledge base articles about refunds" |
| Retrieve a Docs article | getDocsArticle | "Open Docs article 123" |
| Current MCP host time | getServerTime | Used for time-relative searches |
Inboxes are auto-discovered when the server connects. AI agents get inbox IDs in their instructions automatically, so no lookup step is needed.
| Variable | Description | Default |
|---|---|---|
HELPSCOUT_APP_ID | App ID from Help Scout My Apps | Required |
HELPSCOUT_APP_SECRET | App Secret from Help Scout My Apps | Required |
HELPSCOUT_DEFAULT_INBOX_ID | Scope searches to a specific inbox | None (all inboxes) |
HELPSCOUT_BASE_URL | Help Scout API endpoint | https://api.helpscout.net/v2/ |
HELPSCOUT_DOCS_API_KEY | Optional Docs API key for knowledge base tools | None |
HELPSCOUT_DOCS_BASE_URL | Help Scout Docs API endpoint | https://docsapi.helpscout.net/v1/ |
REDACT_MESSAGE_CONTENT | Replace message bodies with placeholders | false |
CACHE_TTL_SECONDS | Cache duration for API responses | 300 |
LOG_LEVEL | Logging verbosity (error, warn, info, debug) | info |
Works with any MCP-compatible client:
| Category | Clients |
|---|---|
| AI Assistants | Claude Desktop, Goose, and other MCP-enabled assistants |
| Code Editors | Cursor, VS Code, Windsurf, Continue.dev |
| Command Line | Claude Code, Codex, Gemini CLI, OpenCode |
| Custom | Any application implementing the MCP standard |
Built with security-minded teams in mind:
REDACT_MESSAGE_CONTENT=true to replace conversation and thread bodies with placeholders for lower-context analysis. This is not a compliance boundary and does not remove all customer identifiers.Authentication failed? Verify your credentials work with Help Scout directly:
curl -X POST https://api.helpscout.net/v2/oauth2/token \
-d "grant_type=client_credentials&client_id=$HELPSCOUT_APP_ID&client_secret=$HELPSCOUT_APP_SECRET"
Empty search results? Common causes:
searchConversations for listing, comprehensiveConversationSearch for keyword search)Need more detail? Enable debug logging:
LOG_LEVEL=debug npx help-scout-mcp-server
git clone https://github.com/drewburchfield/help-scout-mcp-server.git
cd help-scout-mcp-server
npm install && npm run build
npm start
npm test # Run tests
npm run type-check # TypeScript validation
npm run lint # Linting
npm run dev # Development server with auto-reload
Contributions welcome. Please ensure tests, type checking, and linting pass before submitting a PR.
MIT License - see LICENSE for details.
HELPSCOUT_APP_ID*secretHelp Scout OAuth2 App ID (also accepts HELPSCOUT_CLIENT_ID)
HELPSCOUT_APP_SECRET*secretHelp Scout OAuth2 App Secret (also accepts HELPSCOUT_CLIENT_SECRET)
REDACT_MESSAGE_CONTENTHide message bodies in responses for compliance (true/false)
com.mcparmory/google-search
io.github.pipeworx-io/brave-search
marcopesani/mcp-server-serper
brave/brave-search-mcp-server
com.mcparmory/google-search-console
acamolese/google-search-console-mcp