Skip to content
API Reference
HubSpot logo

HubSpot

CRM

HubSpot's official MCP server for CRM management, campaign analytics, and customer data operations.

Provides full HubSpot CRM access including searching, creating, and updating CRM objects (contacts, deals, companies, tickets, etc.), campaign analytics and revenue attribution, property discovery, owner/user management, team and organization details, and feedback submission. Supports association management between objects and advanced filtering.

Add HubSpot to your zone and connect it to your MCP client.

Step 1 - Start the install in Keycard Console

Section titled “Step 1 - Start the install in Keycard Console”
  1. In your zone’s Keycard Console, go to Applications -> Add Application -> Explore MCP Servers.

  2. Search for HubSpot and click Install.

  3. The install dialog shows a Redirect URI. Copy it - you’ll paste it into HubSpot in Step 2. Leave this Keycard tab open.

HubSpot’s MCP server uses a public app created from a HubSpot developer account (not from a regular HubSpot business account, and not a private app - those are scoped to a single hub and use a fixed access token instead of OAuth). The public app receives a Client ID and Client Secret that Keycard uses to OAuth into any hub a user installs the app on.

If you do not already have one, go to developers.hubspot.com and click Create App Developer Account. This is separate from any HubSpot CRM account you already own - apps live under the developer account.

  1. Sign in to your developer account, then click Apps -> Create app -> Public app.

  2. On the App info tab, fill in:

    • Public app name: something memorable like Keycard - <zone-name>
    • Logo, support contact, description: optional, fill in if you plan to publish.
  3. Open the Auth tab.

  4. Under Redirect URLs, paste the redirect URI from the Keycard install dialog. HubSpot matches exactly, including trailing slash.

  5. Under Scopes, click Add new scope and add at minimum:

    • crm.objects.contacts.read and crm.objects.contacts.write
    • crm.objects.companies.read and crm.objects.companies.write
    • crm.objects.deals.read and crm.objects.deals.write
    • tickets (read/write)
    • crm.schemas.contacts.read, crm.schemas.companies.read, crm.schemas.deals.read (property discovery)
    • oauth (returned automatically; required for the flow)
  6. Click Create app.

  1. After creation, open the Auth tab.

  2. Copy the Client ID and Client Secret shown at the top.

The public app needs to be installed on at least one HubSpot CRM account before any MCP tool will return data. Keycard triggers this install during the OAuth handshake - the user is prompted to pick which hub to install on. Only users whose role grants every scope you configured will be allowed to install.

Step 3 - Finish the install in Keycard Console

Section titled “Step 3 - Finish the install in Keycard Console”
  1. Switch back to the Keycard install dialog you left open in Step 1.

  2. Paste the Client ID and Client Secret from Step 2.

  3. Click Install. HubSpot appears on the Applications page with a Keycard MCP Gateway URL.

On the Applications page, click Add to Coding Agent next to HubSpot and pick how you want to install:

  • Cursor - opens a deeplink that hands the MCP config straight to Cursor. Click Install inside Cursor to finish.
  • Claude Code - opens a dialog with a claude mcp add command. Pick a scope (User, Project, or Local), then copy and run the command in your terminal.
  • Install manually - reveals the Server Name and Server URL to paste into any other MCP-compatible client.

Once connected, HubSpot’s tools are available to the agent, scoped to whoever signs in to your zone.

What HubSpot can do once installed.

HubSpot provides 14 tools:

get_campaign_analytics
Get campaign analytics (metrics or revenue attribution) for one or more campaigns
get_campaign_asset_metrics
Get metrics for specific CRM objects associated with a campaign
get_campaign_asset_types
List the asset type names available as campaign assets
get_campaign_contacts_by_type
Get paginated contact IDs for a campaign filtered by attribution type
get_crm_objects
Fetch multiple CRM objects of the same type in a single request
get_organization_details
List organization-wide teams, job titles, seats, and account information
get_properties
Fetch property definitions including data types and enumeration values
get_user_details
Returns current user, team, and hub info; CRM/marketing object and tool availability
manage_crm_objects
Create or update CRM objects with properties and associations
search_crm_objects
Search and retrieve CRM records based on filters and criteria
search_owners
List and search for owners who can be assigned to CRM records
search_properties
Find the most relevant CRM property definitions using keyword-based search
submit_feedback
Collect and submit feedback to HubSpot on dissatisfaction or user request
tool_guidance
Retrieve guidance and usage instructions for a set of HubSpot tools

What to do once HubSpot is installed.

Now do this

  • Confirm the gateway works by asking your AI client to call one of the HubSpot tools above.

Recommended

  • Decide who can use it - write access policies scoped to the HubSpot resource so only the right users and agents reach the tools.
  • Watch the calls - every tool call lands in your audit log with user identity, resource, and policy decision.