HubSpot CRM MCP Server - 70 AI-Powered Tools
Interact with HubSpot CRM through natural language. Search and manage contacts, deals, and engagements. Log emails, notes, and meetings. Access pipelines and custom fields.
Tool capabilities
Full tool listing grouped by capability area.
Calls
-
log-call
Log a phone call activity in HubSpot. Can be associated with a contact and/or deal.
Campaigns
-
get-campaign
Read onlyGet detailed information about a specific marketing campaign including its properties, metrics, and associated assets.
-
create-campaign
Create a new marketing campaign in HubSpot. Campaigns help organize and track marketing efforts across channels. Note: Budget is managed separately via budget items, not directly on the campaign.
-
update-campaign
Update an existing marketing campaign in HubSpot. Modify name, dates, budget, or other properties.
-
delete-campaign
DestructivePermanently delete a marketing campaign from HubSpot. This action cannot be undone.
-
get-campaign-assets
Read onlyGet assets associated with a marketing campaign by type. Assets include landing pages, blog posts, emails, ads, workflows, forms, CTAs, and social messages.
-
associate-campaign-asset
Associate an asset (landing page, email, blog post, etc.) with a marketing campaign. This links the asset to the campaign for tracking and reporting.
-
remove-campaign-asset
Remove an asset association from a marketing campaign. The asset itself is not deleted, only the link to the campaign is removed.
Companies
-
get-company-by-domain
Read onlyLook up a HubSpot company by exact domain (e.g., "acme.com"). Returns the company if found, or null if no company exists with that domain. Use this BEFORE creating a company to prevent duplicates.
-
upsert-company
Create or update a company by domain (e.g., "acme.com"). If a company with this domain already exists, it will be updated. If not, a new company will be created. This is the SAFEST way to create companies — it prevents duplicates automatically.
-
get-company
Read onlyGet detailed information about a specific company by ID, including associated contacts and deals.
-
create-company
Create a new company in HubSpot. IMPORTANT: Before creating, use GetCompanyByDomain or UpsertCompany to check if the company already exists. Prefer UpsertCompany for safe create-or-update operations that prevent duplicates.
-
update-company
Update an existing company in HubSpot. Only provided fields will be updated.
Contacts
-
get-contact-by-email
Read onlyLook up a HubSpot contact by exact email address. Returns the contact if found, or null if no contact exists with that email. Use this BEFORE creating a contact to prevent duplicates.
-
upsert-contact
Create or update a contact by email address. If a contact with this email already exists, it will be updated with the provided properties. If not, a new contact will be created. This is the SAFEST way to create contacts — it prevents duplicates automatically.
-
search-contacts
Read onlySearch HubSpot contacts by email, name, or phone number. Supports exact match for dedup checks. Use search_by to choose which field to search, and exact=true for precise matching (e.g., exact email lookup).
-
get-contact
Read onlyGet detailed information about a HubSpot contact by ID, including associated deals, notes, and emails.
-
create-contact
Create a new contact in HubSpot. IMPORTANT: Before creating, use GetContactByEmail or UpsertContact to check if the contact already exists. Prefer UpsertContact for safe create-or-update operations that prevent duplicates.
-
update-contact
Update an existing HubSpot contact properties like name, email, phone, or lifecycle stage.
-
delete-contact
DestructivePermanently delete a contact from HubSpot. This action cannot be undone.
-
merge-contacts
DestructiveMerge two contacts into one. The secondary contact will be merged into the primary contact. All associations and activities from the secondary contact will be transferred.
-
add-tags-to-contact
Add tags to a HubSpot contact for categorization and segmentation.
-
remove-tags-from-contact
Remove tags from a HubSpot contact.
-
associate-contact-company
Associate a contact with a company in HubSpot. Creates a link between the contact and company records.
-
associate-deal-contact
Associate a deal with a contact in HubSpot. Creates a link between the deal and contact records.
-
enroll-contact-in-workflow
Manually enroll a contact into a workflow. The contact will begin receiving the workflow actions. Note: Uses the Automation v4 API (BETA).
-
unenroll-contact-from-workflow
DestructiveRemove a contact from a workflow. The contact will stop receiving workflow actions. Note: Uses the Automation v4 API (BETA).
-
list-contact-lists
Read onlyList all contact lists in HubSpot CRM. Returns both static and dynamic lists.
-
create-contact-list
Create a new contact list in HubSpot. Lists can be static (manually managed) or dynamic (filter-based).
-
add-contact-to-list
Add one or more contacts to a static contact list. Only works with MANUAL (static) lists.
-
remove-contact-from-list
Remove one or more contacts from a static contact list. Only works with MANUAL (static) lists.
Custom Fields
-
get-custom-fields
Read onlyGet custom field definitions for contacts or deals in HubSpot. Returns all properties including custom fields.
Deals
-
search-deals
Read onlySearch HubSpot deals by name, pipeline, stage, or status. Use dealname to search by deal name text.
-
get-deal
Read onlyGet detailed information about a HubSpot deal by ID, including associated contacts, notes, and emails.
-
create-deal
Create a new deal in HubSpot. IMPORTANT: Before creating, use SearchDeals with the dealname parameter to check if a similar deal already exists to prevent duplicates. Optionally associate with a contact.
-
update-deal
Update an existing HubSpot deal properties like name, amount, stage, or status.
-
delete-deal
DestructivePermanently delete a deal from HubSpot. This action cannot be undone.
Emails
-
log-email
Log an email communication in HubSpot, associated with a contact and/or deal. This records the email in the timeline, it does not send an actual email.
-
get-owner-by-email
Read onlyLook up a HubSpot owner/user by their email address. Returns full details including owner ID, name, userId, and teams. Use this to find the owner ID for a user when you only have their email.
-
send-transactional-email
Send a transactional email using a HubSpot email template. Transactional emails are for order confirmations, password resets, and other triggered communications.
Events
-
get-marketing-event
Read onlyGet detailed information about a specific marketing event including event details, dates, and attendance statistics.
-
create-marketing-event
Create a new marketing event in HubSpot. Marketing events are used to track webinars, conferences, workshops, and other events for attendance and engagement tracking.
-
update-marketing-event
Update an existing marketing event in HubSpot. Modify event details, dates, or other properties.
-
delete-marketing-event
DestructivePermanently delete a marketing event from HubSpot. This action cannot be undone and will remove all associated attendance data.
-
record-event-attendance
Record attendance state for contacts at a marketing event. Use this to register contacts, mark them as attended, cancelled, or no-show.
-
get-event-participants
Read onlyGet participants/attendees for a marketing event. Optionally filter by attendance state (REGISTERED, ATTENDED, CANCELLED, NO_SHOW).
General
-
search-companies
Read onlySearch HubSpot companies by name or domain. Supports exact match for dedup checks. Use search_by to choose which field to search, and exact=true for precise matching (e.g., exact domain lookup).
-
get-activities
Read onlyGet activity timeline (notes, emails, calls, meetings, tasks) for a HubSpot contact, company, or deal. Returns activities sorted by most recent first.
-
log-note
Create a note in HubSpot associated with a contact and/or deal. Notes appear in the contact/deal timeline.
Lists
-
list-campaigns
Read onlyList marketing campaigns in HubSpot. Optionally filter by name. Returns campaign details including objectives, dates, and budget.
-
list-marketing-events
Read onlyList all marketing events in HubSpot. Marketing events include webinars, conferences, workshops, and other events used for tracking attendance and engagement.
Meetings
-
log-meeting
Log a meeting activity in HubSpot associated with a contact and/or deal.
Owners
-
get-owners
Read onlyGet all HubSpot users/owners. Returns user IDs, names, and emails for assigning records.
-
get-owner-by-id
Read onlyGet a HubSpot owner/user by their ID. Returns full details including email, name, userId, and teams. Use this to look up who owns a specific record.
Pipelines
-
get-pipelines
Read onlyGet all deal pipelines and their stages from HubSpot. Use this to get valid pipeline and stage IDs for creating or updating deals.
Tasks
-
search-tasks
Read onlySearch and filter HubSpot tasks by owner, status, priority, or due date range. Use this to find tasks assigned to a specific user (owner_id) or filter by task status/priority.
-
get-task-by-id
Read onlyGet a single HubSpot task by its ID with full details including subject, body, status, priority, owner, and due date.
-
get-tasks
Read onlyGet tasks associated with a HubSpot contact. Returns full task details including subject, body, status, priority, owner, and due date. For searching tasks by owner or filters, use SearchTasks instead.
-
create-task
Create a new task in HubSpot. Can be associated with a contact and/or deal.
-
update-task
Update an existing task in HubSpot. Only provided fields will be updated.
-
delete-task
DestructivePermanently delete a task from HubSpot. This action cannot be undone.
Tickets
-
search-tickets
Read onlySearch HubSpot tickets/support cases by subject, pipeline, or status.
-
create-ticket
Create a new support ticket in HubSpot. Can be associated with a contact.
-
update-ticket
Update an existing support ticket in HubSpot. Only provided fields will be updated.
Workflows
-
list-workflows
Read onlyList all automation workflows in HubSpot. Note: Uses the Automation v4 API (BETA).
-
get-workflow
Read onlyGet details of a specific workflow by ID. Note: Uses the Automation v4 API (BETA).
-
create-workflow
Create a new automation workflow in HubSpot. Note: Uses the Automation v4 API (BETA). Workflows can automate marketing, sales, and service processes.
-
update-workflow
Update an existing workflow in HubSpot. Can modify the workflow name, type, enrollment triggers, and actions. Note: Uses the Automation v4 API (BETA).
-
delete-workflow
DestructiveDelete a workflow by ID. This action is permanent and cannot be undone. Note: Uses the Automation v4 API (BETA).
-
get-workflow-enrollments
Read onlyGet contacts currently enrolled in a workflow. Returns a list of enrolled contacts with their enrollment details. Note: Uses the Automation v4 API (BETA).
Connection instructions
Use the same MCP endpoint for Claude Desktop and Claude Code CLI.
Claude Code CLI
claude mcp add hubspot -- npx -y mcp-remote https://mcpplug.ai/mcp/hubspot
Claude Desktop JSON
{
"mcpServers": {
"hubspot": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcpplug.ai/mcp/hubspot"
]
}
}
}
Frequently asked questions
How do I connect HubSpot CRM to Claude?
Use the MCP endpoint at https://mcpplug.ai/mcp/hubspot in Claude Desktop or Claude Code. Authorize your account during the OAuth flow, then the tools become available instantly.
What tools are available in the HubSpot CRM MCP server?
HubSpot CRM includes 70 tools. You can view every tool grouped by capability directly on this page.
Is HubSpot CRM MCP server free?
Yes. HubSpot CRM is available with free or usage-based access on MCPPlug.
Can I use this server with AI clients beyond Claude?
Yes. Any MCP-compatible client can connect to this endpoint, including CLI and IDE clients that support HTTP MCP transports.