ooligo
mcp-server

MCP server for HubSpot customer success workflows

Difficulty
advanced
Setup time
75min
For
csm · revops
RevOps

Stack

An MCP server tuned for customer success teams using HubSpot. Exposes contacts, companies, tickets, and deals as Claude tools, with CS-specific helpers for renewal date queries, ticket aging, and health-score reads. The CSM asks “what is at risk this month,” Claude pulls the actual data.

What you’ll need

  • HubSpot Sales Hub Pro or higher with Service Hub for tickets
  • A HubSpot Private App token with read scopes for contacts, companies, deals, and tickets
  • Claude Desktop or Claude Code as the MCP client
  • A health-score field convention agreed with your CS leadership

Setup

  1. Run the server. Reference implementation is Python, FastAPI-style. Clone, install, set HUBSPOT_TOKEN and HUBSPOT_PORTAL_ID. The server starts on stdio for local Claude Desktop or HTTP for hosted clients.
  2. Configure the helper tools. Three CS-specific helpers ship by default: at_risk_renewals, aging_tickets, accounts_needing_qbr. Each maps to a parametrized HubSpot query. Edit the query templates to match your fields.
  3. Add to MCP client config. Point Claude Desktop at the server. On startup, you should see roughly twelve tools registered.
  4. Set the health-score field. Most teams use a custom number property. Pass its internal name to the server so the helpers can filter on it.
  5. Run “show me at-risk renewals in the next ninety days.” Sanity-check the output against the same query in HubSpot’s UI.

How it works

The server is read-mostly by design. CS workflows are about knowing what is happening, not bulk-mutating records. The default tool surface includes object reads, association traversals (contact to company to deals to tickets), and the three CS-specific helpers.

Writes are limited to ticket creation and notes. No deal stage changes, no contact merges, no property updates on companies. The principle: Claude can ask, summarize, and document, but the CSM still drives the actual customer-facing changes.

Watch-outs

  • Health-score field drift. Teams change the formula every quarter. The server caches nothing; queries hit the live property. Update the helper docs when the formula changes so prompts stay accurate.
  • Ticket volume. Aging-tickets queries can return thousands of rows on busy portals. The helper paginates and caps at five hundred by default. Tune for your volume.
  • Cross-object joins. HubSpot’s association API is slower than direct queries. The server batches associations but a deal-to-tickets traversal across a thousand deals takes minutes, not seconds.
  • Permissions. Private App tokens bypass user-level permissions. Anyone with access to the MCP client sees all data. Document this clearly with your security team.

Stack

  • HubSpot — CRM and ticketing source of truth
  • MCP server — read layer, helper tools, light write surface
  • Claude — natural-language interface for the CS team