tl;dr: HubSpot MCP Server

  • What it is: HubSpot runs two MCP servers. A remote one that connects AI clients to your CRM, and a local CLI one for building on the Developer Platform.
  • Cost: No fee, no credits, no add-on. Verified on a free portal. Usage counts against your normal portal API limits.
  • Read or write: Both. Writes work, and CRM writes run through a blocking confirmation that names the object, the property, the current value and the new value before anything changes.
  • The finding: There’s no fixed tool list. Two accounts returned twenty-one tools each, and not the same twenty-one. A third test on Claude revealed twenty-eight. 
  • The gotcha: Search reaches note bodies and deal descriptions. What breaks is object type selection, and a wrong object type returns zero results that look identical to the data not existing.
  • Tested: 1 September 2026, free portal created that morning, connected through the Claude connector directory.
Índice de contenidos

HubSpot MCP is free to connect and can update your CRM straight from your AI platforms of choice. 

The HubSpot MCP server is a connection that lets an AI client like Claude or ChatGPT read and update your HubSpot CRM directly, using the Model Context Protocol as the common language between them. No exports, no copy and paste, no separate app. You authorize it once and then ask questions in plain English.

So I set up a free portal, seeded it with fake data on fake domains, connected it to Claude, listed every tool it had, and planted a few invented words to see whether it could find them.

One thing surprised me in particular. HubSpot’s documentation contradicts itself on what the server can write to, and there doesn’t appear to be a fixed list of tools, at least in my testing

I ran the tests at the start of September 2026, and they were correct at publishing. This stuff moves fast, so verify anything you plan to build on.

Four Things Are Called the HubSpot MCP Server in 2026

There are four separate items at HubSpot that carry the name MCP. Two are servers, and two are the access points to the same remote server.

ThingWhat it readsWho it is forEstado
HubSpot MCP server (remote)CRM objects, engagements, marketing assets, conversationsAnyone connecting an AI client to a portalPublic beta September 2025, GA 13 April 2026
Developer MCP server (local)Your project files, app config, the Developer Platform surfaceDevelopers building HubSpot appsGA February 2026, needs Developer Platform v2025.2
@hubspot/mcp-server npm packageNothing on its own, it is a client-side package pointing at the remote serverDevelopers wiring the server into a local clientStill 0.4.0, published June 2025
Claude connector directory entrySame surface as the remote serverAnyone on a paid Claude planLive, and absent from HubSpot’s own setup page

Search results mix all four together, which is how people end up installing an npm package when two clicks would have done it.

If you want the standard itself before going further, the comprehensive guide to Model Context Protocol covers how these servers work, and the best MCP servers roundup covers what else is worth connecting.

HubSpot MCP Server Tools: What the Live Surface Exposes

When I connected HubSpot’s MCP to Claude, the first thing I did was ask what tools it had. Tools are the individual things a connector can do. There is no fixed HubSpot MCP tool list, so any article giving you a number is describing one person’s setup on one day. Part of the answer is the consent screen, which is the biggest one I’ve seen on a connector. Connecting asks for five required scopes and then offers another sixty-four optional ones, each with a checkbox. Claude’s own connector settings say it plainly too: you only see the tools your organization has given you access to.
The 21 HubSpot MCP tools registered in a Claude session, listed by name
Every tool the connector registered in one session.

But scopes don’t explain the third session. As I was publishing this article, I thought I would check one more time and was surprised that Claude pulled in additional tools this time. New tools that turned up on 3 September are AEO reporting. The server is being actively added to while people are using

HubSpot 28 tools
There are now 28 tools available as of the 3rd September
Session Present Absent
1 September
21 tools
search_conversations, get_conversation_channel_metadata, manage_marketing_email, get_marketing_email_analytics manage_blog_post, manage_landing_page, get_content_analytics_report, import-claude-design-from-url
2 September
21 tools
manage_blog_post, manage_landing_page, get_content_analytics_report, import-claude-design-from-url search_conversations, get_conversation_channel_metadata, manage_marketing_email, get_marketing_email_analytics
3 September
28 tools
Everything from both earlier sessions, plus get_aeo_metrics, manage_aeo_prompts, manage_aeo_recommendations Nothing
There is no fixed HubSpot MCP tool list, so any article giving you a number is describing one person’s setup rather than the server. The consent screen is probably where the answer sits, and it’s the biggest one I’ve seen on a connector. Connecting asks for five required scopes and then offers another sixty-four optional ones, each with a checkbox. Claude’s own connector settings say it plainly too: you only see the tools your organization has given you access to.

One quick thing I did notice. “Write landing page content and modules” is offered as a scope you can grant, sitting directly beneath the read-only version of the same thing. HubSpot’s developer documentation lists landing pages as read-only.

So the surface you get is shaped by what was granted on the way in, not by a list HubSpot publishes. I didn’t go back and toggle a single scope to prove it, so treat that as the likely reason rather than a confirmed one. Either way, the place to check what you have is your own connector settings, where the tools are grouped, and each one has its own permission control.

Is the HubSpot MCP Server Read-Only?

No. The server can change your CRM records. But it stops and asks first, every time.

HubSpot’s documentation describes the access two ways.

Read and Write

CRM objects

  • Contacts
  • Companies
  • Ofertas
  • Tickets
  • Invoices
  • Quotes
  • Lists

Engagements

  • Calls
  • Correos electrónicos
  • Reuniones
  • Notas
  • Tasks

Read-Only

  • Organizational context
  • Campaigns and campaign metrics
  • Landing pages
  • Website pages
  • Blog posts

The sensitive data answer, further down the same page, describes the server as having read-only access to standard records, including contacts, companies, deals, and tickets.

Same objects, two answers. Both were live on 1 September 2026. 

The only way to settle it was to try. I asked for a contact’s job title to be updated without naming a contact. The model read the contact list, worked out which records were, and then presented me with the choice to update. So, read and write (with guardrails).

What impressed me more was the stopping. Before it wrote anything, it laid out the current details and the new value, and then waited for confirmation.

That confirmation isn’t the model being polite, but it’s a failsafe so you don’t change anything by accident. It’s a parameter in the tool itself, called confirmationStatus.

Worth knowing that it can be overridden for the rest of a session if you ask, and Claude offered to do that. So the protection holds as long as nobody takes the shortcut.

One more thing on the consent screen that I haven’t seen mentioned anywhere. There’s a notice saying AI connectors can’t delete data, that granting delete permissions won’t enable deletion, and that HubSpot will let you know if that ever changes. If you’re the person being asked to sign this off, that’s the most reassuring sentence in the whole flow.

HubSpot connector tool permissions in Claude, showing tools grouped as interactive and read-only
Claude sorts the tools into interactive and read-only, with a permission control on each.

What HubSpot MCP Search Can and Cannot Find in Your CRM

The HubSpot MCP server can read almost anything in your system, including the notes that your reps leave on records.

To test this myself, I followed a similar structure to the test I did on the Fathom MCP article by planting specific keywords into the seeded, generated data I had created.

I invented two words and put them into deeper fields. “Marlstock” and “Pendlewick“. There is no record of these words in the record names or email addresses, so to find them, it would need to read the notes.

First time round, neither word came back.

BuscarObject type searchedResultado
marlstockCOMPANY0
pendlewickCOMPANY0
note about a renewal timelineNOTE1 hit, full body returned
deal where procurement approved pricingDEAL0

I’d asked it to search companies. The words weren’t in any company record, so of course it found nothing. What it didn’t do was tell me that.

Second time I named the object type. Notes for one, deals for the other.

BuscarObject type searchedResultado
pendlewickDEAL1 hit, deal # , stage contractsent
procurementDEAL1 hit, same record
marlstockNOTE2 hits, ids # and ##
Bob JonesCONTACT1 hit, id #

Nothing changed between those two runs except which object type got searched. Same portal, same data, same words.

To check the search was genuinely filtering and not just handing back whatever was nearby, I threw a nonsense string at it, zxqvth, against deals. Zero. 

A search against the wrong object type returns zero, and zero looks exactly the same as data that isn’t there.

So somebody asking Claude to find something in HubSpot can get a “didn’t find it” answer with no suggestion that it went looking in the wrong place. 

The default searchable properties for a deal are dealname, pipeline, dealstage, description y dealtype. Free-text search only covers the defaults for whichever object type gets named, so the reach you get is set by that one choice.

The fix is simple enough. Name the object type in your prompt. Ask for notes or deals rather than asking HubSpot.

How To Connect the HubSpot MCP Server: Three Routes, Ranked

An admin connects the account once, then anyone else takes about two minutes. The fastest route is the Claude connector directory, and HubSpot’s setup page does not mention it.

  1. The connector directory. Find HubSpot in your client’s directory, authorize, done. This is what I used. Two clicks and an OAuth screen, no app to create, no scopes to pick. It requires a paid Claude plan, and it is absent from HubSpot’s own instructions entirely.
  2. Custom connector by URL. If your client supports remote MCP servers but has no HubSpot entry, point it at HubSpot’s remote endpoint and authorize through OAuth. Slightly more setup, same result. The custom connector walkthrough covers the general shape of this, and connecting MCP servers to Claude covers the Claude side.
  3. The documented route. HubSpot’s page describes creating a user-level application on the new Developer Platform, giving it read scopes for the CRM objects you want, and connecting to the remote server with those OAuth credentials.
ubSpot connector not yet connected in Claude, showing the Connect button
Route one, step one.

It very solid if you need scoped credentials for governance reasons.

What the HubSpot MCP Server Costs

Nothing about the HubSpot MCP server cost me anything. I connected a free-tier HubSpot portal created that day, ran reads and a write, and hit no paywall, no upgrade prompt and no credit meter. I was on Claude Max, which has its own connector limits, but nothing on the HubSpot side charged me at any point. Usage counts against the portal’s normal API limits, and that’s the only meter involved.

So why isn’t everybody just running everything on free? It has to do with access. Your portal has to be on the new Developer Platform. An admin has to connect first, because HubSpot’s page states that the account admin needs to connect before other users in the account can. And on the documented route, a user-level app with the right read scopes has to exist before any agent sees anything at all.

What the HubSpot MCP Server Cannot See: Your Meetings

The HubSpot MCP server reaches everything HubSpot holds that you have access to. It does not reach what was actually said on the call.

This isn’t a critique of the connector. It’s first-party, audit-logged, free to connect, and the write gate is solid.

There are three connections in play if you want the conversation sitting alongside the CRM data.

ConexiónTipoDirectionRequires
HubSpot to ClaudeServidor MCPRead and writeFree on any HubSpot plan, admin connects first
tl;dv to HubSpotNative connectortl;dv writes into HubSpottl;dv Pro or above, works with a free HubSpot account
tl;dv to ClaudeServidor MCPSolo lecturatl;dv Pro or above, hosted, OAuth

tl;dv Into HubSpot

tldv hubspot intergration
tl;dv integration with HubSpot

tl;dv pushes meeting notes into HubSpot through a native connector, not an MCP. Summary, transcript link, and action items land on the contact or deal record automatically, with no model in the loop and no approval step. It needs tl;dv Pro or above on one side and works with a free HubSpot account on the other. If all you want is the call showing up on the record, setting up the HubSpot connector takes a few minutes, and the tl;dv HubSpot page has the CRM-side detail.

tl;dv Into Claude Through MCP

The tl;dv MCP server is hosted, OAuth-authenticated, and read-only, available from Pro upward. Nothing an agent does through it can alter a recording or a transcript, which is the right record of what people said.

Both Servers In One Session

With both connectors enabled, a client reads what was said in the meeting and reads and writes what is recorded in the CRM, with the confirmation gate sitting between them. This means that in a project you could interrogate your AI to find out about a deal and have all the information available for pulling in one place. Query the HubSpot CRM system to see where a deal stage is at, what the notes are on the account, and the deal value; then, in the same chat, query tl;dv to find out what was said in the last meeting. It allows a lot more scope and flexibility, plus those little bits of nuance that make sales journeys smoother and easier to navigate.

Connect HubSpot’s MCP, and your AI can talk to you about what’s in the CRM. Connect tl;dv as well, and it can talk to you about what was actually said.

FAQs About HubSpot MCP

I was not charged for anything using the free portal, and there are no credits or add-ons associated with it. Usage counts against your portal’s normal API limits. Connecting through a client’s connector directory may require a paid plan on the client side for other tools.

The account admin has to connect first, after which other users in the account can connect. On the documented Developer Platform route, a user-level app with the appropriate read scopes must also exist first.

Yes. I planted invented words in a note body and a deal description, and both were retrieved. There is a note here, though; reach depends on naming the right object type, because free-text search only covers the default searchable properties of the object type given. Ask for notes or ask for deals, rather than just asking generally. 

Every CRM write action pauses first and shows the record, the property, the current value, and the new one, and waits for approval. The gate is in the tool schema rather than in the model’s manners. It can be waived for a session on request, so the protection depends on nobody choosing the convenient option. Deletion is off entirely: HubSpot’s consent screen states that AI connectors will not delete data even if delete permissions are granted.

HubSpot states the connector was built so users only see the CRM data they are permitted to see, giving the example of a rep seeing only the deals they have permission to view. Access follows existing HubSpot permissions rather than opening the portal.

Yes, both publish remote MCP servers and a client can hold both connectors at once. The two servers share no identifiers, so matching a meeting to a CRM record is done by the model rather than by a key.