integrations tools hubspot-crm

    HubSpot Email & CRM MCP for your AI agent

    Cogny's HubSpot Email & CRM integration exposes 15 tools (11 read, 4 write) to an AI agent over MCP. The same tools are available on every plan, from your own AI client or inside the Cogny app.

    • 11readonly reads data.
    • 4writecreates or changes something.
    • 0destructivedeletes, removes or replaces something.

    Over MCP your own AI client asks before it runs a write. To take a tool away from your agent, block it in Settings → Integrations. Plans, approvals and limits

    set it up.

    Add Cogny to your AI client once, then connect HubSpot Email & CRM in Cogny. Every HubSpot Email & CRM tool below appears in the client.

    • Claude CodeRun claude mcp add --transport http cogny https://app.cogny.com/mcp, then authorise in the browser.
    • Claude.aiSettings → Connectors → Add custom connector, URL https://app.cogny.com/mcp, then log in and pick your workspace.
    • ChatGPTSettings → Apps → Advanced settings → Developer mode → Create app, URL https://app.cogny.com/mcp, authentication OAuth.
    • CursorIn Cogny, Settings → Data & Integrations → Connect AI Clients shows the block to paste into .mcp.json, with an API key.
    • CodexRun codex mcp add cogny --url https://app.cogny.com/mcp.

    Full setup, and how to undo it

    HubSpot Email & CRM connects with a HubSpot service key (Development → Keys → Service keys, created by a Super Admin or a user with Developer Tools access). It is a separate connection from the main HubSpot connection, which runs on HubSpot's own MCP server and reads CRM records only. Each tool needs only its own scope; a call without it fails and names the scope HubSpot asked for.

    ToolsScopes
    Contacts, companies, dealscrm.objects.contacts.read, crm.objects.companies.read, crm.objects.deals.read
    Ticketstickets
    Leadscrm.objects.leads.read
    Custom objectscrm.objects.custom.read, crm.schemas.custom.read
    Ownerscrm.objects.owners.read
    list_propertiescrm.schemas.<object>.read for that object, e.g. crm.schemas.contacts.read
    Marketing emails and their statisticsmarketing.email.read or content
    list_email_eventscontent
    create_contact, update_contactcrm.objects.contacts.write
    update_deal_stagecrm.objects.deals.write
    create_notecrm.objects.contacts.write; a refused call names any other scope HubSpot asks for

    Search pages are up to 200 records, list pages up to 100, email events up to 1,000. HubSpot allows 100 requests per 10 seconds on Free and Starter accounts and 190 on Professional and Enterprise, plus a daily cap per account; search is limited to 5 requests per second.

    Known gaps

    • Forms and form submissions are in HubSpot Forms, a separate connection. One service key with both scope sets can back both.
    • A search query stops at 10,000 results. Narrow by date, or use list_records, which pages through everything without filters.
    • No email can be sent, scheduled or edited, and no list or workflow can be changed. The writes are: create and update a contact, move a deal to a stage, log a note. Nothing is deleted.
    • Email event email_campaign_id is not the marketing email's id. Match it against a marketing email's email_campaign_ids.
    • Custom objects need HubSpot Enterprise; on other plans list_custom_object_schemas is empty.
    • Long text is cut at 2,000 characters (note, call and email bodies) to keep answers small.

    what each tool does.

    Read 11 · only reads data

    • search_recordsReadSearch contacts, companies, deals, tickets, leads, activities or custom object records with filters.
    • list_recordsReadList records of one object type page by page, with no 10,000-result ceiling.
    • get_recordReadGet one CRM record with its properties and the ids of associated records.
    • list_propertiesReadList the properties (fields) of a HubSpot object, with their types and picklist values.
    • list_pipelinesReadList the pipelines and their stages for deals, tickets, leads or a custom object.
    • list_ownersReadList the account's record owners (users), to turn hubspot_owner_id into a name and team.
    • list_custom_object_schemasReadList the account's custom objects with their ids, labels and properties.
    • list_marketing_emailsReadList marketing emails with their send performance: sent, delivered, opens, clicks, bounces and unsubscribes.
    • get_marketing_emailReadGet one marketing email's details and performance counters.
    • get_marketing_email_statisticsReadGet marketing email totals for a date window, or a time series by day, week or month.
    • list_email_eventsReadList email events — sends, deliveries, opens, clicks, bounces, spam reports, unsubscribes — per recipient.

    Write 4 · creates or changes something

    • create_contactWriteCreate a contact in HubSpot.
    • update_contactWriteUpdate properties on an existing HubSpot contact.
    • update_deal_stageWriteMove a deal to another pipeline stage, such as closed won or closed lost.
    • create_noteWriteLog a note on HubSpot contacts, companies, deals or tickets.

    Exact input schemas come from tools/list once HubSpot Email & CRM is connected; the free plan is enough to check. Missing something? Your agent can ask for it with request_feature.