Skip to main content
Glama
HubSpot MCP Server

HubSpot MCP Server

by baryhuang

HubSpot MCP Server

Docker Hub License: MIT

Overview

A Model Context Protocol (MCP) server that enables AI assistants to interact with HubSpot CRM data. This server bridges AI models with your HubSpot account, providing direct access to contacts, companies, and engagement data. Built-in vector storage and caching mechanisms help overcome HubSpot API limitations while improving response times.

Our implementation prioritizes the most frequently used, high-value HubSpot operations with robust error handling and API stability. Each component is optimized for AI-friendly interactions, ensuring reliable performance even during complex, multi-step CRM workflows.

Related MCP server: HubSpot MCP Server

Why MCP-HubSpot?

  • Direct CRM Access: Connect Claude and other AI assistants to your HubSpot data without intermediary steps

  • Context Retention: Vector storage with FAISS enables semantic search across previous interactions

  • Zero Configuration: Simple Docker deployment with minimal setup

Example Prompts

Create HubSpot contacts and companies from this LinkedIn profile:
[Paste LinkedIn profile text]
What's happening lately with my pipeline?

Available Tools

The server offers tools for HubSpot management and data retrieval:

Tool

Purpose

hubspot_create_contact

Create contacts with duplicate prevention

hubspot_create_company

Create companies with duplicate prevention

hubspot_get_company_activity

Retrieve activity for specific companies

hubspot_get_active_companies

Retrieve most recently active companies

hubspot_get_active_contacts

Retrieve most recently active contacts

hubspot_get_recent_conversations

Retrieve recent conversation threads with messages

hubspot_search_data

Semantic search across previously retrieved HubSpot data

Performance Features

  • Vector Storage: Utilizes FAISS for efficient semantic search and retrieval

  • Thread-Level Indexing: Stores each conversation thread individually for precise retrieval

  • Embedding Caching: Uses SentenceTransformer with automatic caching

  • Persistent Storage: Data persists between sessions in configurable storage directory

  • Multi-platform Support: Optimized Docker images for various architectures

Setup

Prerequisites

You'll need a HubSpot access token with these scopes:

  • crm.objects.contacts (read/write)

  • crm.objects.companies (read/write)

  • sales-email-read

Quick Start

# Install via Smithery (recommended)
npx -y @smithery/cli@latest install mcp-hubspot --client claude

# Or pull Docker image directly
docker run -e HUBSPOT_ACCESS_TOKEN=your_token buryhuang/mcp-hubspot:latest

Docker Configuration

For manual configuration in Claude desktop:

{
  "mcpServers": {
    "hubspot": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "HUBSPOT_ACCESS_TOKEN=your_token",
        "-v", "/path/to/storage:/storage",  # Optional persistent storage
        "buryhuang/mcp-hubspot:latest"
      ]
    }
  }
}

Building Docker Image

To build the Docker image locally:

git clone https://github.com/buryhuang/mcp-hubspot.git
cd mcp-hubspot
docker build -t mcp-hubspot .

For multi-platform builds:

docker buildx create --use
docker buildx build --platform linux/amd64,linux/arm64 -t buryhuang/mcp-hubspot:latest --push .

Development

pip install -e .

License

MIT License

Available Tools

16 tools
hubspot_create_companyC

Create a new company in HubSpot

Inputs: name (required), properties.

hubspot_create_contactC

Create a new contact in HubSpot

Inputs: lastname (required), firstname (required), email, properties.

hubspot_create_propertyB

Create a new custom property in HubSpot

Inputs: name (required), type (required), label (required), fieldType (required), +4 more.

hubspot_get_active_companiesB

Get most recently active companies from HubSpot

Inputs: limit.

hubspot_get_active_contactsB

Get most recently active contacts from HubSpot

Inputs: limit.

hubspot_get_companyB

Get a specific company by ID from HubSpot

Inputs: company_id (required), properties.

hubspot_get_company_activityC

Get activity history for a specific company

Inputs: company_id (required).

hubspot_get_contactC

Get a specific contact by ID from HubSpot

Inputs: contact_id (required), properties.

hubspot_get_propertyB

Get details of a specific HubSpot property definition

Inputs: object_type (required), property_name (required).

hubspot_get_recent_conversationsB

Get recent conversation threads from HubSpot with their messages

Inputs: after, limit, refresh_cache.

hubspot_get_ticket_conversation_threadsB

Get conversation threads associated with a specific ticket

Inputs: ticket_id (required).

hubspot_get_ticketsC

Get tickets from HubSpot based on configurable selection criteria

Inputs: limit, criteria, max_retries, retry_delay.

hubspot_search_dataB

Search for similar data in stored HubSpot API responses

Inputs: query (required), limit.

hubspot_update_companyC

Update an existing company record in HubSpot

Inputs: company_id (required), properties (required).

hubspot_update_contactB

Update an existing contact record in HubSpot

Inputs: contact_id (required), properties (required).

hubspot_update_propertyB

Update a HubSpot property definition (e.g., add dropdown options)

Inputs: options (required), object_type (required), property_name (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 16 tools

    Disambiguation4/5

    Most tools have distinct purposes (companies, contacts, properties, tickets, conversations), but 'hubspot_search_data' is vague and overlaps with the broader search concept, and 'get_active_companies' vs 'get_company' could cause confusion.

    Naming Consistency5/5

    All tools follow a consistent 'hubspot_verb_noun' pattern in snake_case, making the naming predictable and easy to follow.

    Tool Count4/5

    16 tools cover several CRM entities (companies, contacts, properties, tickets, conversations). The count is reasonable but slightly on the higher end for the breadth of operations provided.

    Completeness2/5

    While many core operations exist (create, get, update for companies/contacts/properties, get tickets), there are notable gaps: no delete operations, no ticket creation or update, no conversation creation, and missing ticket update.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers