Operations · MCP server

HubSpot MCP and the Yalc Framework

The right MCP when the team is already on HubSpot. For greenfield Yalc setups, Notion is cheaper and more flexible. For HubSpot-native teams, this is essential.

Yalc Fit Score
8/10
Auth
Private app token
Maintainer
HubSpot (official + community)
Tools
30+ ops
Last reviewed
2026-04-29
Install

Add HubSpot to Claude Code in one command

claude mcp add hubspot --env HUBSPOT_PRIVATE_APP_TOKEN=pat-xxx -- npx -y @hubspot/mcp-server

Create a Private App in your HubSpot account (Settings → Integrations → Private Apps) with the scopes you need (crm.objects.contacts.read, crm.objects.contacts.write, crm.objects.deals.read, etc.). Copy the access token (starts with `pat-`), replace the placeholder, run the command. HubSpot also documents an official MCP integration on their developer docs.

What it does

HubSpot, plainly

The HubSpot MCP exposes the HubSpot CRM API (contacts, companies, deals, engagements, tickets, lists, properties) as native Claude tool calls. Auth is a Private App token, which is simpler than OAuth for single-account use. HubSpot also documents an official MCP integration with broader endpoint coverage.

For Yalc operators on HubSpot, this MCP is the CRM layer. Where Notion's MCP works for teams that don't want HubSpot, this one is the right call when the team is already on HubSpot Sales Hub or Marketing Hub. Pipeline stages, deal probability, and engagement timeline are all queryable from natural language.

Where it slots in

Position in the GTM operating system

Intake
Enrich
Score
Route
Draft
Send
Listen

The HubSpot MCP sits at the **route** node when the team's CRM is HubSpot. Most Yalc workflows that touch the CRM (lead writeback, deal updates, engagement logging) flow through this MCP.

The MCP pairs with Notion (when used as content workspace) and Crustdata (lead source) to complete the GTM data flow: Crustdata sources, Yalc enriches, HubSpot stores, Notion documents.

The Yalc Framework

Deploying the HubSpot MCP inside Yalc workflows

Workflow position

The CRM and pipeline layer when HubSpot is the system of record. Yalc reads pipeline state, writes new contacts and deals, logs engagements, and triggers HubSpot workflows.

Prompt patterns

Copy paste prompts for Claude Code that invoke the HubSpot MCP.

Yalc, for every lead in the "Q3 outbound" Notion list with status "qualified", create a HubSpot contact with the appropriate properties, associate to the right company, and add to the "Outbound Q3" list. → Yalc reads Notion, creates HubSpot records via the MCP, manages list membership.
Yalc, summarize my HubSpot pipeline this week. List every deal in stage "Demo scheduled" or higher, surface the 3 deals at highest risk based on engagement recency. → Yalc reads pipeline via the MCP, scores via Claude, returns a digest.
Yalc, log this 30 minute discovery call as a HubSpot engagement on the contact's timeline. Include 3 paragraph notes from my voice memo transcript. → Yalc creates engagement, attaches to contact, sets call duration and outcome.

Chaining recommendations

UpstreamCrustdata or Notion (lead source) → Yalc → HubSpot MCP (writeback)
DownstreamHubSpot pipeline change → webhook → Yalc workflow trigger

Anti patterns to avoid

Don't dual-write contacts to both HubSpot and Notion. Pick one as the source of truth; mirror the other if needed but keep the canonical record in one place.
Don't write properties HubSpot doesn't validate (free-form text where dropdowns belong). Property hygiene determines pipeline reporting quality.
Don't grant the broadest scope on the Private App. Use minimal scopes per workflow (read contacts, write deals, etc.). Tighten, don't loosen.

Compatibility

Works in Claude Code (primary), Claude Desktop, and Cursor. HubSpot's API rate limits apply (per Private App: 100 req/10s typical, 250k req/day). For agency setups managing multiple HubSpot accounts, register the MCP server multiple times with different env tokens.

Operator take

Pros, cons, who it's for

Pros

  • HubSpot CRM is the most common B2B SaaS CRM. The MCP unlocks Yalc workflows on top of it.
  • Private App tokens are simpler than OAuth for solo or small team use.
  • 30+ operations cover contacts, companies, deals, engagements, lists, properties.
  • Free to use within HubSpot's API quotas.
  • Pairs cleanly with the Notion MCP for hybrid CRM + workspace patterns.

Cons

  • HubSpot's pricing escalates fast above 1k contacts. The MCP is free; the underlying CRM is not.
  • Property naming hygiene becomes critical at scale. Yalc workflows that write properties should validate against the schema first.
  • Some advanced CRM features (workflows, sequences UI) are not exposed via the MCP. Use HubSpot's UI for those.
  • Multi-account support requires multiple MCP server registrations.

Who it's for

  • Teams already on HubSpot Sales Hub or Marketing Hub
  • Agencies managing multiple HubSpot accounts (one MCP install per client)
  • Operators who want HubSpot pipeline data inside Claude Code conversations
Related

The HubSpot ecosystem inside Yalc

Alternatives

MCPs to consider instead

FAQ

Frequently asked

Do I need HubSpot's paid plan to use the MCP?

HubSpot's free CRM tier supports the API. Most reads and writes work on free. Some advanced operations (custom objects, advanced workflow triggers) require paid tiers.

How is this different from Salesforce's MCP?

HubSpot is generally easier to set up for small to mid teams. Salesforce has deeper customization and broader enterprise features. Pick based on which CRM you already use; don't switch CRMs to use a specific MCP.

Can the MCP trigger HubSpot workflows?

It can update contacts and deals, which can trigger HubSpot workflows by enrollment. The MCP doesn't directly invoke workflow runs.

What scopes does the Private App need?

For typical Yalc workflows you need crm.objects.contacts.read, crm.objects.contacts.write, crm.objects.companies.read, crm.objects.deals.read, crm.objects.deals.write, crm.lists.read, crm.lists.write. Add engagements.read and engagements.write for call/meeting logging.

How do I avoid duplicate contacts?

HubSpot deduplicates by email automatically on create. For non-email primary keys, query first via the search API, then update or create accordingly. The MCP exposes both verbs.

Can I use the MCP across multiple HubSpot portals?

Yes. Register the MCP server multiple times with different `--env HUBSPOT_PRIVATE_APP_TOKEN` values and different server names. Yalc workflows can route to the right portal by name.

Install the HubSpot MCP

Drop it into Claude Code and orchestrate from your next Yalc prompt.

claude mcp add hubspot --env HUBSPOT_PRIVATE_APP_TOKEN=pat-xxx -- npx -y @hubspot/mcp-server