hubspot-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HUBSPOT_ACCESS_TOKEN | Yes | HubSpot Private App access token (pat-na1-...) |
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 |
|---|---|
| hs_search_contactsA | Full-text search across contacts by name, email, company, or any indexed field. |
| hs_get_contactA | Retrieve a single contact by ID with all standard properties and associated company/deal IDs. |
| hs_contact_by_emailA | Look up contacts by exact email address. Returns up to 5 matches. |
| hs_recent_contactsB | Most recently created contacts, optionally filtered by lifecycle stage (lead, marketingqualifiedlead, opportunity, customer, etc.). |
| hs_create_contactC | Create a new HubSpot contact. Email is required; all other fields are optional. |
| hs_update_contactB | Update one or more properties on an existing contact. |
| hs_search_companiesA | Full-text search across companies by name, domain, or industry. |
| hs_get_companyA | Retrieve a single company by ID with all standard properties and associated contact/deal IDs. |
| hs_list_company_contactsC | List all contacts associated with a company. |
| hs_search_dealsC | Full-text search across deals by name. |
| hs_get_dealA | Retrieve a single deal by ID with amount, stage, close date, and associated contacts/companies. |
| hs_deals_by_stageA | List deals in a specific pipeline stage, sorted by amount descending. |
| hs_recent_dealsB | Most recently created deals. Pass openOnly=true to exclude closed deals. |
| hs_list_pipelinesA | List all CRM pipelines (deals or tickets) with their stage IDs. Use stage IDs with hs_deals_by_stage. |
| hs_pipeline_summaryB | Deal counts and total amounts aggregated by pipeline stage — a quick funnel snapshot for a given pipeline. |
| hs_list_listsB | List all HubSpot contact lists (static and active). Optionally filter by name substring. |
| hs_get_listA | Get metadata for a specific contact list including membership count and list type. |
| hs_list_membersC | Get contacts that are members of a specific list. |
| hs_list_email_campaignsC | List marketing email campaigns ordered by most recently updated. |
| hs_get_email_campaign_statsA | Get performance statistics (opens, clicks, bounces, unsubscribes) for a specific marketing email. |
| hs_list_marketing_emailsB | List marketing emails, optionally filtered by publication state (DRAFT, SCHEDULED, PUBLISHED, ARCHIVED). |
| hs_list_formsC | List all HubSpot forms ordered by most recently updated. |
| hs_get_formA | Get full form definition including fields, required properties, and redirect settings. |
| hs_form_submissionsB | Get recent submissions for a form including all field values and submission timestamps. |
| hs_list_workflowsB | List all HubSpot automation workflows with name, type, and enabled status. |
| hs_get_workflowB | Get full details of a workflow including enrollment triggers, actions, and settings. |
| hs_list_propertiesA | List all properties defined for a CRM object type. Use customOnly=true to see only custom fields. |
| hs_get_propertyB | Get full definition of a single CRM property including options/enum values and validation rules. |
| hs_list_ownersA | List HubSpot users (owners) that can be assigned to CRM records. Filter by email to look up a specific rep. |
| hs_crm_searchA | Escape hatch: run a structured CRM search with custom filter conditions against any object type. Use when preset tools don't cover your query. Docs: developers.hubspot.com/docs/api/crm/search |
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 30 tools
Each tool targets a distinct HubSpot object or action (e.g., contact, company, deal, form, list, workflow). There is no overlap between tools like hs_search_companies, hs_search_contacts, and hs_search_deals, and the escape hatch hs_crm_search is clearly differentiated as a custom query tool. All tools have unique purposes.
The majority of tools follow a consistent verb_noun pattern with snake_case and the 'hs_' prefix (e.g., hs_create_contact, hs_get_company, hs_search_deals). However, a few tools deviate slightly (hs_contact_by_email, hs_crm_search, hs_form_submissions, hs_pipeline_summary), breaking the strict pattern. Overall, the naming is mostly predictable.
30 tools cover a wide range of HubSpot objects and operations, which is appropriate for a comprehensive CRM integration. While slightly on the higher side, each tool serves a distinct purpose and the count is reasonable given the complexity of HubSpot's API surface.
The toolset is heavily read-oriented, with only one create (hs_create_contact) and one update (hs_update_contact) operation. Missing create, update, and delete for companies, deals, forms, lists, workflows, marketing emails, properties, and pipelines. This is a significant gap that will prevent agents from performing essential CRM write operations.