ohneben's HubSpot MCP server — the whole public API (1,000+ endpoints across CRM, CMS, Marketing, Automation & Commerce) as safety-categorized, hub & plan-aware tools. stdio + Streamable HTTP, Docker.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/ohneben/Hubspot-MCP{
"mcpServers": {
"hubspot-mcp": {
"command": "node",
"args": ["/path/to/Hubspot-MCP/dist/index.js"]
}
}
}MCP Servers overview
# ohneben's HubSpot MCP [](https://buymeacoffee.com/ohneben) --- #### License & checks [](https://github.com/ohneben/Hubspot-MCP/actions/workflows/ci.yml) [](./LICENSE.md) #### MCP registries [](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.ohneben%2Fhubspot-mcp/versions/latest) [](https://mcpservers.org/servers/ohneben/hubspot-mcp) [](https://glama.ai/mcp/servers/ohneben/Hubspot-MCP) **The most complete HubSpot MCP server there is.** Run your entire [HubSpot](https://www.hubspot.com/) account in plain language from **Claude**, **Cursor**, or any other [MCP](https://modelcontextprotocol.io) client. This [Model Context Protocol](https://modelcontextprotocol.io) server exposes the **whole public HubSpot API — all 1,076 endpoints across 102 APIs, in 687 tools** — CRM, CMS, Marketing, Automation, Conversations, Commerce, Files, Settings, Webhooks and more, generated straight from HubSpot's own OpenAPI definitions. Endpoints HubSpot repeats per object type are one tool each (`crm_objects_search` with `objectType: "deals"` instead of 32 separate search tools), and every tool description says when to use it. Every tool is **safety-categorized** (🟢 read-only / 🟡 write / 🔴 destructive) and — unique to this server — **hub & plan aware**: HubSpot publishes which hub and tier every API needs (Free / Starter / Professional / Enterprise), and this server carries that straight into each tool plus a live **capability report** for *your* portal. It runs over **stdio** (Claude Desktop and other local launchers) or **Streamable HTTP** (hosted in Docker), and ships with retries, client-side rate limiting tuned to HubSpot's burst caps, and request timeouts so it holds up against a live account. ## Why you'll want this Some MCP servers just forward a slice of the API. This one is built to be **safe to hand to an LLM**, **complete**, and **easy to run for real**: | What you get | Why it matters | | --- | --- | | **All 1,076 endpoints — the whole public API** | Contacts, companies, deals, tickets, every engagement type, associations v4, properties, pipelines, lists, imports/exports, marketing emails & events, campaigns, forms, transactional email, sequences, workflows/actions, conversations & custom channels, CMS pages/posts/HubDB/source code, files, commerce (invoices, orders, carts, payments, subscriptions), settings, webhooks — nothing hand-picked or left behind. Most servers stop at ~30 CRM tools. | | **687 tools, not 1,076 look-alikes** | HubSpot repeats the same endpoints for 32 CRM object types, for landing and site pages, and for blog posts, authors and tags. Those are one tool each with a selector argument (`objectType`, `pageType`, `blogResource`), so `crm_objects_search` covers contacts, deals, tickets and custom objects. Every call still goes to exactly the endpoint it went to before, with that endpoint's scopes and plan hints. | | **Descriptions that say when to use a tool** | Each description opens with what the tool does, then when to prefer a sibling (`crm_objects_list` points to `crm_objects_search` for filtering and `crm_objects_batch_read` for known IDs), what it changes, plan and scopes, and the endpoint it calls. Undocumented HubSpot parameters get a description. | | **Hub & plan awareness** *(nobody else has this)* | HubSpot gates APIs by hub and tier — HubDB needs Content/Marketing Hub **Professional**, custom-object schemas need **Enterprise**, sequences need Sales/Service **Professional**. Every tool states its requirement, straight from HubSpot's own API index. | | **Access check at startup** | When the server starts it reads the token's scopes and probes every paid-tier or beta API group with one cheap read. The model gets the result in the server instructions, search results say per tool whether this token can use it, and `hubspot_get_capabilities` explains each status with the scopes to add. No more walls of mystery 403s. | | **Curated safety categories** 🟢 / 🟡 / 🔴 | Not naive "GET = safe": a `POST …/search` is a **read-only query**, `merge` is flagged **irreversible**, `gdpr-delete` is a **permanent purge** (vs. archive → recycle bin), list-membership calls are reversible **links**, `POST /crm/v3/imports` is a **bulk import**, and transactional email is **sends messages**. | | **Machine-readable MCP annotations** (`readOnlyHint`, `destructiveHint`) | Hosts that honor annotations (Claude included) can auto-trust reads and demand confirmation before anything destructive. | | **Actionable error hints** | 403 with `MISSING_SCOPES` → the exact scopes to add and where; plain 403 on a gated API → the plan tier it needs; 401 → token type & expiry guidance; 429 → your limits. The model gets *how to fix it*, not just *what broke*. | | **Read-only mode & group filtering** | Expose only the 302 🟢 read-only tools (`HUBSPOT_READ_ONLY=true`), or narrow to the groups you use (`HUBSPOT_INCLUDE_GROUPS=contacts,deals,cms:*`). Area wildcards included. | | **Discovery mode by default** | Out of the box the model sees 6 tools (~2k tokens): search, inspect and invoke over all 687 endpoint tools, plus the capability, GraphQL and raw-request tools. `HUBSPOT_TOOL_MODE=all` exposes every endpoint tool directly. Read-only mode applies either way. | | **Real file uploads** | The multipart endpoints (Files, CRM imports, HubDB import, CMS source code) actually work — pass file content inline or as base64. Most generated servers can't do multipart at all. | | **Automatic retries with backoff** | Transient `429` / `5xx` responses are retried with jittered exponential backoff, honoring HubSpot's `Retry-After` header. | | **Built-in rate limiting** | Self-throttles under HubSpot's burst caps (default 100 req / 10 s) with a **separate limiter for the `/search` endpoints** (~5 req/s cap). A burst of tool calls won't trip a `429`. | | **Response-size guard** | Optionally cap huge list responses (`HUBSPOT_MAX_RESPONSE_CHARS`) so one call can't blow the model's context window. | | **CRM GraphQL passthrough** | HubSpot's GraphQL endpoint is query-only, so it's a 🟢 tool here — fetch a contact, its company and that company's deals in one round-trip. | | **Raw-request escape hatch** | `hubspot_api_request` reaches brand-new or beta endpoints the moment HubSpot ships them — auth, throttling and retries still handled server-side. | | **Two transports: stdio *and* Streamable HTTP** | Use it locally in Claude Desktop, or run one always-on server that any number of MCP clients reach over HTTP. | | **Docker + docker-compose, health check, auto-restart** | Production-style deployment out of the box: `docker compose up` and it stays up. | | **Optional bearer-token auth** on the HTTP endpoint | Put the server behind a shared secret the moment it's reachable beyond localhost. | | **Your token never reaches the model** | The access token lives in the server's environment and is injected on every request — the assistant only ever sees tool inputs and API responses. | | **Drop-in spec updates** | `npm run fetch-specs` pulls HubSpot's latest OpenAPI definitions (and their hub/tier metadata) from HubSpot's public index — new endpoints become new tools on rebuild, no code changes. | ## How it compares There are a few ways to reach HubSpot from an AI assistant today. Here's how this server stacks up against the alternatives: | | **This server** | Official HubSpot MCP | shinzo-labs `hubspot-mcp` | `mcp-hubspot` (buryhuang) | CData MCP | |---|:---:|:---:|:---:|:---:|:---:| | Approx. tools | **~690 (all 1,076 endpoints)** | ~7 curated (remote) | 100+ | ~7 | 3 (generic SQL) | | Whole public API (CRM **and** CMS · Marketing · Automation · Commerce · Files · Settings · Webhooks) | ✅ | ➖ CRM + some content reads | ➖ CRM-centric | ❌ | ❌ | | Hub & plan-tier awareness per tool | ✅ | ❌ | ❌ | ❌ | ❌ | | Account capability report (scopes · usage · unlocks) | ✅ | ❌ | ❌ | ❌ | ❌ | | Reads **and** writes | ✅ | ✅ | ✅ | ➖ partial | ❌ read-only | | Curated 🟢 / 🟡 / 🔴 safety categories | ✅ | ➖ | ➖ | ➖ | n/a | | `readOnlyHint` / `destructiveHint` annotations | ✅ | ➖ | ➖ | ➖ | ➖ | | Read-only mode + group filtering | ✅ | ❌ | ❌ | ❌ | always read-only | | File uploads (multipart) | ✅ | ❌ | ❌ | ❌ | ❌ | | GraphQL passthrough | ✅ | ❌ | ❌ | ❌ | ❌ | | Rate limiting + auto-retry (`429`/`5xx`) | ✅ | ➖ | ➖ | ❌ | ❌ | | `stdio` transport | ✅ | ✅ local package | ✅ | ✅ | ✅ | | Streamable-HTTP transport | ✅ | ✅ hosted remote | ✅ | ❌ | ❌ | | Docker + compose + health check | ✅ | ❌ | ➖ Dockerfile | ➖ image only | ❌ | | Self-hosted on your own infra | ✅ | ➖ vendor cloud | ✅ | ✅ | ✅ | | Language | TypeScript | TypeScript | TypeScript | Python | Java | | License | MIT | — | MIT | MIT | MIT | <sub>✅ = yes · ➖ = partial / not documented · ❌ = no. Compiled from each project's public documentation; this is an unofficial project, not affiliated with HubSpot or the projects listed. Tool counts are approximate and move as APIs evolve.</sub> **The short version:** the official remote server is a great managed on-ramp but covers a handful of curated tools. The community servers are solid but CRM-centric, without plan awareness or safety guardrails. This one gives you **the entire public API**, **hub/plan awareness no one else has**, **both transports**, a *
What people ask about Hubspot-MCP
What is ohneben/Hubspot-MCP?
+
ohneben/Hubspot-MCP is mcp servers for the Claude AI ecosystem. ohneben's HubSpot MCP server — the whole public API (1,000+ endpoints across CRM, CMS, Marketing, Automation & Commerce) as safety-categorized, hub & plan-aware tools. stdio + Streamable HTTP, Docker. It has 1 GitHub stars and its last recorded update is dated 2026-09-15.
How do I install Hubspot-MCP?
+
You can install Hubspot-MCP by cloning the repository (https://github.com/ohneben/Hubspot-MCP) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is ohneben/Hubspot-MCP safe to use?
+
Our security agent has analyzed ohneben/Hubspot-MCP and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains ohneben/Hubspot-MCP?
+
ohneben/Hubspot-MCP is maintained by ohneben. The last recorded GitHub activity is dated 2026-09-15, with 5 open issues.
Are there alternatives to Hubspot-MCP?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy Hubspot-MCP to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/ohneben-hubspot-mcp)<a href="https://claudewave.com/repo/ohneben-hubspot-mcp"><img src="https://claudewave.com/api/badge/ohneben-hubspot-mcp" alt="Featured on ClaudeWave: ohneben/Hubspot-MCP" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ
The fastest path to AI-powered full stack observability, even for lean teams.