MCP
CRM

HubSpot

Read and write contacts, deals, companies, tickets, and engagements in HubSpot CRM.

Requires Growth plan or above.

Connect HubSpot

Create a Private App in HubSpot under Settings → Integrations → Private Apps, copy the access token, and paste it on the HubSpot card at /dashboard/connections.

Example

Search for contacts at a specific company domain.

app/api/find-contacts/route.ts
export async function POST() {
const res = await fetch('https://leash.build/api/integrations/hubspot/hubspot-search-objects', {
method: 'POST',
headers: {
'x-api-key': process.env.LEASH_API_KEY!,
'content-type': 'application/json',
},
body: JSON.stringify({
objectType: 'contacts',
query: 'acme.com',
limit: 10,
}),
})
const { data } = await res.json()
// data =>
// {
// total: 23,
// results: [
// {
// id: '12345',
// properties: {
// email: 'alex@acme.com',
// firstname: 'Alex',
// lastname: 'Chen',
// company: 'Acme'
// },
// createdAt: '2026-03-02T14:11:00.000Z'
// },
// ...
// ]
// }
return Response.json(data)
}

Available tools

  • hubspot-search-objects — search CRM objects with filters/query.
  • hubspot-list-objects — list CRM objects.
  • hubspot-batch-create-objects / batch-read-objects / batch-update-objects — batch CRUD on records.
  • hubspot-batch-create-associations / list-associations / get-association-definitions — link contacts/deals/etc.
  • hubspot-create-engagement / get-engagement / update-engagement — notes, tasks, calls, meetings.
  • hubspot-list-properties / create-property / update-property / get-property — custom property management.
  • hubspot-list-workflows / get-workflow — read automation workflows.
  • hubspot-get-schemas — object type schemas.
  • hubspot-get-link — direct UI link to a record.
  • hubspot-get-user-details — current API-key user.

Common gotchas

  • Private apps grant scopes individually. If a tool returns 403 MISSING_SCOPES, edit the app and re-grant — no re-auth needed.
  • Search results cap at 10,000. Use date filters to slice large datasets; the Search API will silently truncate beyond that.
  • Batch endpoints max at 100 records. Chunk client-side; the MCP server does not auto-split.

See the HubSpot API reference for the underlying provider docs.

Other languages: see SDK overview.