NestDaddy

HubSpot

io.github.ohneben/hubspot-mcp ยท v2.0.1

HubSpot API: 1,000+ endpoints as safety-categorized, hub- and plan-aware MCP tools, stdio or HTTP.

Connect Runs on your machine

Terminal
claude mcp add hubspot-mcp -e MCP_TRANSPORT=<MCP_TRANSPORT> -e HUBSPOT_ACCESS_TOKEN=<HUBSPOT_ACCESS_TOKEN> -e HUBSPOT_BASE_URL=<HUBSPOT_BASE_URL> -e HUBSPOT_TOOL_MODE=<HUBSPOT_TOOL_MODE> -e HUBSPOT_READ_ONLY=<HUBSPOT_READ_ONLY> -e HUBSPOT_CAPABILITY_CHECK=<HUBSPOT_CAPABILITY_CHECK> -e MCP_AUTH_TOKEN=<MCP_AUTH_TOKEN> -- docker run -i --rm ghcr.io/ohneben/hubspot-mcp:2.0.1
claude_desktop_config.json
{
  "mcpServers": {
    "hubspot-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/ohneben/hubspot-mcp:2.0.1"
      ],
      "env": {
        "MCP_TRANSPORT": "<MCP_TRANSPORT>",
        "HUBSPOT_ACCESS_TOKEN": "<HUBSPOT_ACCESS_TOKEN>",
        "HUBSPOT_BASE_URL": "<HUBSPOT_BASE_URL>",
        "HUBSPOT_TOOL_MODE": "<HUBSPOT_TOOL_MODE>",
        "HUBSPOT_READ_ONLY": "<HUBSPOT_READ_ONLY>",
        "HUBSPOT_CAPABILITY_CHECK": "<HUBSPOT_CAPABILITY_CHECK>",
        "MCP_AUTH_TOKEN": "<MCP_AUTH_TOKEN>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "hubspot-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/ohneben/hubspot-mcp:2.0.1"
      ],
      "env": {
        "MCP_TRANSPORT": "<MCP_TRANSPORT>",
        "HUBSPOT_ACCESS_TOKEN": "<HUBSPOT_ACCESS_TOKEN>",
        "HUBSPOT_BASE_URL": "<HUBSPOT_BASE_URL>",
        "HUBSPOT_TOOL_MODE": "<HUBSPOT_TOOL_MODE>",
        "HUBSPOT_READ_ONLY": "<HUBSPOT_READ_ONLY>",
        "HUBSPOT_CAPABILITY_CHECK": "<HUBSPOT_CAPABILITY_CHECK>",
        "MCP_AUTH_TOKEN": "<MCP_AUTH_TOKEN>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "hubspot-mcp": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/ohneben/hubspot-mcp:2.0.1"
      ],
      "env": {
        "MCP_TRANSPORT": "<MCP_TRANSPORT>",
        "HUBSPOT_ACCESS_TOKEN": "<HUBSPOT_ACCESS_TOKEN>",
        "HUBSPOT_BASE_URL": "<HUBSPOT_BASE_URL>",
        "HUBSPOT_TOOL_MODE": "<HUBSPOT_TOOL_MODE>",
        "HUBSPOT_READ_ONLY": "<HUBSPOT_READ_ONLY>",
        "HUBSPOT_CAPABILITY_CHECK": "<HUBSPOT_CAPABILITY_CHECK>",
        "MCP_AUTH_TOKEN": "<MCP_AUTH_TOKEN>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
MCP_TRANSPORT
Required
Server transport. Set to 'stdio' for local MCP clients; the image otherwise starts the Streamable HTTP transport.
HUBSPOT_ACCESS_TOKEN
Required, secret
HubSpot service key or legacy private app token (pat-...), from Settings -> Integrations. An OAuth access token also works.
HUBSPOT_BASE_URL
Optional
API host. Default https://api.hubapi.com; use https://api-eu1.hubapi.com for EU data residency portals.
HUBSPOT_TOOL_MODE
Optional
'discovery' (default) exposes 3 meta-tools that search, inspect and call all 1,076 endpoints; 'all' exposes the ~690 endpoint tools directly.
HUBSPOT_READ_ONLY
Optional
Set to 'true' to expose only read-only tools.
HUBSPOT_CAPABILITY_CHECK
Optional
Read the token's scopes and probe paid-tier or beta API groups at startup (read-only, up to about 30 API calls). Set to 'false' to skip.
MCP_AUTH_TOKEN
Optional, secret
Only for MCP_TRANSPORT=http: bearer token required on /mcp. Without it a non-loopback bind refuses to start.

Details

Packageghcr.io/ohneben/hubspot-mcp:2.0.1 (OCI, stdio)
First published15 Sep 2026
Last updated15 Sep 2026
Registry nameio.github.ohneben/hubspot-mcp

More marketing and seo servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.