HubSpot MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port for Streamable HTTP transport method | 3000 |
| HUBSPOT_ACCESS_TOKEN | Yes | Access Token for Hubspot Application |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| crm_create_companyC | Create a new company with validated properties |
| crm_update_companyC | Update an existing company with validated properties |
| crm_get_companyC | Get a single company by ID with specific properties and associations |
| crm_search_companiesC | Search companies with company-specific filters |
| crm_batch_create_companiesC | Create multiple companies in a single request |
| crm_batch_update_companiesC | Update multiple companies in a single request |
| crm_get_company_propertiesC | Get all properties for companies |
| crm_create_company_propertyD | Create a new company property |
| crm_list_objectsC | List CRM objects of a specific type with optional filtering and pagination |
| crm_get_objectC | Get a single CRM object by ID |
| crm_create_objectD | Create a new CRM object |
| crm_update_objectC | Update an existing CRM object |
| crm_delete_objectC | Delete a CRM object |
| crm_search_objectsC | Search CRM objects using filters |
| crm_batch_create_objectsC | Create multiple CRM objects in a single request |
| crm_batch_update_objectsC | Update multiple CRM objects in a single request |
| crm_batch_delete_objectsC | Delete multiple CRM objects in a single request |
| crm_list_association_typesC | List all available association types for a given object type pair |
| crm_get_associationsC | Get all associations of a specific type between objects |
| crm_create_associationC | Create an association between two objects |
| crm_delete_associationC | Delete an association between two objects |
| crm_batch_create_associationsC | Create multiple associations in a single request |
| crm_batch_delete_associationsC | Delete multiple associations in a single request |
| crm_create_contactC | Create a new contact with validated properties |
| crm_update_contactC | Update an existing contact with validated properties |
| crm_get_contactB | Get a single contact by ID with specific properties and associations |
| crm_search_contactsC | Search contacts with contact-specific filters |
| crm_batch_create_contactsC | Create multiple contacts in a single request |
| crm_batch_update_contactsC | Update multiple contacts in a single request |
| crm_get_contact_propertiesC | Get all properties for contacts |
| crm_create_contact_propertyD | Create a new contact property |
| crm_create_leadC | Create a new lead with validated properties |
| crm_update_leadC | Update an existing lead with validated properties |
| crm_get_leadC | Get a single lead by ID with specific properties and associations |
| crm_search_leadsC | Search leads with lead-specific filters |
| crm_batch_create_leadsC | Create multiple leads in a single request |
| crm_batch_update_leadsC | Update multiple leads in a single request |
| crm_get_lead_propertiesC | Get all properties for leads |
| crm_create_lead_propertyD | Create a new lead property |
| meetings_listB | List all meetings with optional filtering |
| meetings_getC | Get details of a specific meeting |
| meetings_createD | Create a new meeting |
| meetings_updateC | Update an existing meeting |
| meetings_deleteC | Delete a meeting |
| meetings_searchC | Search meetings with specific filters |
| meetings_batch_createC | Create multiple meetings in a single request |
| meetings_batch_updateC | Update multiple meetings in a single request |
| meetings_batch_archiveC | Archive (delete) multiple meetings in a single request |
| notes_createC | Create a new note |
| notes_getC | Get details of a specific note |
| notes_updateD | Update an existing note |
| notes_archiveC | Archive (delete) a note |
| notes_listC | List all notes with optional filtering |
| notes_searchC | Search notes with specific filters |
| notes_batch_createC | Create multiple notes in a single request |
| notes_batch_readC | Read multiple notes in a single request |
| notes_batch_updateC | Update multiple notes in a single request |
| notes_batch_archiveC | Archive (delete) multiple notes in a single request |
| tasks_createD | Create a new task |
| tasks_getC | Get details of a specific task |
| tasks_updateC | Update an existing task |
| tasks_archiveC | Archive (delete) a task |
| tasks_listC | List all tasks with optional filtering |
| tasks_searchD | Search tasks with specific filters |
| tasks_batch_createC | Create multiple tasks in a single request |
| tasks_batch_readC | Read multiple tasks in a single request |
| tasks_batch_updateC | Update multiple tasks in a single request |
| tasks_batch_archiveC | Archive (delete) multiple tasks in a single request |
| engagement_details_getC | Get details of a specific engagement |
| engagement_details_createD | Create a new engagement with details |
| engagement_details_updateC | Update an existing engagement's details |
| engagement_details_listC | List all engagements with optional filtering |
| engagement_details_deleteD | Delete an engagement |
| engagement_details_get_associatedC | Get all engagements associated with an object |
| calls_createD | Create a new call record |
| calls_getC | Get details of a specific call |
| calls_updateC | Update an existing call record |
| calls_archiveC | Archive (delete) a call record |
| calls_listC | List all calls with optional filtering |
| calls_searchD | Search calls with specific filters |
| calls_batch_createC | Create multiple call records in a single request |
| calls_batch_readC | Read multiple call records in a single request |
| calls_batch_updateC | Update multiple call records in a single request |
| calls_batch_archiveC | Archive (delete) multiple call records in a single request |
| emails_createD | Create a new email record |
| emails_getC | Get details of a specific email |
| emails_updateC | Update an existing email record |
| emails_archiveC | Archive (delete) an email record |
| emails_listC | List all emails with optional filtering |
| emails_searchC | Search emails with specific filters |
| emails_batch_createC | Create multiple email records in a single request |
| emails_batch_readC | Read multiple email records in a single request |
| emails_batch_updateC | Update multiple email records in a single request |
| emails_batch_archiveC | Archive (delete) multiple email records in a single request |
| communications_get_preferencesC | Get communication preferences for a contact |
| communications_update_preferencesC | Update communication preferences for a contact |
| communications_unsubscribe_contactC | Unsubscribe a contact from all email communications |
| communications_subscribe_contactC | Subscribe a contact to all email communications |
| communications_get_subscription_definitionsC | Get all subscription definitions for the portal |
| communications_get_subscription_statusC | Get subscription status for multiple contacts |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 111 tools
Every tool has a clearly distinct purpose with no ambiguity. Tools are organized by resource type (e.g., calls, crm, emails) and operation (e.g., create, get, update, search), making it easy for an agent to select the correct one. The batch vs. single-operation variants are clearly differentiated by naming and descriptions.
Tool names follow a highly consistent pattern throughout: resource_action (e.g., calls_create, crm_get_company) or resource_batch_action (e.g., emails_batch_update). Minor deviations like 'products_read' vs. 'products_list' are minimal and don't break the overall consistency. The naming is predictable and systematic.
With 111 tools, the count is excessive for typical MCP server purposes, making it overwhelming and difficult to navigate. While the server covers a broad CRM domain, the sheer number of tools (including many batch variants) feels heavy and could hinder agent efficiency, suggesting a need for consolidation or better scoping.
The tool set provides complete CRUD/lifecycle coverage for all major HubSpot resources (calls, communications, CRM objects, emails, engagements, meetings, notes, products, tasks). Each resource type includes create, read, update, delete, list, and search operations, with batch variants for scalability, leaving no obvious gaps for agent workflows.