Connect Hubspot Mcp logo

Connect Hubspot Mcp

Community
TomGranot
connect-hubspot-mcp

Connect Claude to HubSpot's official remote MCP server for conversational CRM lookups, spot-checks, and small confirmed edits. Covers the MCP connector setup with OAuth and PKCE, what the server's tools can and cannot do, and when to use MCP versus the Agent CLI versus this repo's scripts.

Overview

PublisherTomGranot
Repositoryhubspot-admin-skills
Skill nameconnect-hubspot-mcp
Stars
79
Forks
18
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by TomGranot on GitHub. Read the source before you install it.

Installation

Install the Connect Hubspot Mcp AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/TomGranot/hubspot-admin-skills/tree/main/skills/connect-hubspot-mcp
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/TomGranot/hubspot-admin-skills.git /tmp/hubspot-admin-skills
mkdir -p .claude/skills
cp -r /tmp/hubspot-admin-skills/skills/connect-hubspot-mcp .claude/skills/connect-hubspot-mcp
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Connect Hubspot Mcp in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Connect Hubspot Mcp on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Connect Hubspot Mcp is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Connect Claude to HubSpot via MCP

Set up HubSpot's official remote MCP server so Claude can read and write CRM records conversationally: look up a contact, inspect a company's deals, spot-check the results of a cleanup, without writing a script for every question.

Three Ways to Reach a Portal

This toolkit can talk to HubSpot three ways. They overlap less than they appear to.

Remote MCP server (this skill)Agent CLI (/connect-hubspot-agent-cli)REST scripts (every scripted skill)
StatusGenerally availableBetav3/v4 paths, see /audit-api-usage
AuthOAuth as you, via an MCP connectorOAuth as you, or a service keyService key in .env
Best forLookups, spot-checks, judgment calls, small editsBulk and admin work driven from the terminalRepeatable runs with a CSV audit trail and an abort threshold
Bulk reads200 records per pagePaginated, JSONL outPaginated
Bulk writesA few records at a time, each confirmedJSONL in, dry run firstBatches of 100
Delete or archiveNot availableYes, guardedYes, guarded
WorkflowsNot availableList, get, create, update, deleteCreate, export, restore
PropertiesCreate onlyCreate, update, archiveCreate
Runs headless (CI, scheduled)NoWith a service keyYes

Rule of thumb: MCP to look, scripts to change at scale. Reach for the Agent CLI when a job is bulk or administrative and no scripted skill covers it.

Task shapeUse
"Show me 5 contacts the cleanup touched"MCP
"Why is this company in Tier 2?"MCP
"Which open deals has nobody touched this quarter? Show me a few."MCP
"Delete 4,000 no-email contacts with an audit trail"Scripts (/delete-no-email-contacts)
"Create 10 segmentation lists"Scripts (/build-smart-lists)
"Export every workflow to JSON"Scripts (/workflows-as-code)
"Archive these 60 unused properties"Agent CLI

What the Server Exposes

HubSpot's remote MCP server lives at https://mcp.hubspot.com and speaks streamable HTTP. It currently offers 32 tools. The ones that matter for CRM administration:

ToolWhat it doesLimit
get_user_detailsYour user, account, and per-object read/write accessRun this first to verify the connection
discover_hubspot_schemaObject types and whether each is readable or writable
search_crm_objectsSearch and filter records5 filter groups of 6 filters; 200 results per page
get_crm_objectsFetch records by ID100 IDs per call
query_crm_dataSQL-style aggregate queriesNo joins, subqueries, aliases, or association traversal
search_properties, get_propertiesProperty definitions and enum values5 keywords per search
search_ownersOwners by name, email, or ID100 results
manage_crm_objectsCreate or update records and activitiesShows a change summary and waits for confirmation
manage_custom_propertiesCreate custom propertiesCreate only
manage_custom_pipelinesCreate and manage pipelinesCan edit the default pipeline
manage_segmentCreate segments; add or remove records in static segmentsRequires confirmation
get_marketing_email_analyticsSend statistics, health diagnostics, per-contact engagement
tool_guidanceUsage instructions for the other toolsCall before query_crm_data

The rest cover campaigns, conversations, buyer intent, landing and website pages, blog posts, and AEO.

Readable objects include contacts, companies, deals, tickets, leads, custom objects, segments, activities, and owners. Revenue objects (invoices, orders, line items, products, quotes, subscriptions) are read-only and in beta.

What it cannot do, and what to use instead:

CannotUse instead
Delete or archive anythingThe scripted skill for that cleanup, or the Agent CLI
Read or change workflows/workflows-as-code, /cleanup-workflows, or the Agent CLI
Update or archive a property/cleanup-properties or the Agent CLI
Page through a large result set efficientlyA script. Use query_crm_data when a count or aggregate is all you need
Read activities or conversations when Sensitive Data is enabledThe REST API, which is unaffected

Prerequisites

  • A HubSpot user who can create an MCP connector, or an admin who will create one for you
  • Claude Code, or the Claude app on a Pro, Max, Team, or Enterprise plan
  • Nothing else. This is separate from the service key the scripts use: MCP connects as you, with your HubSpot permissions

Execution Pattern

Stage 1: Plan

  1. Decide who is connecting. Access is user-scoped, so connect with a user whose permissions match what you want Claude to be able to do. A read-only user gives a read-only connection.
  2. Check with a Super Admin whether the portal restricts who can connect apps. MCP connections may need approval.

Stage 2: Execute

Option A: the HubSpot connector in the Claude app (no terminal). In Claude's connector settings, add the HubSpot connector and complete the OAuth flow in the browser. HubSpot's guide: knowledge.hubspot.com, "Set up and use the HubSpot connector for Claude". It runs on the same remote server, and HubSpot caps its bulk create and update at 10 records at a time.

Option B: Claude Code. The server does not support dynamic client registration, so a bare claude mcp add cannot authenticate. Register a connector first:

  1. In HubSpot, go to Development > MCP Connectors and click Create MCP connector.

  2. Give it a name and a redirect URL. Claude Code listens on localhost during OAuth, so pick a fixed port and register http://localhost:8765/callback. The redirect URL must match exactly; if authentication fails with a redirect mismatch, copy the URL from the error into the connector.

  3. Open the connector and copy its client ID and client secret.

  4. Add the server, using the same port:

    bash
    claude mcp add --transport http --client-id YOUR_CLIENT_ID --client-secret --callback-port 8765 hubspot https://mcp.hubspot.com

    Claude Code prompts for the secret. Do not paste it into the command line or commit it.

  5. In Claude Code, run /mcp, choose hubspot, and authenticate. Pick the account, review the permissions, and authorize.

You do not choose scopes. They are derived from the tools the server offers and the permissions you grant. When HubSpot adds tools that need new scopes, reconnect to grant them.

HubSpot has not published Claude Code setup steps for the remote server; the steps above follow from the server's OAuth metadata and Claude Code's claude mcp add options. If they stop working, the connector in the Claude app (Option A) is the supported path.

Stage 3: After

Ask Claude for a harmless read and confirm it round-trips:

"Using the HubSpot MCP tools, call get_user_details, then fetch one contact and tell me its lifecycle stage."

get_user_details also reports which objects the connection can write to. If that list is longer than you intended, reconnect as a user with narrower permissions.

If the call fails, check that the OAuth flow completed, that the redirect URL and port match the connector, and that the portal has not blocked the connection.

Rollback

  • Remove the server from Claude Code: claude mcp remove hubspot.
  • Revoke the connection in HubSpot under Settings > Integrations > Connected Apps, and delete the MCP connector under Development > MCP Connectors. Deleting the connector invalidates its tokens.

Technical Gotchas

  1. MCP access is user-scoped. Claude can do exactly what your HubSpot user can do. There is no separate permission layer to fall back on.
  2. No deletes is a feature, not a gap to work around. The server cannot archive records, so a conversational session cannot wipe a segment by accident. Destructive work goes through skills that export a CSV first and stop at a threshold.
  3. Two credentials, two purposes. The service key in HUBSPOT_ACCESS_TOKEN powers the scripts; the MCP connection powers conversational access. Rotating one does not affect the other, and a service key cannot authenticate to the MCP server.
  4. Counts and lists are different tools. For "how many", use query_crm_data. For "show me", use search_crm_objects. Paging 200 at a time to count a large segment is slow and burns context.
  5. Sensitive Data blocks activities. With Sensitive Data enabled on the account, calls, emails, meetings, notes, tasks, and conversations are unavailable through MCP.
  6. Not for headless runs. Interactive OAuth is unavailable in scheduled or CI runs. Scripts with a service key run anywhere; treat MCP as the interactive layer.
  7. @hubspot/mcp-server on npm is a different thing. That local package targets app developers and has not been released since mid-2025. Do not build CRM administration on it.
  8. HubSpot ships its own Claude Code plugins. HubSpot/hubspot-mcp-plugins bundles this same server for sales-rep and partner workflows. They complement this toolkit; they do not cover hygiene or administration.

Frequently asked questions

What does the Connect Hubspot Mcp AI skill do?

Connect Claude to HubSpot's official remote MCP server for conversational CRM lookups, spot-checks, and small confirmed edits. Covers the MCP connector setup with OAuth and PKCE, what the server's tools can and cannot do, and when to use MCP versus the Agent CLI versus this repo's scripts.

Why use Connect Hubspot Mcp on TypingMind?

Because you install it once and use it with any model. Connect Hubspot Mcp is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Connect Hubspot Mcp in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/TomGranot/hubspot-admin-skills/tree/main/skills/connect-hubspot-mcp. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Connect Hubspot Mcp?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Connect Hubspot Mcp?

As many as you like. As long as a model supports skills, you can use Connect Hubspot Mcp with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Connect Hubspot Mcp AI skill free?

Yes. It is published on GitHub by TomGranot under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇