hubspot-conversations-mcp
Provides tools for interacting with the HubSpot Conversations API, enabling AI agents to manage conversation threads, messages, inboxes, channels, and custom channels.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hubspot-conversations-mcpShow me my recent conversation threads"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
hubspot-conversations-mcp
MCP server for the HubSpot Conversations API with 1:1 tool parity with the Arcade.dev HubSpot Conversations API toolkit (24 tools). Read conversation threads and messages, send replies, manage threads and channel accounts, and integrate custom channels — from any MCP client (Claude Code, Claude Desktop, etc.).
Covers two HubSpot API surfaces:
Conversations API (
/conversations/conversations/2026-09-beta) — threads, messages, inboxes, channels, actorsCustom Channels API (
/conversations/custom-channels/2026-03) — channel accounts, staging tokens, publishing external messages, delivery status
Install
Once published to npm, no clone or build is needed — MCP clients run the server straight off the registry with npx.
Interactive setup (recommended)
npx -y hubspot-conversations-mcp setupThe wizard walks you through everything:
Token guide — step-by-step instructions for creating a HubSpot private app (Settings → Integrations → Private Apps) with the right scopes:
conversations.read,conversations.write, and optionallyconversations.custom_channels.read/.writefor the custom-channel tools.Token prompt — paste the
pat-...token (input is masked; OAuth2 access tokens also work), plus an optional default sender actor ID for replies.Agent selection — choose which AI agents to configure: Claude Desktop, Claude Code, and/or Hermes (Nous Research hermes-agent).
Automatic install — each selected agent is configured immediately.
The wizard also works scripted: pipe the answers via stdin (printf 'pat-...\n\n1,3\n' | npx -y hubspot-conversations-mcp setup).
Non-interactive install
npx -y hubspot-conversations-mcp install --client all --token pat-eu1-... --sender-actor-id A-12345--client takes claude-desktop, claude-code, hermes, both (the two Claude clients), all, or a comma-separated combination:
claude-desktop — merges the server into
claude_desktop_config.json(existing servers and settings are preserved; a timestamped backup is written first). Restart Claude Desktop afterwards.claude-code — runs
claude mcp add … -- npx -y hubspot-conversations-mcpfor you (prints the command if theclaudeCLI is unavailable). Add--scope userto register it across all your projects (the setup wizard defaults to this).hermes — merges the server into
~/.hermes/config.yamlundermcp_serverswithenabled: true(backup written first; note that YAML comments are not preserved). Verify withhermes mcp test hubspot-conversations.
Use --dry-run to preview changes without writing anything, --config-path for a non-standard Claude Desktop config location, and --hermes-config-path (or HERMES_CONFIG_PATH) for a non-standard Hermes config location.
Note on tokens: HubSpot private app tokens can only be created in the HubSpot UI — there is no public API to generate them, so the CLI guides you through it instead of doing it for you.
Manual: Claude Code
claude mcp add hubspot-conversations --env HUBSPOT_ACCESS_TOKEN=pat-eu1-... --env HUBSPOT_DEFAULT_SENDER_ACTOR_ID=A-12345 -- npx -y hubspot-conversations-mcpManual: Claude Desktop
claude_desktop_config.json:
{
"mcpServers": {
"hubspot-conversations": {
"command": "npx",
"args": ["-y", "hubspot-conversations-mcp"],
"env": {
"HUBSPOT_ACCESS_TOKEN": "pat-eu1-...",
"HUBSPOT_DEFAULT_SENDER_ACTOR_ID": "A-12345"
}
}
}
}Prerequisite reminder: HubSpot scopes
The token must belong to a private app (or OAuth2 app) with conversations.read + conversations.write, and conversations.custom_channels.read/.write if you use the custom-channel tools.
One-click bundle for Claude Desktop (MCPB)
The repo ships a manifest.json following Anthropic's MCP Bundle format:
npm run bundleThis produces a .mcpb file. Open it with Claude Desktop (or drag it into Settings → Extensions) for a one-click install — the token is collected in the UI and stored in the OS keychain instead of a config file.
Related MCP server: Marketing Events MCP Server
Publishing to npm
npm publishprepublishOnly builds and runs the full test suite first. The published package contains only dist/, manifest.json, README and LICENSE. Bump version in both package.json and manifest.json (and SERVER_VERSION in server.ts) per release.
Configuration
Environment variable | Required | Description |
| ✅ | Private app token ( |
| Default sender for | |
| Default | |
| Default | |
| Default | |
|
|
Tools (Arcade parity)
Threads
Tool | Description |
| List/search threads — filter by inbox, OPEN/CLOSED, contact, ticket, time window; paginated |
| Get a single thread (status, inbox, channel, assignee, contact) |
| Set OPEN/CLOSED, archive or restore a thread |
| Soft-delete a thread (permanently deleted after 30 days) |
Messages
Tool | Description |
| Message history of a thread (messages, comments, system events); paginated |
| Get a single message |
| Original (untruncated) text/richText of a message |
| Send a message to the customer — or an internal comment with |
Inboxes, channels & actors
Tool | Description |
| Conversation inboxes / help desks |
| Channel types (email, chat, …) |
| Connected accounts (specific email addresses / numbers) |
| Resolve actor IDs ( |
Custom channels (requires the conversations.custom_channels.* scopes)
Tool | Description |
| Create an account on a custom channel |
| List accounts on a custom channel |
| Get one custom-channel account |
| Rename or (de)authorize a channel account |
| Finalize a staging-token connection (public apps) |
| Publish an external message into HubSpot |
| Get a custom-channel message |
| Report delivery status: SENT / FAILED / READ |
Sending replies
SendConversationMessage only requires thread_id and text. Everything else is derived:
channel_id/channel_account_id— taken from the thread'soriginalChannelId/originalChannelAccountIdrecipients— the senders of the latest incoming message (i.e. a normal reply)sender_actor_id— falls back toHUBSPOT_DEFAULT_SENDER_ACTOR_ID
Pass any of them explicitly to override. Arcade-style calls are also supported: pass a stringified JSON request_body (typed fields win on conflict), and call with mode="get_request_schema" to inspect the raw body schema. The same pattern applies to PublishCustomChannelMessage.
Development
npm test # vitest — unit + in-memory MCP integration tests
npm run typecheck # tsc --noEmit
npm run build # compile to dist/
npm run bundle # build a .mcpb one-click bundle for Claude DesktopThe integration tests run the full MCP server against a stubbed fetch, so no HubSpot account is needed to develop.
Notes
Tool names and parameters mirror Arcade's
HubspotConversationsApitoolkit 1:1; list tools additionally accept optional filter/pagination parameters (supersets of Arcade's schemas).The client retries once on
429/502/503, honoringRetry-After(capped at 10s).Thread assignee endpoints (
PUT/DELETE /threads/{id}/assignee) exist in the HubSpot API but are not part of Arcade's toolkit, so they are not exposed as tools. Re-add them insrc/tools/threads.tsif needed.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceAn MCP server for interacting with HubSpot's authentication API, enabling secure authentication and authorization operations through natural language.Last updated
- Flicense-qualityDmaintenanceThis MCP Server enables users to interact with HubSpot's marketing events API, allowing management of marketing event data through natural language commands.Last updated1
- AlicenseAqualityCmaintenanceA read-only MCP server that exposes HubSpot CRM data (contacts, deals, companies, quotes) to AI agents, enabling natural language queries.Last updated9MIT
- Alicense-qualityCmaintenanceMCP server for the HubSpot CRM API with tools for managing contacts, companies, deals, tickets, and CRM workflows. Generated with MCPForge. Sensitive operations can be protected with permissions, audit logs, and approval workflows.Last updated43MIT
Related MCP Connectors
Official MCP server for OmniDimension. Drive voice agents, dispatch calls, and run bulk campaigns.
MCP server for interacting with the Supabase platform
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/amalodev/hubspot-conversations-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server