AI Ops
Integration Patterns

How to Install HubSpot MCP: Claude, ChatGPT, and Cursor Setup Guide

Tikita Tolley Tikita Tolley
How to Install HubSpot MCP: Claude, ChatGPT, and Cursor Setup Guide

If you’ve been reading about HubSpot MCP and want to actually get it running, there are two mainstream paths. Both take about 10 minutes and neither requires engineering.

Option A (recommended): Connect HubSpot’s first-party Remote MCP Server at mcp.hubspot.com. Free, supports read and write across the standard CRM, OAuth 2.1 + PKCE. This is the path for most RevOps teams.

Option B: Install the free open-source daeda-mcp npm package. Local-first, read-only, scoped to contacts/companies/deals only. This is the path if you want sub-second queries on those three objects with zero network round-trips.

Pick one (or run both side by side - they can coexist in the same MCP client config).

Option A - HubSpot’s Remote MCP Server

This is HubSpot’s first-party option, live at https://mcp.hubspot.com and generally available since 2026-04-13.

What you’ll need

  • Admin access to a HubSpot portal where you can create an MCP Auth App.
  • An MCP-compatible AI client with OAuth 2.1 + PKCE support - Claude Desktop, Cursor, VS Code with an MCP extension, MCP Inspector, or the HubSpot Connector for ChatGPT (different install flow - managed inside ChatGPT itself).

Step 1 - Create an MCP Auth App in HubSpot

In your HubSpot account, go to Development > MCP Auth Apps and create a new app. Give it a name (Claude via MCP is fine), and HubSpot generates OAuth 2.1 credentials automatically. Copy the Client ID and Client Secret - you’ll paste them into your MCP client in the next step.

Step 2 - Point your MCP client at mcp.hubspot.com

The exact config lives in your AI client’s MCP settings. In Claude Desktop, that’s the OAuth-capable MCP server entry. Use:

  • Endpoint: https://mcp.hubspot.com
  • Auth: OAuth 2.1 with PKCE
  • Client ID / Client Secret: the values from Step 1

Most modern MCP clients support PKCE out of the box. MCP Inspector is HubSpot’s reference test client and handles PKCE automatically if you want to verify first.

Step 3 - Complete the OAuth authorization flow

Your client redirects you to HubSpot for authorization. Pick the object scopes you actually want the AI to touch - contacts read, deals read+write, tickets read, etc. This is how HubSpot enforces per-object read/write permissions, so be deliberate. (You can always re-authorize later to add or remove scopes.)

Step 4 - Call get_user_details first

At the start of your first session, have the AI call get_user_details. It returns the authoritative list of objects and tools the connected user can access - this is better than guessing from your scope grants, because it reflects both HubSpot’s permissions and any account-level restrictions.

Step 5 - Ask your first question

Try something that exercises both reads and writes:

How many open deals in the Enterprise pipeline haven’t had an activity in the last 30 days?

Then, once you trust the reads:

Create a follow-up task for me on the top 3 of those, due next Tuesday.

The AI will use search_crm_objects for the first query and manage_crm_objects for the task creation. Both respect your existing HubSpot user permissions.

Troubleshooting Option A

  • REQUIRES_REAUTHORIZATION status? That’s what HubSpot shows for accounts that had the beta installed before a new object type was added at GA. Disconnect and reconnect the app in HubSpot settings to pick up the new scopes.
  • Sensitive Data account? If your HubSpot account has the Sensitive Data setting turned on, engagement objects (calls/emails/meetings/notes/tasks) are blocked from MCP access. CRM object access is unaffected - this is an MCP-specific restriction, not a general API restriction.
  • Want the full reference? HubSpot’s setup guide and tool reference are the canonical sources.

Option B - daeda-mcp (free, local, contacts/companies/deals only)

daeda-mcp takes a completely different architectural approach. Instead of round-tripping to HubSpot every query, it syncs a slice of your portal to an encrypted SQLite database on your own machine and runs strict read-only SQL against that local mirror.

It’s narrower than the Remote MCP Server - only contacts, companies, and deals - but for those three objects, queries return in milliseconds with no network round-trip.

What you’ll need

  • A HubSpot portal (any tier) where you can create a private app.
  • Node.js 18+ on your machine. If you don’t have it, grab it from nodejs.org.
  • An MCP-compatible AI client - Claude Desktop, Cursor, VS Code with an MCP extension, or any of the clients listed on the daeda-mcp docs.

Step 1 - Create a HubSpot private app token

Inside HubSpot:

  1. Go to Settings > Integrations > Private Apps.
  2. Click Create a private app.
  3. Name it something like Daeda MCP.
  4. Under Scopes, grant exactly these four scopes:
    • crm.export
    • crm.objects.contacts.read
    • crm.objects.companies.read
    • crm.objects.deals.read
  5. Save, then copy the access token (it starts with pat-).

These four scopes are the complete set daeda-mcp needs - nothing more, nothing less. If you’re tempted to grant write scopes, remember daeda-mcp is strictly read-only by design.

Step 2 - Add daeda-mcp to your AI client’s MCP config

There’s no install step - daeda-mcp runs via npx. You just add an entry to your AI client’s MCP config file.

Claude Desktop (macOS) - edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "daeda": {
      "command": "npx",
      "args": ["-y", "daeda-mcp"],
      "env": {
        "HUBSPOT_ACCESS_TOKEN": "pat-na1-xxxxxxxx"
      }
    }
  }
}

Windows config path: %APPDATA%\Claude\claude_desktop_config.json.

Cursor, VS Code, and other MCP clients use the same config pattern - the same JSON entry goes into their MCP config files.

Step 3 - Restart your AI client and let the sync run

Quit and reopen Claude Desktop (or your other MCP client). On first launch, daeda-mcp:

  1. Asks HubSpot’s Export API for full bulk exports of contacts, companies, and deals.
  2. Pulls the ~1,000 most recent deals via the Search API for an immediate quick seed (2 - 5 minutes), so you can start querying right away.
  3. Streams the export CSVs into an encrypted SQLite database at ~/.daeda-mcp/data/ (macOS/Linux) or %APPDATA%\daeda-mcp\data\ (Windows), encrypted with your HubSpot token as the key.
  4. Finishes the full sync in the background - 5 - 10 minutes for a 10k-record portal, up to 5 hours for a 1M+ record portal.

You can track sync progress with the db_status tool from inside your AI client.

Step 4 - Ask your first question

Once the quick seed finishes, try:

How many deals are in closed-won this quarter, grouped by owner?

Which contacts at healthcare companies have a deal over $50k?

Show me every company with 3+ open deals, ordered by most recent activity.

daeda-mcp’s get_raw_sql tool runs the query against the local SQLite database and returns up to 1,000 rows per result in well under a second.

Troubleshooting Option B

  • Claude doesn’t see the tool? Restart Claude Desktop completely (Cmd-Q, then reopen). MCP config is only loaded at startup.
  • Token rejected? Regenerate the private app token in HubSpot and confirm the four scopes above are granted. The token is also used to encrypt the local database, so if you rotate the token the database will be re-initialised on next run.
  • First sync fails partway through? Check your HubSpot API rate limits - very large portals occasionally hit them. Re-run the sync; daeda-mcp resumes where it left off.

Which option should you pick?

Quick decision tree:

  • Need writes, or objects beyond contacts/companies/deals? Use Option A (Remote MCP Server).
  • Need sub-second local queries on contacts, companies, and deals, with no network round-trips? Use Option B (daeda-mcp).
  • Want both? Run them side-by-side in the same MCP client config. They don’t conflict.
  • Need custom object schemas, multi-portal orchestration, or human-approved Write Plans? Neither free option covers that - look at Daeda AI’s Automation Suite, which is a different product with a different architecture (managed database service, OAuth with deep optional scopes, human-approved Write Plans you review and confirm in one step).

What’s next

Once you’re connected, the HubSpot MCP pillar guide has the full explainer - the 12 tools the Remote MCP exposes, the exact limits and caveats, and the honest decision matrix for when HubSpot’s first-party option isn’t quite enough on its own.

Frequently asked questions

Start with HubSpot's Remote MCP Server (Option A). It's first-party, supports full read and write across the standard CRM, and went generally available on 2026-04-13. Only reach for daeda-mcp (Option B) if you specifically need sub-second local queries on contacts, companies, and deals, or if your environment can't use OAuth for some reason.