An MCP server that gives AI assistants direct access to your Help Scout inboxes, conversations, customers, organizations, and threads. Search tickets, pull customer and account context, 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.
| 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" |
| Quick conversation overview | getConversationSummary |
"Summarize this conversation" |
| Full message history | getThreads |
"Show me the complete thread" |
| Current server 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/ |
REDACT_MESSAGE_CONTENT |
Hide message bodies in responses | 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 compliance-minded teams in mind:
REDACT_MESSAGE_CONTENT=true to hide them for stricter compliance requirements.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:
- Using the wrong search tool (use searchConversations for listing, comprehensiveConversationSearch for keyword search)
- Inbox ID mismatch. Check the IDs from server instructions, not guessed values.
- Search terms too narrow. Try broader terms or a longer time range.
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.
$ claude mcp add help-scout-mcp-server \
-- python -m otcore.mcp_server <graph>