hubspot-conversations-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HUBSPOT_BASE_URL | No | Default https://api.hubapi.com | https://api.hubapi.com |
| HUBSPOT_AUTH_MODE | No | private-app or bearer; auto-detected from the token prefix when unset | |
| HUBSPOT_ACCESS_TOKEN | Yes | Private app token (pat-...) or OAuth2 access token | |
| HUBSPOT_DEFAULT_SENDER_ACTOR_ID | No | Default sender for SendConversationMessage, e.g. A-12345 (agent actor = A-<hubspot user id>) | |
| HUBSPOT_CONVERSATIONS_API_VERSION | No | Default 2026-09-beta — update here when the API graduates from beta | 2026-09-beta |
| HUBSPOT_CUSTOM_CHANNELS_API_VERSION | No | Default 2026-03 | 2026-03 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| RetrieveConversationThreadsA | Retrieve conversation threads from HubSpot Conversations. You can apply optional filters (inbox, OPEN/CLOSED status, associated contact or ticket, time window) and sorting to tailor the results. Paginated: pass |
| RetrieveThreadByIdA | Retrieve detailed information about a conversation thread by ID: status, inbox, original channel, assignee and associated contact. |
| UpdateConversationThreadA | Update a single thread's status (OPEN/CLOSED) or archive/restore it. Set is_thread_archived=true to archive, false to restore an archived thread. |
| ArchiveConversationThreadA | Archives a conversation thread, marking it for deletion. The thread is permanently deleted after 30 days. |
| GetMessageHistoryForThreadA | Retrieve the message history for a given conversation thread by its ID (messages, comments and system events like assignments and status changes). Paginated: pass |
| RetrieveThreadMessageA | Retrieve the details of a specific message within a conversation thread using the message ID. |
| RetrieveFullMessageContentA | Retrieve the original text and rich text of a message — useful for untruncated content when the message's truncationStatus indicates it might be truncated. |
| SendConversationMessageA | Send a new message on an existing conversation thread — delivered to the customer on the thread's channel (set message_type=COMMENT for an internal note instead). Provide the content either as typed fields (text, recipients, …) or as a stringified JSON request_body; typed fields win on conflict. Missing channel_id/channel_account_id are taken from the thread, missing recipients are derived from the latest incoming message, and sender_actor_id falls back to HUBSPOT_DEFAULT_SENDER_ACTOR_ID. Call with mode='get_request_schema' to inspect the raw request body schema. |
| ListConversationInboxesA | Fetch a list of conversation inboxes (shared inboxes and help desks), with optional filters and sorting to customize the results. |
| GetInboxDetailsA | Retrieve detailed information about a specific conversation inbox by its ID. |
| ListConversationChannelsB | Retrieve a list of conversation channels (e.g. email, live chat, forms, WhatsApp), with optional filters and sorting if needed. |
| RetrieveChannelDetailsA | Retrieve comprehensive details about a specific channel in HubSpot Conversations by providing the channel ID. |
| RetrieveChannelAccountsA | Retrieve a list of channel accounts — concrete instances of a channel connected to an inbox (e.g. a specific email address or phone number). Supports optional filters and sorting to refine the results. |
| GetChannelAccountDetailsB | Fetch detailed information about a specific HubSpot channel account using the channel account ID, such as its status and configuration. |
| RetrieveActorDetailsA | Retrieve details of a specific actor (conversation participant) by actor ID. Actor IDs are prefixed by type: 'A-' agent/user, 'V-' visitor/contact, 'B-' bot, 'E-' email, 'S-' system, 'I-' integrator. |
| ResolveConversationActorsA | Resolve a list of ActorIds to detailed participant information in one batch call — use this to understand who the participants in a conversation are. |
| CreateChannelAccountA | Create a new account within a specific custom communication channel. Enables multiple accounts to communicate over a single channel with different delivery identifiers. Requires the conversations.custom_channels.write scope. |
| GetCustomChannelAccountsA | Fetch the list of accounts associated with a specific custom channel, identified by the channel ID. |
| RetrieveChannelAccountDetailsA | Retrieve detailed metadata about a channel account on a custom channel, including its channel, inbox ID, and delivery identifiers. |
| UpdateChannelAccountInfoA | Update the name and/or authorization status of a channel account on a custom channel — including disabling the account by setting set_authorization_status to false. |
| UpdateChannelAccountStagingA | Update the account name and delivery identifier of a channel account staging token (public app connection flow) in HubSpot Conversations. |
| PublishCustomChannelMessageA | Publish a message over a specified custom channel into HubSpot Conversations — used by custom-integrated messaging channels to sync external messages into HubSpot. Provide the message either as typed fields or as a stringified JSON request_body (typed fields win on conflict). Requires channelAccountId, senders and recipients. Call with mode='get_request_schema' to inspect the raw request body schema. |
| GetCustomChannelMessageDetailsA | Get the details of a specific message sent through a custom channel — message content, sender information, and timestamps. |
| UpdateMessageStatusB | Update the delivery status of a message within a custom channel: SENT, FAILED, or READ. For FAILED messages, include an error message for clarification. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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