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
Server capabilities have not been inspected yet.
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, as they are organized by resource type (e.g., calls, crm, emails) and action (e.g., create, get, update, batch operations). Overlap is minimal and intentional, such as list vs. search for filtering options, which are clearly differentiated in descriptions.
Tool names follow a highly consistent verb_noun pattern throughout, with a clear structure of resource_action (e.g., calls_create, crm_get_company). Minor variations like 'archive' vs. 'delete' in descriptions are consistent within contexts, and batch operations are uniformly prefixed with 'batch_'.
With 111 tools, the count is excessive and feels heavy for the HubSpot CRM domain, likely leading to cognitive overload for agents. While the tools cover many resources, the high number suggests over-fragmentation rather than a well-scoped set, making it difficult to manage efficiently.
The tool surface provides complete CRUD/lifecycle coverage across all major HubSpot resources (calls, communications, CRM objects, emails, engagements, meetings, notes, products, tasks), including batch operations and specific functionalities like subscriptions and associations. No obvious gaps exist for the CRM domain.