home / mcp / hubspot mcp server
MCP Implementation for HubSpot
Configuration
View docs{
"mcpServers": {
"amanagarwal13-hubspot-mcp-shinzo": {
"command": "npx",
"args": [
"-y",
"@shinzolabs/hubspot-mcp"
],
"env": {
"PORT": "3000",
"TELEMETRY_ENABLED": "true",
"HUBSPOT_ACCESS_TOKEN": "YOUR_ACCESS_TOKEN"
}
}
}
}You run a Model Context Protocol (MCP) server that exposes HubSpot CRM data through a standardized interface. This enables you to centrally access, manage, and automate CRM objects such as companies, contacts, deals, and more from your MCP client with type-safe validation and batch operations.
Install or run the HubSpot MCP Server and connect it to your MCP client. You can use it either as a remote (HTTP) server or run it locally via NPX or by building from source. Once running, you can perform core CRM operations, manage associations, and leverage batch endpoints to handle multiple records efficiently. Ensure you provide a valid HubSpot access token and configure your client to point to the server using the official MCP connection configuration.
Prerequisites you need before installing include Node.js and a package manager. You will also need a HubSpot access token to authenticate requests.
Option A: Smithery Remote Server (recommended for hosted remote setup) — this flow uses the Smithery CLI to register a remote MCP server.
Option B: NPX Local Install — run the server locally using NPX and configure your client accordingly.
Option C: Build from Source — clone the repository, install dependencies, and run from the built index.
# NPX Local Install (recommended for quick start)
# Add to your MCP client config under mcpServers
```
```json
{
"mcpServers": {
"hubspot": {
"command": "npx",
"args": [
"@shinzolabs/hubspot-mcp"
],
"env": {
"HUBSPOT_ACCESS_TOKEN": "your-access-token-here"
}
}
}
}Configure required environment variables in your MCP client and in each server config. The server requires HUBSPOT_ACCESS_TOKEN. Optional variables include PORT and TELEMETRY_ENABLED to control the transport port and telemetry features.
{
"mcpServers": {
"hubspot": {
"command": "node",
"args": [
"/path/to/hubspot-mcp/index.js"
],
"env": {
"HUBSPOT_ACCESS_TOKEN": "your-access-token-here"
}
}
}
}Key configuration values you will encounter include the HubSpot access token, the HTTP transport port, and telemetry enablement.
Keep your HubSpot access token secure. Do not expose it in public client configurations. Rotate tokens as needed and store them in secure environment variables.
If you cannot reach the server, verify that the configured port is open and that HUBSPOT_ACCESS_TOKEN is valid. Check that the server process is running and that your MCP client is pointing to the correct mcpServers entry.
List CRM objects with optional filtering and pagination
Get a single CRM object by ID
Create a new CRM object
Update an existing CRM object
Archive (delete) a CRM object
Search CRM objects using advanced filters
Create multiple objects in a single request
Read multiple objects in a single request
Update multiple objects in a single request
Archive multiple objects in a single request
Create a new company with validated properties
Update an existing company
Get a single company by ID
Search companies with specific filters
Create multiple companies in a single request
Update multiple companies in a single request
Get all available company properties
Create a new company property
Create a new contact with validated properties
Update an existing contact's information
Get a single contact by ID
Search contacts with specific filters
Create multiple contacts in a single request
Update multiple contacts in a single request
Get all available contact properties
Create a new contact property
Create a new lead with validated properties
Update an existing lead's information
Get a single lead by ID
Search leads with specific filters
Create multiple leads in a single request
Update multiple leads in a single request
Get all available lead properties
Create a new lead property
Get details of a specific engagement
Create a new engagement
Update an existing engagement
Archive (delete) an engagement
List all engagements with filtering
Get associated engagements
Create a new call record
Get call details
Update a call record
Archive a call
List all calls
Search calls
Create multiple calls
Read multiple calls
Update multiple calls
Archive multiple calls
Create a new email record
Get email details
Update an email
Archive an email
List all emails
Search emails
Create multiple emails
Read multiple emails
Update multiple emails
Archive multiple emails
Create a new meeting
Get meeting details
Update a meeting
Archive a meeting
List all meetings
Search meetings
Create multiple meetings
Update multiple meetings
Archive multiple meetings
Create a new note
Get note details
Update a note
Archive a note
List all notes
Search notes
Create multiple notes
Read multiple notes
Update multiple notes
Archive multiple notes
Create a new task
Get task details
Update a task
Archive a task
List all tasks
Search tasks
Create multiple tasks
Read multiple tasks
Update multiple tasks
Archive multiple tasks
List available association types
Get all associations between objects
Create an association
Archive (delete) an association
Create multiple associations
Archive (delete) multiple associations
Get contact preferences
Update contact preferences
Global unsubscribe
Global subscribe
Get subscription definitions
Get status for multiple contacts
Update status for multiple contacts
Create a product with the given properties and return a copy of the object, including the ID.
Read an Object identified by ID
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.
Move an Object identified by ID to the recycling bin.
Read a page of products. Control what is returned via the properties query param. after is the paging cursor token of the last successfully read resource will be returned as the paging.next.after JSON property of a paged response containing more results.
Search products
Create a batch of products
Read a batch of products by internal ID, or unique property values. Retrieve records by the idProperty parameter to retrieve records by a custom unique value property.
Update a batch of products by internal ID, or unique values specified by the idProperty query param.
Archive a batch of products by ID