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.
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.
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.
Position in the GTM operating system
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.
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.
Chaining recommendations
Anti patterns to avoid
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.
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
The HubSpot ecosystem inside Yalc
MCPs to consider instead
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