home / mcp / hubspot mcp server

HubSpot MCP Server

MCP Implementation for HubSpot

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "kozo93-hubspot-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@shinzolabs/hubspot-mcp"
      ],
      "env": {
        "PORT": "3000",
        "TELEMETRY_ENABLED": "true",
        "HUBSPOT_ACCESS_TOKEN": "YOUR_ACCESS_TOKEN"
      }
    }
  }
}

You have a Model Context Protocol (MCP) server that enables you to access and manage HubSpot CRM data through a standardized, type-safe interface. It covers core CRM objects, supports advanced associations, and offers batch operations to streamline data management with HubSpot.

How to use

Install and run the HubSpot MCP Server locally or connect to a remote instance from your MCP client. You’ll authenticate with a HubSpot access token and then perform CRM operations such as listing, creating, updating, and archiving companies, contacts, leads, engagements, tasks, notes, calls, emails, meetings, products, and more. Use the server to perform batch operations, complex searches, and property-validated writes against HubSpot resources.

How to install

Prerequisites: you need Node.js installed on your system. You can install and run the MCP server in two main ways: using an NPX local install or running the server from source.

{
  "mcpServers": {
    "hubspot": {
      "command": "npx",
      "args": [
        "@shinzolabs/hubspot-mcp"
      ],
      "env": {
        "HUBSPOT_ACCESS_TOKEN": "your-access-token-here"
      }
    }
  }
}

How to install from source

If you prefer to build from source, clone the repository, install dependencies, and configure the MCP client to start the server from a local index.js entry point.

# 1) Clone the repository
git clone https://github.com/shinzo-labs/hubspot-mcp.git

# 2) Install dependencies
pnpm i

# 3) Start the server using the local entry point
# This example assumes the runtime will run index.js from the given path
# and that HUBSPOT_ACCESS_TOKEN is provided in the environment
"{"mcpServers": {"hubspot": {"command": "node", "args": ["/path/to/hubspot-mcp/index.js"], "env": {"HUBSPOT_ACCESS_TOKEN": "your-access-token-here"}}} }"

Additional setup details

Configure your MCP client to use the local server or a remote instance. For a local runtime, ensure the environment includes HUBSPOT_ACCESS_TOKEN and that the port is accessible if you enable the HTTP transport. You can also run a remote instance via Smithery if you want a hosted MCP server for HubSpot.

Configuration and security

The server requires an access token for HubSpot access. Keep your HUBSPOT_ACCESS_TOKEN secure and avoid embedding it in public sources. You can adjust telemetry with TELEMETRY_ENABLED if you need to opt out or opt into telemetry collection.

Troubleshooting tips

If you encounter authentication errors, verify that HUBSPOT_ACCESS_TOKEN is correct and has the necessary HubSpot scopes. Check that the MCP server process has access to network routes to HubSpot APIs and that the server is running on the expected port when using the HTTP transport.

Available tools

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 multiple objects in a single request

crm_batch_update_objects

Update multiple objects in a single request

crm_batch_archive_objects

Archive (delete) multiple objects

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 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

communications_get_preferences

Get contact preferences

communications_update_preferences

Update contact preferences

communications_unsubscribe_contact

Global unsubscribe

communications_subscribe_contact

Global subscribe

communications_get_subscription_definitions

Get subscription definitions

communications_get_subscription_status

Get status for multiple contacts

communications_update_subscription_status

Update status for multiple contacts

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

Partial update of an Object identified by ID; empty values clear properties; read-only/non-existent properties error.

products_archive

Move an Object identified by ID to the recycling bin.

products_list

Read a page of products with paging controlled by the properties query parameter.

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 values

products_batch_update

Update a batch of products by internal ID or unique values