Interact with the HubSpot CRM API to manage contacts, companies, and deals.
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 daysAll 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
hubspot_create_contact
firstname
(string): Contact's first namelastname
(string): Contact's last nameemail
(string, optional): Contact's email addressproperties
(dict, optional): Additional contact properties
{"phone": "123456789", "company": "HubSpot"}
company
is provided in properties, also checks for matches with the same companyhubspot_get_companies
hubspot_create_company
name
(string): Company nameproperties
(dict, optional): Additional company properties
{"domain": "example.com", "industry": "Technology"}
hubspot_get_company_activity
company_id
(string): HubSpot company IDhubspot_get_recent_engagements
This MCP server is designed to work with multiple HubSpot users, each with their own access token. The server does not use a global environment variable for the access token.
Instead, each request to the MCP server should include the user's specific access token in one of the following ways:
X-HubSpot-Access-Token: your-token-here
accessToken
: {"accessToken": "your-token-here"}
hubspotAccessToken
: {"hubspotAccessToken": "your-token-here"}
This design allows you to store user tokens in your own backend (e.g., Supabase) and pass them along with each request.
// Example of how to use this MCP server in a multi-user setup
async function makeHubSpotRequest(userId, action, params) {
// Retrieve the user's HubSpot token from your database
const userToken = await getUserHubSpotToken(userId);
// Make request to MCP server with the user's token
const response = await fetch('https://your-mcp-server.vercel.app/', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-HubSpot-Access-Token': userToken
},
body: JSON.stringify({
action,
...params
})
});
return await response.json();
}
You'll need a HubSpot access token for each user. You can obtain this by:
Go to your HubSpot account settings
Navigate to Integrations > Private Apps
Click "Create private app"
Fill in the basic information:
Define required scopes:
Optional scopes:
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.
docker pull buryhuang/mcp-hubspot:latest
docker build -t mcp-hubspot .
Run the container:
docker run \
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
To install mcp-hubspot for Claude Desktop automatically via Smithery:
npx -y @smithery/cli@latest install mcp-hubspot --client claude
{
"mcpServers": {
"hubspot": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"buryhuang/mcp-hubspot:latest"
]
}
}
}
To set up the development environment:
pip install -e .
This project is licensed under the MIT License.
Manage various router types using natural language. Requires router credentials to be configured.
Access personal and team knowledge repositories, including documents and Slack discussions.
Automate your local browser
Interact with Notion using its API. This server mirrors the Notion API SDK, allowing LLMs to manage pages, databases, and other Notion content.
A server for querying Jira issues, requiring a Jira token for authentication.
MCP server to interact with Routine: calendars, tasks, notes, etc.
Interact with your Obsidian vault using natural language.
Interact with your Tmux sessions, windows and pane, execute commands in tmux panes and retrieve result.
A Jira integration that allows LLMs to act as project managers and personal assistants for teams.
An intelligent task management system based on MCP, providing an efficient programming workflow framework for AI Agents with an optional web-based GUI.