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.
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.
| Thing | What it reads | Who it is for | Status |
|---|---|---|---|
| HubSpot MCP server (remote) | CRM objects, engagements, marketing assets, conversations | Anyone connecting an AI client to a portal | Public beta September 2025, GA 13 April 2026 |
| Developer MCP server (local) | Your project files, app config, the Developer Platform surface | Developers building HubSpot apps | GA February 2026, needs Developer Platform v2025.2 |
| @hubspot/mcp-server npm package | Nothing on its own, it is a client-side package pointing at the remote server | Developers wiring the server into a local client | Still 0.4.0, published June 2025 |
| Claude connector directory entry | Same surface as the remote server | Anyone on a paid Claude plan | Live, 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.
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
| 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 |
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
- Deals
- Tickets
- Invoices
- Quotes
- Lists
Engagements
- Calls
- E-Mails
- Meetings
- Notizen
- 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.
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.
| Suche | Object type searched | Ergebnis |
|---|---|---|
| marlstock | COMPANY | 0 |
| pendlewick | COMPANY | 0 |
| note about a renewal timeline | NOTE | 1 hit, full body returned |
| deal where procurement approved pricing | DEAL | 0 |
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.
| Suche | Object type searched | Ergebnis |
|---|---|---|
| pendlewick | DEAL | 1 hit, deal # , stage contractsent |
| procurement | DEAL | 1 hit, same record |
| marlstock | NOTE | 2 hits, ids # and ## |
| Bob Jones | CONTACT | 1 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 und 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.
- 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.
- 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.
- 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.
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.
| Verbindung | Typ | Direction | Requires |
|---|---|---|---|
| HubSpot to Claude | MCP-Server | Read and write | Free on any HubSpot plan, admin connects first |
| tl;dv to HubSpot | Native connector | tl;dv writes into HubSpot | tl;dv Pro or above, works with a free HubSpot account |
| tl;dv to Claude | MCP-Server | Nur lesen | tl;dv Pro or above, hosted, OAuth |
tl;dv Into 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
Is the HubSpot MCP server free?
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.
Do you need to be a HubSpot admin to connect it?
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.
Will it find things my reps wrote in call notes?
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.
Can it change my CRM data by mistake?
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.
If I connect this, whose records can a rep see?
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.
Can you connect tl;dv and HubSpot to Claude at the same time?
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.


