A Model Context Protocol (MCP) implementation for the HubSpot API, 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 steps here to obtain an access token.
Add the following to your MCP client config.json
(~/.heimdall/config.json
if using Heimdall):
{
"mcpServers": {
"hubspot": {
"command": "npx",
"args": [
"@shinzolabs/hubspot-mcp"
],
"env": {
"HUBSPOT_ACCESS_TOKEN": "your-token-here"
}
}
}
}
- Download the repo:
git clone https://github.com/shinzo-labs/hubspot-mcp.git
- Install packages (inside cloned repo):
pnpm i
- Add the following to your MCP client
config.json
(~/.heimdall/config.json
if using Heimdall):
{
"mcpServers": {
"hubspot": {
"command": "node",
"args": [
"/path/to/hubspot-mcp/index.js"
],
"env": {
"HUBSPOT_ACCESS_TOKEN": "your-token-here"
}
}
}
}
To install for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @shinzo-labs/hubspot-mcp --client claude
-
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_delete_object
: 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_update_objects
: Update multiple objects in a single request -
crm_batch_delete_objects
: Delete multiple objects in a single request
- Basic Operations:
-
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
-
- Batch Operations:
-
crm_batch_create_companies
: Create multiple companies in a single request -
crm_batch_update_companies
: Update multiple companies in a single request
-
- Property Management:
-
crm_get_company_properties
: Get all available company properties -
crm_create_company_property
: Create a new company property
-
- Basic Operations:
-
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
-
- Batch Operations:
-
crm_batch_create_contacts
: Create multiple contacts in a single request -
crm_batch_update_contacts
: Update multiple contacts in a single request
-
- Property Management:
-
crm_get_contact_properties
: Get all available contact properties -
crm_create_contact_property
: Create a new contact property
-
- Basic Operations:
-
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
-
- Batch Operations:
-
crm_batch_create_leads
: Create multiple leads in a single request -
crm_batch_update_leads
: Update multiple leads in a single request
-
- Property Management:
-
crm_get_lead_properties
: Get all available lead properties -
crm_create_lead_property
: Create a new lead property
-
- Basic Operations:
-
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_delete
: Delete an engagement -
engagement_details_list
: List all engagements with filtering -
engagement_details_get_associated
: Get associated engagements
-
- Basic Operations:
-
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
-
- Batch Operations:
-
calls_batch_create
: Create multiple calls -
calls_batch_read
: Read multiple calls -
calls_batch_update
: Update multiple calls -
calls_batch_archive
: Archive multiple calls
-
- Basic Operations:
-
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
-
- Batch Operations:
-
emails_batch_create
: Create multiple emails -
emails_batch_read
: Read multiple emails -
emails_batch_update
: Update multiple emails -
emails_batch_archive
: Archive multiple emails
-
- Basic Operations:
-
meetings_create
: Create a new meeting -
meetings_get
: Get meeting details -
meetings_update
: Update a meeting -
meetings_delete
: Delete a meeting -
meetings_list
: List all meetings -
meetings_search
: Search meetings
-
- Batch Operations:
-
meetings_batch_create
: Create multiple meetings -
meetings_batch_update
: Update multiple meetings -
meetings_batch_archive
: Archive multiple meetings
-
- Basic Operations:
-
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
-
- Batch Operations:
-
notes_batch_create
: Create multiple notes -
notes_batch_read
: Read multiple notes -
notes_batch_update
: Update multiple notes -
notes_batch_archive
: Archive multiple notes
-
- Basic Operations:
-
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
-
- Batch Operations:
-
tasks_batch_create
: Create multiple tasks -
tasks_batch_read
: Read multiple tasks -
tasks_batch_update
: Update multiple tasks -
tasks_batch_archive
: Archive multiple tasks
-
- Basic Operations:
-
crm_list_association_types
: List available association types -
crm_get_associations
: Get all associations between objects -
crm_create_association
: Create an association -
crm_delete_association
: Delete an association
-
- Batch Operations:
-
crm_batch_create_associations
: Create multiple associations -
crm_batch_delete_associations
: Delete multiple associations
-
- Basic Operations:
-
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
-
- Bulk Operations:
-
communications_get_subscription_status
: Get status for multiple contacts -
communications_update_subscription_status
: Update status for multiple contacts
-
Contributions are welcomed and encouraged. Contact austin@shinzolabs.com with any questions, comments or concerns.