HubSpot MCP

by shinzo-labs

Not rated yet

About

Access and manage HubSpot CRM data through a standardized interface using the HubSpot API.

Explore

Setup

Install HubSpot MCP in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/shinzo-labs/hubspot-mcp

Follow the installation instructions in the repository README, then restart your MCP client.

crm_create_company

Create a new company with validated properties

crm_update_company

Update an existing company with validated properties

crm_get_company

Get a single company by ID with specific properties and associations

crm_search_companies

Search companies with company-specific filters

crm_batch_create_companies

Create multiple companies in a single request

crm_batch_update_companies

Update multiple companies in a single request

crm_get_company_properties

Get all properties for companies

crm_create_company_property

Create a new company property

crm_list_objects

List CRM objects of a specific type with optional filtering and pagination

crm_get_object

Get a single CRM object by ID

crm_create_object

Create a new CRM object

crm_update_object

Update an existing CRM object

crm_delete_object

Delete a CRM object

crm_search_objects

Search CRM objects using filters

crm_batch_create_objects

Create multiple CRM objects in a single request

crm_batch_update_objects

Update multiple CRM objects in a single request

crm_batch_delete_objects

Delete multiple CRM objects in a single request

crm_list_association_types

List all available association types for a given object type pair

crm_get_associations

Get all associations of a specific type between objects

crm_create_association

Create an association between two objects

crm_delete_association

Delete an association between two objects

crm_batch_create_associations

Create multiple associations in a single request

crm_batch_delete_associations

Delete multiple associations in a single request

crm_create_contact

Create a new contact with validated properties

crm_update_contact

Update an existing contact with validated properties

crm_get_contact

Get a single contact by ID with specific properties and associations

crm_search_contacts

Search contacts with contact-specific filters

crm_batch_create_contacts

Create multiple contacts in a single request

crm_batch_update_contacts

Update multiple contacts in a single request

crm_get_contact_properties

Get all properties for contacts

crm_create_contact_property

Create a new contact property

crm_create_lead

Create a new lead with validated properties

crm_update_lead

Update an existing lead with validated properties

crm_get_lead

Get a single lead by ID with specific properties and associations

crm_search_leads

Search leads with lead-specific filters

crm_batch_create_leads

Create multiple leads in a single request

crm_batch_update_leads

Update multiple leads in a single request

crm_get_lead_properties

Get all properties for leads

crm_create_lead_property

Create a new lead property

meetings_list

List all meetings with optional filtering

meetings_get

Get details of a specific meeting

meetings_create

Create a new meeting

meetings_update

Update an existing meeting

meetings_delete

Delete a meeting

meetings_search

Search meetings with specific filters

meetings_batch_create

Create multiple meetings in a single request

meetings_batch_update

Update multiple meetings in a single request

meetings_batch_archive

Archive (delete) multiple meetings in a single request

notes_create

Create a new note

notes_get

Get details of a specific note

notes_update

Update an existing note

notes_archive

Archive (delete) a note

notes_list

List all notes with optional filtering

notes_search

Search notes with specific filters

notes_batch_create

Create multiple notes in a single request

notes_batch_read

Read multiple notes in a single request

notes_batch_update

Update multiple notes in a single request

notes_batch_archive

Archive (delete) multiple notes in a single request

tasks_create

Create a new task

tasks_get

Get details of a specific task

tasks_update

Update an existing task

tasks_archive

Archive (delete) a task

tasks_list

List all tasks with optional filtering

tasks_search

Search tasks with specific filters

tasks_batch_create

Create multiple tasks in a single request

tasks_batch_read

Read multiple tasks in a single request

tasks_batch_update

Update multiple tasks in a single request

tasks_batch_archive

Archive (delete) multiple tasks in a single request

engagement_details_get

Get details of a specific engagement

engagement_details_create

Create a new engagement with details

engagement_details_update

Update an existing engagement's details

engagement_details_list

List all engagements with optional filtering

engagement_details_delete

Delete an engagement

engagement_details_get_associated

Get all engagements associated with an object

calls_create

Create a new call record

calls_get

Get details of a specific call

calls_update

Update an existing call record

calls_archive

Archive (delete) a call record

calls_list

List all calls with optional filtering

calls_search

Search calls with specific filters

calls_batch_create

Create multiple call records in a single request

calls_batch_read

Read multiple call records in a single request

calls_batch_update

Update multiple call records in a single request

calls_batch_archive

Archive (delete) multiple call records in a single request

emails_create

Create a new email record

emails_get

Get details of a specific email

emails_update

Update an existing email record

emails_archive

Archive (delete) an email record

emails_list

List all emails with optional filtering

emails_search

Search emails with specific filters

emails_batch_create

Create multiple email records in a single request

emails_batch_read

Read multiple email records in a single request

emails_batch_update

Update multiple email records in a single request

emails_batch_archive

Archive (delete) multiple email records in a single request

communications_get_preferences

Get communication preferences for a contact

communications_update_preferences

Update communication preferences for a contact

communications_unsubscribe_contact

Unsubscribe a contact from all email communications

communications_subscribe_contact

Subscribe a contact to all email communications

communications_get_subscription_definitions

Get all subscription definitions for the portal

communications_get_subscription_status

Get subscription status for multiple contacts

communications_update_subscription_status

Update subscription status for multiple contacts

- crm_create_company: Create a new company with validated properties
- crm_update_company: Update an existing company with validated properties
- crm_get_company: Get a single company by ID with specific properties and associations
- crm_search_companies: Search companies with company-specific filters
- crm_batch_create_companies: Create multiple companies in a single request
- crm_batch_update_companies: Update multiple companies in a single request
- crm_get_company_properties: Get all properties for companies
- crm_create_company_property: Create a new company property
- crm_list_objects: List CRM objects of a specific type with optional filtering and pagination
- crm_get_object: Get a single CRM object by ID
- crm_create_object: Create a new CRM object
- crm_update_object: Update an existing CRM object
- crm_delete_object: Delete a CRM object
- crm_search_objects: Search CRM objects using filters
- crm_batch_create_objects: Create multiple CRM objects in a single request
- crm_batch_update_objects: Update multiple CRM objects in a single request
- crm_batch_delete_objects: Delete multiple CRM objects in a single request
- crm_list_association_types: List all available association types for a given object type pair
- crm_get_associations: Get all associations of a specific type between objects
- crm_create_association: Create an association between two objects
- crm_delete_association: Delete an association between two objects
- crm_batch_create_associations: Create multiple associations in a single request
- crm_batch_delete_associations: Delete multiple associations in a single request
- crm_create_contact: Create a new contact with validated properties
- crm_update_contact: Update an existing contact with validated properties
- crm_get_contact: Get a single contact by ID with specific properties and associations
- crm_search_contacts: Search contacts with contact-specific filters
- crm_batch_create_contacts: Create multiple contacts in a single request
- crm_batch_update_contacts: Update multiple contacts in a single request
- crm_get_contact_properties: Get all properties for contacts
- crm_create_contact_property: Create a new contact property
- crm_create_lead: Create a new lead with validated properties
- crm_update_lead: Update an existing lead with validated properties
- crm_get_lead: Get a single lead by ID with specific properties and associations
- crm_search_leads: Search leads with lead-specific filters
- crm_batch_create_leads: Create multiple leads in a single request
- crm_batch_update_leads: Update multiple leads in a single request
- crm_get_lead_properties: Get all properties for leads
- crm_create_lead_property: Create a new lead property
- meetings_list: List all meetings with optional filtering
- meetings_get: Get details of a specific meeting
- meetings_create: Create a new meeting
- meetings_update: Update an existing meeting
- meetings_delete: Delete a meeting
- meetings_search: Search meetings with specific filters
- meetings_batch_create: Create multiple meetings in a single request
- meetings_batch_update: Update multiple meetings in a single request
- meetings_batch_archive: Archive (delete) multiple meetings in a single request
- notes_create: Create a new note
- notes_get: Get details of a specific note
- notes_update: Update an existing note
- notes_archive: Archive (delete) a note
- notes_list: List all notes with optional filtering
- notes_search: Search notes with specific filters
- notes_batch_create: Create multiple notes in a single request
- notes_batch_read: Read multiple notes in a single request
- notes_batch_update: Update multiple notes in a single request
- notes_batch_archive: Archive (delete) multiple notes in a single request
- tasks_create: Create a new task
- tasks_get: Get details of a specific task
- tasks_update: Update an existing task
- tasks_archive: Archive (delete) a task
- tasks_list: List all tasks with optional filtering
- tasks_search: Search tasks with specific filters
- tasks_batch_create: Create multiple tasks in a single request
- tasks_batch_read: Read multiple tasks in a single request
- tasks_batch_update: Update multiple tasks in a single request
- tasks_batch_archive: Archive (delete) multiple tasks in a single request
- engagement_details_get: Get details of a specific engagement
- engagement_details_create: Create a new engagement with details
- engagement_details_update: Update an existing engagement's details
- engagement_details_list: List all engagements with optional filtering
- engagement_details_delete: Delete an engagement
- engagement_details_get_associated: Get all engagements associated with an object
- calls_create: Create a new call record
- calls_get: Get details of a specific call
- calls_update: Update an existing call record
- calls_archive: Archive (delete) a call record
- calls_list: List all calls with optional filtering
- calls_search: Search calls with specific filters
- calls_batch_create: Create multiple call records in a single request
- calls_batch_read: Read multiple call records in a single request
- calls_batch_update: Update multiple call records in a single request
- calls_batch_archive: Archive (delete) multiple call records in a single request
- emails_create: Create a new email record
- emails_get: Get details of a specific email
- emails_update: Update an existing email record
- emails_archive: Archive (delete) an email record
- emails_list: List all emails with optional filtering
- emails_search: Search emails with specific filters
- emails_batch_create: Create multiple email records in a single request
- emails_batch_read: Read multiple email records in a single request
- emails_batch_update: Update multiple email records in a single request
- emails_batch_archive: Archive (delete) multiple email records in a single request
- communications_get_preferences: Get communication preferences for a contact
- communications_update_preferences: Update communication preferences for a contact
- communications_unsubscribe_contact: Unsubscribe a contact from all email communications
- communications_subscribe_contact: Subscribe a contact to all email communications
- communications_get_subscription_definitions: Get all subscription definitions for the portal
- communications_get_subscription_status: Get subscription status for multiple contacts
- communications_update_subscription_status: Update subscription status for multiple contacts

AModel Context Protocol (MCP)server implementation for theHubSpotAPI, providing a standardized interface for accessing and managing CRM data.

- Complete coverage of the HubSpot CRM API
- Support for all standard CRM objects (companies, contacts, deals, etc.)
- Advanced association management with CRM Associations v4
- Company-specific endpoints with property validation
- Batch operations for efficient data management
- Advanced search and filtering capabilities
- Type-safe parameter validation with
Zod

If you don't have an API key, follow the stepshereto obtain an access token. OAuth support is planned as a future enhancement.

There are several options to configure your MCP client with the server. For hosted/remote server setup, use Smithery's CLI with aSmithery API Key. For local installation, usenpxor build from source. Each of these options is explained below.

To add a remote server to your MCP clientconfig.json, run the following command fromSmithery CLI:

npx -y @smithery/cli install @shinzo-labs/hubspot-mcp

Enter yourHUBSPOT_ACCESS_TOKENwhen prompted.

If you are developing your own agent application, you can use the boilerplate codehere.

To install the server locally withnpx, add the following to your MCP clientconfig.json:

{ "mcpServers": { "hubspot": { "command": "npx", "args": [ "@shinzolabs/hubspot-mcp" ], "env": { "HUBSPOT_ACCESS_TOKEN": "your-access-token-here" } } } }
git clone https://github.com/shinzo-labs/hubspot-mcp.git

- Add the following to your MCP clientconfig.json:

{ "mcpServers": { "hubspot": { "command": "node", "args": [ "/path/to/hubspot-mcp/index.js" ], "env": { "HUBSPOT_ACCESS_TOKEN": "your-access-token-here" } } } }

- crm_list_objects: List CRM objects with optional filtering and pagination
- crm_get_object: Get a single CRM object by ID
- crm_create_object: Create a new CRM object
- crm_update_object: Update an existing CRM object
- crm_archive_object: Archive (delete) a CRM object
- crm_search_objects: Search CRM objects using advanced filters
- crm_batch_create_objects: Create multiple objects in a single request
- crm_batch_read_objects: Read multipl objects in a single request
- crm_batch_update_objects: Update multiple objects in a single request
- crm_batch_archive_objects: Archive (delete) multiple objects in a single request

- crm_create_company: Create a new company with validated properties
- crm_update_company: Update an existing company
- crm_get_company: Get a single company by ID
- crm_search_companies: Search companies with specific filters
- crm_batch_create_companies: Create multiple companies in a single request
- crm_batch_update_companies: Update multiple companies in a single request
- crm_get_company_properties: Get all available company properties
- crm_create_company_property: Create a new company property

- crm_create_contact: Create a new contact with validated properties
- crm_update_contact: Update an existing contact's information
- crm_get_contact: Get a single contact by ID
- crm_search_contacts: Search contacts with specific filters
- crm_batch_create_contacts: Create multiple contacts in a single request
- crm_batch_update_contacts: Update multiple contacts in a single request
- crm_get_contact_properties: Get all available contact properties
- crm_create_contact_property: Create a new contact property

- crm_create_lead: Create a new lead with validated properties
- crm_update_lead: Update an existing lead's information
- crm_get_lead: Get a single lead by ID
- crm_search_leads: Search leads with specific filters
- crm_batch_create_leads: Create multiple leads in a single request
- crm_batch_update_leads: Update multiple leads in a single request
- crm_get_lead_properties: Get all available lead properties
- crm_create_lead_property: Create a new lead property

- engagement_details_get: Get details of a specific engagement
- engagement_details_create: Create a new engagement
- engagement_details_update: Update an existing engagement
- engagement_details_archive: Archive (delete) an engagement
- engagement_details_list: List all engagements with filtering
- engagement_details_get_associated: Get associated engagements

- calls_create: Create a new call record
- calls_get: Get call details
- calls_update: Update a call record
- calls_archive: Archive a call
- calls_list: List all calls
- calls_search: Search calls
- calls_batch_create: Create multiple calls
- calls_batch_read: Read multiple calls
- calls_batch_update: Update multiple calls
- calls_batch_archive: Archive multiple calls

- emails_create: Create a new email record
- emails_get: Get email details
- emails_update: Update an email
- emails_archive: Archive an email
- emails_list: List all emails
- emails_search: Search emails
- emails_batch_create: Create multiple emails
- emails_batch_read: Read multiple emails
- emails_batch_update: Update multiple emails
- emails_batch_archive: Archive multiple emails

- meetings_create: Create a new meeting
- meetings_get: Get meeting details
- meetings_update: Update a meeting
- meetings_archive: Archive (delete) a meeting
- meetings_list: List all meetings
- meetings_search: Search meetings
- meetings_batch_create: Create multiple meetings
- meetings_batch_update: Update multiple meetings
- meetings_batch_archive: Archive multiple meetings

- notes_create: Create a new note
- notes_get: Get note details
- notes_update: Update a note
- notes_archive: Archive a note
- notes_list: List all notes
- notes_search: Search notes
- notes_batch_create: Create multiple notes
- notes_batch_read: Read multiple notes
- notes_batch_update: Update multiple notes
- notes_batch_archive: Archive multiple notes

- tasks_create: Create a new task
- tasks_get: Get task details
- tasks_update: Update a task
- tasks_archive: Archive a task
- tasks_list: List all tasks
- tasks_search: Search tasks
- tasks_batch_create: Create multiple tasks
- tasks_batch_read: Read multiple tasks
- tasks_batch_update: Update multiple tasks
- tasks_batch_archive: Archive multiple tasks

- crm_list_association_types: List available association types
- crm_get_associations: Get all associations between objects
- crm_create_association: Create an association
- crm_archive_association: Archive (delete) an association
- crm_batch_create_associations: Create multiple associations
- crm_batch_archive_associations: Archive (delete) multiple associations

- products_create: Create a product with the given properties and return a copy of the object, including the ID.
- products_read: Read an Object identified by ID
- products_update: Perform a partial update of an Object identified by ID. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.
- products_archive: Move an Object identified by ID to the recycling bin.
- products_list: Read a page of products. Control what is returned via thepropertiesquery param.afteris the paging cursor token of the last successfully read resource will be returned as thepaging.next.afterJSON property of a paged response containing more results.
- products_search: Search products
- products_batch_create: Create a batch of products
- products_batch_read: Read a batch of products by internal ID, or unique property values. Retrieve records by theidPropertyparameter to retrieve records by a custom unique value property.
- products_batch_update: Update a batch of products by internal ID, or unique values specified by theidPropertyquery param.
- products_batch_archive: Archive a batch of products by ID

Contributions are welcomed and encouraged! Please readCONTRIBUTING.mdfor guidelines on issues, contributions, and contact information.

Shinzo Labs collects limited anonymous telemetry from this server to help improve our products and services. No personally identifiable information is collected as part of this process. Please review thePrivacy Policyfor more details on the types of data collected and how to opt-out of this telemetry.

Integrate with HubSpot CRM to manage contacts, deals, and companies.

Find buyers and book more meetings without your AI Assistant

Customer Intelligence & Segmentation

Find Which next customer to call and how much will be worth it

Tomba, your unique B2B email finder and verifier, provides a distinctive lead database for effortless and effective outreach scaling.

Built for the next generation of intelligent experiences, ActiveCampaign's remote MCP server makes it easy for AI agents to understand, store, and use customer context across tools, channels, and workflows.

Interact with data in Attio, the AI-native CRM, enabling AI assistants to access and manage your customer relationship information.

Interact with Microsoft Dynamics 365 for customer relationship management.

Interact with the HubSpot CRM API for sales analysis and insights.

The CRM built for agents — fully hosted remote MCP server with OAuth.

Control Reply.io sequences and contacts directly from your AI model. Manage outreach, pull stats, and enroll prospects — without leaving your AI chat.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.