HubSpot MCP: The Remote MCP Server Explained
What is HubSpot's Remote MCP Server?
Think of it as a secure, HubSpot-hosted bridge between your CRM and whichever AI your team already uses - Claude Desktop, Cursor, the ChatGPT connector, VS Code's AI features, or any similar tool. Your rep types a question in plain English, the AI reads live data out of HubSpot to answer it, and - when the rep asks for a change - the AI can create or update records the same way.
It's free, it's first-party (HubSpot built and runs it), and it's live across every HubSpot account. The bridge itself lives at mcp.hubspot.com, and that's the one URL an admin points an AI client at during setup.
HubSpot flipped the switch on full read + write access on 2026-04-13. Before that, the server was in a limited public beta with read-only access - any article still describing it as "read-only" is pre-GA. Source: HubSpot's GA changelog.
What "MCP" actually means (in plain English)
MCP stands for Model Context Protocol. It's the common plug every major AI client now uses to talk to outside tools and data. Anthropic (the team behind Claude) published it as an open standard in late 2024, and Claude, Cursor, ChatGPT, VS Code, and others adopted it through 2025. Before MCP, hooking Claude or ChatGPT into your CRM meant custom integrations or browser copy-paste. With MCP, it's one standardized connection that works across every compatible AI client.
When people in the HubSpot world say "HubSpot MCP," they mostly mean HubSpot's own bridge at mcp.hubspot.com. A few third-party tools also speak the same protocol and cover gaps HubSpot's bridge doesn't fill yet (most notably custom objects and multi-portal work - more on that further down). Every section below is about HubSpot's first-party bridge unless it clearly says otherwise.
What the server can read and write
At GA, the Remote MCP Server covers four categories of data. All actions respect the connected user's existing HubSpot permissions - a user can only see or modify records they already have access to inside HubSpot.
CRM objects - read AND write
contacts, companies, deals, tickets, carts, products, orders, line items, invoices, quotes, subscriptions, segments (lists)
Engagements - read AND write
calls, emails, meetings, notes, tasks
Organizational context - read only
users, teams, reporting structures, owners, roles, seats
Marketing and content - read only
campaigns and campaign metrics, landing pages, website pages, blog posts
Not exposed today
Custom object schemas are not currently accessible through the Remote MCP Server - only the standard CRM objects listed above. This is the single clearest capability gap at GA, and it's the differentiator that third-party MCPs are still filling. HubSpot hasn't published an ETA.
There's also no vector/semantic search - the server is built on HubSpot's CRM Search API, so querying is filter-based, not similarity-based.
The 12 exposed tools
When an MCP client connects to mcp.hubspot.com, it sees a fixed set of 12 tools the AI can call. Each one maps to a concrete HubSpot operation. A reader skimming this list can predict exactly what their AI will be able to do.
get_user_details- returns authenticated user info and per-object access permissions. Call this at the start of every session to confirm what's actually available for the connected account, especially after re-auth.search_crm_objects- search and filter CRM records. Up to 5 filter groups, 6 filters each, 200 results per page.get_crm_objects- fetch up to 100 CRM objects by ID in a single request.manage_crm_objects- create or update CRM records and activities. This is the write path that only opened up at GA.search_properties- find property definitions by keyword. Up to 5 keywords per search.get_properties- retrieve full property definitions with data types and enumeration values.search_owners- find owners by name, email, or ID. Up to 100 results.get_campaign_contacts_by_type- fetch paginated campaign contact IDs filtered by attribution type.get_campaign_analytics- retrieve campaign metrics and revenue attribution.get_campaign_asset_types- list available campaign asset type names.get_campaign_asset_metrics- get metrics for CRM objects associated with campaigns.submit_feedback- send MCP server feedback directly to HubSpot from inside a session.
Full reference: HubSpot's Remote MCP Server integration guide.
Limits and caveats (straight from HubSpot's docs)
These are the real numbers, straight from HubSpot's integration guide. Each one matters in practice for what you can ask your AI to do.
get_crm_objectsfetches a maximum of 100 object IDs per request. If you need to pull more, you paginate - the cap is per call, not per day.search_crm_objectsreturns a maximum of 200 results per page. Pagination is supported for larger result sets.- Searches are limited to 5 filter groups with 6 filters each. Fine for most real queries; tight if you're trying to express a very complex segment in one call.
search_propertiesaccepts up to 5 keywords per request - split bigger searches across multiple calls.search_ownersreturns a maximum of 100 owner results per request. Enough for almost any single team.- No vector search. The server is built on HubSpot's CRM Search API, so querying is filter-based. There is no semantic/vector/embedding path.
The Sensitive Data caveat
If the HubSpot account has Sensitive Data enabled, engagement objects (calls, emails, meetings, notes, tasks) are blocked from access through the MCP server. This restriction is MCP-specific and does not apply to HubSpot's standard CRM APIs. CRM object access is unaffected. If your account has sensitive data on and your AI cannot read recent emails, this is why.
OAuth 2.1 + PKCE is required
All connections to mcp.hubspot.com must use OAuth 2.1 with PKCE (Proof Key for Code Exchange). Most modern MCP clients support PKCE out of the box. If you're building a custom client, MCP Inspector is HubSpot's reference test client that handles PKCE automatically.
If you had the beta installed
Accounts that had the Remote MCP installed during the beta may see a REQUIRES_REAUTHORIZATION status for newly added object types after GA. To access the new scopes, disconnect and reconnect the app through HubSpot settings, then call get_user_details to verify the refreshed token.
How to connect a client (step-by-step)
Setup is done in HubSpot, not in your AI client. Once the HubSpot side is configured, any PKCE-capable MCP client can connect.
- Create an MCP Auth App in HubSpot. In your HubSpot account, go to Development > MCP Auth Apps and create a new app. HubSpot generates OAuth 2.1 credentials automatically. You can optionally add a name, description, redirect URL, and icon.
- Copy the client credentials. You'll get a Client ID and Client Secret - you'll paste these into your MCP client's OAuth config.
- Point an MCP client at mcp.hubspot.com. Any MCP client that supports OAuth with PKCE will work: Claude Desktop (via MCP configuration), Cursor, VS Code with an MCP extension, MCP Inspector, or HubSpot's own ChatGPT Connector (which handles setup internally). The current reference list of clients lives at modelcontextprotocol.io/clients.
- Complete the OAuth authorization flow when prompted. Choose which object scopes to grant - this is how HubSpot enforces per-object read/write permissions.
- Call
get_user_detailsat session start. This returns exactly which objects and tools the connected user has access to - the authoritative answer, not a guess from the scope list. - Start prompting. Your AI can now query, create, and update HubSpot data using natural language.
Self-service MCP Auth App creation went into public beta on 2026-01-13 - before that, you had to use other developer platform tools. See the self-service MCP Auth Apps announcement for the full backstory.
Remote MCP Server vs Developer MCP Server (disambiguation)
HubSpot ships two MCP servers, and "HubSpot MCP" gets used for both in the wild. They are different products for different audiences.
- Remote MCP Server - the one this page is about. Hosted by HubSpot at mcp.hubspot.com. Gives AI tools read/write access to CRM data, engagements, and marketing content. Auth is OAuth 2.1 + PKCE. Went GA on 2026-04-13. For RevOps, sales, marketing ops, agencies.
- Developer MCP Server (local) - a separate product. Installed locally via the HubSpot CLI (
hs mcp setup). Gives developers building HubSpot apps and CMS content context on the developer platform. Used inside Claude Code, Cursor, VS Code, OpenAI Codex, Gemini CLI. Went GA on 2026-02-19. For developers, not RevOps users.
If a team is asking about "connecting Claude to our HubSpot CRM", the answer is the Remote MCP Server. If a team is asking about "AI-assisted HubSpot app development inside Cursor", the answer is the Developer MCP Server. Don't confuse the two - different endpoints, different setup flows, different audiences.
See the Developer MCP Server GA announcement for the local/CLI product details.
Remote MCP Server vs the HubSpot Connector for ChatGPT
The HubSpot Connector for ChatGPT is related but separate - it's a managed ChatGPT-side install that uses HubSpot's MCP machinery under the hood, with its own install flow and its own constraints. Worth knowing if you're choosing between "hook ChatGPT Business straight up to HubSpot" and "run my own MCP client against mcp.hubspot.com".
Setup path
The ChatGPT connector is installed from inside ChatGPT itself. A ChatGPT workspace admin approves the "Enable the updated HubSpot app" prompt, then individual users upgrade and re-authenticate. The first-time HubSpot-side install must be done by a HubSpot Super Admin (or a user with App Marketplace permissions). This is a different flow from creating an MCP Auth App via Development > MCP Auth Apps.
Bulk cap
The ChatGPT connector supports bulk create and update actions for a maximum of 10 records per request. This is specific to the connector; the general Remote MCP tool limits documented above still apply underneath.
Audit trail
When the ChatGPT connector writes, attribution is recorded in HubSpot's audit log to both the user and the ChatGPT connector. Writes are fully auditable.
Sensitive Data caveat
Same as the direct Remote MCP: if the HubSpot account has Sensitive Data enabled, the ChatGPT connector loses access to engagement data (calls, emails, meetings, notes, tasks).
Pick ChatGPT Connector when
Your team lives in ChatGPT, you have a ChatGPT Business/Enterprise workspace admin, and you want HubSpot available inside every chat without running an MCP client yourself. See HubSpot's ChatGPT write-access announcement for the full feature list.
Pick direct Remote MCP when
You want to use Claude Desktop, Cursor, VS Code, or another MCP client - or you want to avoid the 10-record bulk cap on write operations.
When HubSpot's Remote MCP isn't enough (and what fills each gap)
HubSpot's Remote MCP covers most of what a RevOps team needs from "AI on my CRM". But there are real gaps, and they're worth naming honestly so you can decide whether you need anything on top.
Custom objects
Gap. The Remote MCP Server does not currently expose custom object schemas. If your data model leans on contracts, subscriptions-as-custom-objects, loyalty programs, or any other portal-specific object, your AI cannot see them through mcp.hubspot.com today.
What fills it. Daeda AI's Automation Suite fully supports existing custom objects - sync, query, add properties, create records, update records. The one remaining block is creating brand-new custom object schemas, which requires a HubSpot platform scope (crm.schemas.custom.write) that HubSpot does not currently grant to third-party apps. The supported workflow is: create the custom object shell once in HubSpot, then let the Automation Suite extend and use it.
Local / offline querying
Gap. The Remote MCP is hosted - every query is a round-trip to mcp.hubspot.com. For a RevOps power user running portfolio-wide analysis from Claude Desktop or Cursor, that network round-trip adds up. The HubSpot CRM Search API also caps how much data any single call can return.
What fills it. The free daeda-mcp npm package syncs a narrow slice of your portal (contacts, companies, and deals only) to an encrypted SQLite database on your own machine at ~/.daeda-mcp/data/, so your AI runs read-only SQL against a local mirror with zero round-trip latency. It's strictly scoped - three standard objects, read-only, HubSpot private-app-token auth - but for "ask deep questions about contacts, companies, and deals fast", it's purpose-built.
Multi-portal orchestration
Gap. One OAuth connection to mcp.hubspot.com = one portal. Agencies running five, ten, or twenty client portals end up disconnecting and reconnecting per session, which breaks "ask the same question across every portal" workflows.
What fills it. Daeda AI's Automation Suite is built on a one-workspace-many-portals model: connect each client portal once via OAuth, then switch between them inside your AI client with set_portal(portalId=...) or pass explicit portalIds per tool call.
AI actions inside HubSpot workflows
Gap. The Remote MCP is a bridge between external AI clients and HubSpot - it doesn't let you drop AI into a HubSpot workflow step. If you want "when a new contact hits the funnel, have an AI classify their industry into a dropdown property", MCP isn't the tool.
What fills it. Daeda AI's Ask AI workflow action runs inside HubSpot workflows. You bring your own OpenRouter API key (so model choice and cost are under your control), write the prompt, and the AI's output is formatted to match the target property type.
Human-reviewed write plans instead of per-call writes
Gap. When an AI calls manage_crm_objects on the Remote MCP, the write happens immediately. Some teams' operating model is "AI drafts the whole change as one reviewable plan, a human approves the full plan in one step, then it runs" - that's not what per-call write tools give you.
What fills it. Daeda AI's Automation Suite builds writes as Write Plans via the build_plan and submit_plan MCP tools. Each plan is a code-executed sequence of changes that shows up inside Daeda AI in HubSpot for a human to read, edit, and approve before anything runs against the portal. The approved plan document is the audit record.
None of the above is "the Remote MCP is bad" - it's "here's where your decision matrix forks". If the Remote MCP covers your jobs-to-be-done, use it and skip the third-party layer.
Ready to connect HubSpot's Remote MCP Server?
HubSpot maintains the canonical setup docs and the live tool reference on developers.hubspot.com. Start there.
Need something the Remote MCP doesn't cover yet? See the gap analysis above, then try daeda-mcp (free, local, read-only sync of contacts/companies/deals) or Daeda AI's Automation Suite (managed multi-portal writes, custom object support, Write Plans).