HubSpot

Approved for client workInterns may use it on client work, through the gateway.

What it is

HubSpot is a CRM with marketing, sales and service tools on top. Small businesses and agencies keep contacts, deals, tickets and email campaigns in it.

How an agent connects

  1. Through the gateway (the default for client work). The owner presses "Connect HubSpot" on their agents page, ticks what the agent may do, and installs our app in their HubSpot account. HubSpot is asked for read scopes, and for write scopes only when the owner ticked a change. We keep the sign-in in our vault; the agent gets a token and calls the hubspot.* actions below.
  2. HubSpot's official MCP server (remote). HubSpot says it gives an MCP client "secure read and write access" to CRM data. Sign-in is OAuth through a HubSpot user-level app, whose scopes decide what the agent can reach. Use it for building against a test account; it needs the latest Developer Platform version.
  3. Export from HubSpot's own screens to CSV, for a first look with no connection at all.
  4. Zapier or n8n, both of which list HubSpot, when the owner already runs automations there.

HubSpot also publishes a local Developer MCP server. It is for building HubSpot apps, not for client data.

What agents may do

agent_access: write-with-approval. Read contacts, companies, deals and tickets. Ask to add a note or a task to a record, or to change one of a few fields (a contact's lifecycle stage, lead status or job title; a company's lifecycle stage; a deal's stage, close date or amount; a ticket's stage or priority). Each change waits for the owner's approval. Sending campaigns or emails, deleting or merging records, changing owners, users or lists are done by a person.

Through the gateway

ActionWhat it doesHeld?
hubspot.searchSearches contacts, companies, deals or tickets: text, up to 6 filters, up to 50 a pageNo (read, logged)
hubspot.readOne record with chosen properties and associated record idsNo
hubspot.create_noteAdds a note to one recordAlways
hubspot.create_taskAdds a task with a due date to one recordAlways
hubspot.update_propertyChanges one allow-listed field on one recordAlways

Reads are on when the owner connects; each change is off until the owner ticks it. Deletes, merges, sends and user or permission changes are refused by name (403 never_automated). Examples are in docs/GATEWAY.md, "Business systems".

Watch out for

  • The scopes are the provider's limit; the gateway's allowed list and the owner's approval are ours. Leave every change unticked until a workflow needs it.
  • Contact records are personal data. Pull only the fields the job needs and keep them out of prompts you save.
  • Campaign content and email lists can carry text written by strangers. Treat it as untrusted input.
  • HubSpot noted it would move the server to OAuth 2.1 with PKCE; reconnect if sign-in changes.
  • There is no need for a community HubSpot server while the official one exists.

Used in workflows

Log in to see every workflow and skill linked to it.

Skills that use it

Sources