A Model Context Protocol (MCP) server implementation that provides integration with HubSpot CRM. This server enables AI models to interact with HubSpot data and operations through a standardized interface.
For more information about the Model Context Protocol and how it works, see Anthropic's MCP documentation.
The server exposes the following resources:
hubspot://hubspot_contacts
: A dynamic resource that provides access to HubSpot contactshubspot://hubspot_companies
: A dynamic resource that provides access to HubSpot companieshubspot://hubspot_recent_engagements
: A dynamic resource that provides access to HubSpot engagements from the last 3 days
All resources auto-update as their respective objects are modified in HubSpot.
-
Create Hubspot contacts by copying from LinkedIn profile webpage:
Create HubSpot contacts and companies from following: John Doe Software Engineer at Tech Corp San Francisco Bay Area • 500+ connections Experience Tech Corp Software Engineer Jan 2020 - Present · 4 yrs San Francisco, California Previous Company Inc. Senior Developer 2018 - 2020 · 2 yrs Education University of California, Berkeley Computer Science, BS 2014 - 2018
-
Get latest activities for your company:
What's happening latestly with my pipeline?
The server offers several tools for managing HubSpot objects:
-
hubspot_get_contacts
- Retrieve contacts from HubSpot
- No input required
- Returns: Array of contact objects
-
hubspot_create_contact
- Create a new contact in HubSpot (checks for duplicates before creation)
- Input:
firstname
(string): Contact's first namelastname
(string): Contact's last nameemail
(string, optional): Contact's email addressproperties
(dict, optional): Additional contact properties- Example:
{"phone": "123456789", "company": "HubSpot"}
- Example:
- Behavior:
- Checks for existing contacts with the same first name and last name
- If
company
is provided in properties, also checks for matches with the same company - Returns existing contact details if a match is found
- Creates new contact only if no match is found
-
hubspot_get_companies
- Retrieve companies from HubSpot
- No input required
- Returns: Array of company objects
-
hubspot_create_company
- Create a new company in HubSpot (checks for duplicates before creation)
- Input:
name
(string): Company nameproperties
(dict, optional): Additional company properties- Example:
{"domain": "example.com", "industry": "Technology"}
- Example:
- Behavior:
- Checks for existing companies with the same name
- Returns existing company details if a match is found
- Creates new company only if no match is found
-
hubspot_get_company_activity
- Get activity history for a specific company
- Input:
company_id
(string): HubSpot company ID
- Returns: Array of activity objects
hubspot_get_recent_engagements
- Get HubSpot engagements from all companies and contacts from the last 3 days
- No input required
- Returns: Array of engagement objects with full metadata
You'll need a HubSpot access token. You can obtain this by:
- Creating a private app in your HubSpot account:
Follow the HubSpot Private Apps Guide
- Go to your HubSpot account settings
- Navigate to Integrations > Private Apps
- Click "Create private app"
- Fill in the basic information:
- Name your app
- Add description
- Upload logo (optional)
- Define required scopes:
- tickets
- crm.objects.contacts.write
- crm.objects.contacts.sensitive.read
- crm.objects.companies.sensitive.read
- sales-email-read
- crm.objects.deals.sensitive.read
- crm.objects.companies.write
- crm.objects.companies.read
- crm.objects.deals.read
- crm.objects.deals.write
- crm.objects.contacts.read
- Review and create the app
- Copy the generated access token
Note: Keep your access token secure and never commit it to version control.
You can either build the image locally or pull it from Docker Hub. The image is built for the Linux platform.
- Linux/amd64
- Linux/arm64
- Linux/arm/v7
docker pull buryhuang/mcp-hubspot:latest
docker build -t mcp-hubspot .
Run the container:
docker run \
-e HUBSPOT_ACCESS_TOKEN=your_access_token_here \
buryhuang/mcp-hubspot:latest
To publish the Docker image for multiple platforms, you can use the docker buildx
command. Follow these steps:
-
Create a new builder instance (if you haven't already):
docker buildx create --use
-
Build and push the image for multiple platforms:
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t buryhuang/mcp-hubspot:latest --push .
-
Verify the image is available for the specified platforms:
docker buildx imagetools inspect buryhuang/mcp-hubspot:latest
{
"mcpServers": {
"hubspot": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"HUBSPOT_ACCESS_TOKEN=your_access_token_here",
"buryhuang/mcp-hubspot:latest"
]
}
}
}
To set up the development environment:
pip install -e .
This project is licensed under the MIT License.