The HubSpot server provides comprehensive CRM functionality, allowing you to manage contacts, companies, deals, and engagements through the MCP protocol.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/dvlpjrs/guMCP/llms.txt
Use this file to discover all available pages before exploring further.
Authentication
This server uses OAuth 2.0 authentication. You’ll need:- A HubSpot Developer Account (sign up here)
- A registered HubSpot App with OAuth 2.0 configured
Required Scopes
crm.objects.contacts.read- Read access to contactscrm.objects.contacts.write- Write access to contactscrm.objects.companies.read- Read access to companiescrm.objects.companies.write- Write access to companiescrm.objects.deals.read- Read access to dealscrm.objects.deals.write- Write access to deals
Local Setup
Createlocal_auth/oauth_configs/hubspot/oauth.json:
Resources
The server exposes contacts as resources:| URI | Description |
|---|---|
hubspot:///contacts/{contact_id} | Individual contact with all properties |
Tools
Contact Management
list_contacts
list_contacts
List HubSpot contacts with optional search filtering.Parameters:Default Properties: firstname, lastname, email, phone, company, website, jobtitle, address, city, state, zip, country
query(string, optional): Search query for email addresseslimit(integer, optional): Maximum number of contacts (default: 10, max: 50)properties(array, optional): Specific contact properties to return
create_contact
create_contact
Create a new contact in HubSpot.Parameters:
email(string, required): Email addressfirstname(string, optional): First namelastname(string, optional): Last namephone(string, optional): Phone numbercompany(string, optional): Company namewebsite(string, optional): Website URLjobtitle(string, optional): Job titleaddress(string, optional): Street addresscity(string, optional): Citystate(string, optional): State/province/regionzip(string, optional): Postal/ZIP codecountry(string, optional): Countryproperties(object, optional): Additional custom properties
update_contact
update_contact
Update an existing contact’s properties.Parameters:
contact_id(string, required): HubSpot contact ID- All other parameters from
create_contactare optional
search_contacts
search_contacts
Search contacts using advanced filters.Parameters:
filter_property(string, required): Property to filter on (e.g., ‘email’, ‘firstname’)filter_operator(string, required): Filter operator (e.g., ‘EQ’, ‘CONTAINS_TOKEN’, ‘GT’)filter_value(string, required): Value to filter forlimit(integer, optional): Maximum results (default: 10, max: 50)properties(array, optional): Specific properties to return
Company Management
list_companies
list_companies
List HubSpot companies with optional search.Parameters:
query(string, optional): Search query for company nameslimit(integer, optional): Maximum results (default: 10, max: 50)properties(array, optional): Specific properties to return
create_company
create_company
Create a new company in HubSpot.Parameters:
name(string, required): Company namedomain(string, optional): Company website domaindescription(string, optional): Company descriptionindustry(string, optional): Industrycity(string, optional): Citystate(string, optional): State/provincecountry(string, optional): Countryphone(string, optional): Phone numberproperties(object, optional): Additional custom properties
update_company
update_company
Update an existing company.Parameters:
company_id(string, required): HubSpot company ID- All other parameters from
create_companyare optional
Deal Management
list_deals
list_deals
List HubSpot deals with optional search.Parameters:
query(string, optional): Search query for deal nameslimit(integer, optional): Maximum results (default: 10, max: 50)properties(array, optional): Specific properties to return
create_deal
create_deal
Create a new deal in HubSpot.Parameters:
dealname(string, required): Deal nameamount(number, optional): Deal amountdealstage(string, optional): Deal stage (e.g., ‘appointmentscheduled’)pipeline(string, optional): Pipeline IDclosedate(string, optional): Expected close date (yyyy-MM-dd)contact_id(string, optional): Associated contact IDcompany_id(string, optional): Associated company IDproperties(object, optional): Additional custom properties
update_deal
update_deal
Update an existing deal.Parameters:
deal_id(string, required): HubSpot deal ID- All other parameters from
create_dealare optional
Engagement Tools
get_engagements
get_engagements
Get engagement data (calls, emails, meetings) for a contact.Parameters:
contact_id(string, required): HubSpot contact IDlimit(integer, optional): Maximum engagements to returnengagement_type(string, optional): Type filter (EMAIL, CALL, MEETING, etc.)
send_email
send_email
Send an email to a HubSpot contact.Parameters:
contact_id(string, required): HubSpot contact IDsubject(string, required): Email subject linebody(string, required): Email body contentfrom_name(string, optional): Sender name
API Reference
Base URL:https://api.hubapi.com
The server uses HubSpot’s v3 CRM API for most operations. All requests use Bearer token authentication.
Error Handling
The server provides detailed error messages including:- HTTP status codes from HubSpot API
- Truncated error responses (up to 500 characters)
- Validation errors for missing required fields