HubSpot MCP

112 tools. 68 can modify or destroy data without limits.

17 destructive tools with no built-in limits. Policy required.

Last updated:

68 can modify or destroy data
44 read-only
112 tools total

Community server · catalogue entry verified 11/06/2026

How to control HubSpot MCP ↓

Read (44) Write / Execute (51) Destructive / Financial (17)
Critical Risk

68 of HubSpot MCP's 112 tools can modify, destroy, or commit something on every call — and an agent calls them with no built-in limits.

PolicyLayer is an MCP gateway — it sits between your AI agents and HubSpot MCP, and nothing reaches the server without passing your rules. These are the rules we recommend:

Deny destructive operations
{
  "calls_archive": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Blocked by default. Requires approval."
      }
    ]
  }
}

Destructive tools should never be available to autonomous agents without human approval.

Rate limit write operations
{
  "calls_batch_create": {
    "limits": [
      {
        "counter": "calls_batch_create_per_hour",
        "window": "hour",
        "max": 30,
        "scope": "grant"
      }
    ]
  }
}

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "calls_batch_read": {
    "limits": [
      {
        "counter": "calls_batch_read_per_minute",
        "window": "minute",
        "max": 60,
        "scope": "grant"
      }
    ]
  }
}

Controls API costs and prevents retry loops from exhausting upstream rate limits.

  1. Create a free account and register HubSpot MCP — nothing to install.
  2. Add these rules — paste them, or build them visually. Tune the limits to your setup.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
ENFORCE POLICY ON HUBSPOT →

Free to start. No card required.

WRITE 51 tools
Write calls_batch_create Create multiple call records in a single request Write calls_batch_update Update multiple call records in a single request Write calls_create Create a new call record Write calls_update Update an existing call record Write communications_subscribe_contact Subscribe a contact to all email communications Write communications_unsubscribe_contact Unsubscribe a contact from all email communications Write communications_update_preferences Update communication preferences for a contact Write communications_update_subscription_status Update subscription status for multiple contacts Write crm_batch_create_associations Create multiple associations in a single request Write crm_batch_create_companies Create multiple companies in a single request Write crm_batch_create_contacts Create multiple contacts in a single request Write crm_batch_create_leads Create multiple leads in a single request Write crm_batch_create_objects Create multiple CRM objects in a single request Write crm_batch_update_companies Update multiple companies in a single request Write crm_batch_update_contacts Update multiple contacts in a single request Write crm_batch_update_leads Update multiple leads in a single request Write crm_batch_update_objects Update multiple CRM objects in a single request Write crm_create_association Create an association between two objects Write crm_create_company Create a new company with validated properties Write crm_create_company_property Create a new company property Write crm_create_contact Create a new contact with validated properties Write crm_create_contact_property Create a new contact property Write crm_create_lead Create a new lead with validated properties Write crm_create_lead_property Create a new lead property Write crm_create_object Create a new CRM object Write crm_update_company Update an existing company with validated properties Write crm_update_contact Update an existing contact with validated properties Write crm_update_lead Update an existing lead with validated properties Write crm_update_object Update an existing CRM object Write emails_batch_create Create multiple email records in a single request Write emails_batch_update Update multiple email records in a single request Write emails_create Create a new email record Write emails_update Update an existing email record Write engagement_details_create Create a new engagement with details Write engagement_details_update Update an existing engagement Write meetings_batch_create Create multiple meetings in a single request Write meetings_batch_update Update multiple meetings in a single request Write meetings_create Create a new meeting Write meetings_update Update an existing meeting Write notes_batch_create Create multiple notes in a single request Write notes_batch_update Update multiple notes in a single request Write notes_create Create a new note Write notes_update Update an existing note Write products_batch_create Create a batch of products Write products_batch_update Update a batch of products by internal ID, or unique values specified by the Write products_create Create a product with the given properties and return a copy of the object, including the ID. Write products_update Perform a partial update of an Object identified by ID. Read-only and non-existent properties will result in a Write tasks_batch_create Create multiple tasks in a single request Write tasks_batch_update Update multiple tasks in a single request Write tasks_create Create a new task Write tasks_update Update an existing task
READ 44 tools
Read calls_batch_read Read multiple call records in a single request Read calls_get Get details of a specific call Read calls_list List all calls with optional filtering Read calls_search Search calls with specific filters Read communications_get_preferences Get communication preferences for a contact Read communications_get_subscription_definitions Get all subscription definitions for the portal Read communications_get_subscription_status Get subscription status for multiple contacts Read crm_batch_read_objects Create multiple CRM objects in a single request Read crm_get_associations Get all associations of a specific type between objects Read crm_get_company Get a single company by ID with specific properties and associations Read crm_get_company_properties Get all properties for companies Read crm_get_contact Get a single contact by ID with specific properties and associations Read crm_get_contact_properties Get all properties for contacts Read crm_get_lead Get a single lead by ID with specific properties and associations Read crm_get_lead_properties Get all properties for leads Read crm_get_object Get a single CRM object by ID Read crm_list_association_types List all available association types for a given object type pair Read crm_list_objects List CRM objects of a specific type with optional filtering and pagination Read crm_search_companies Search companies with company-specific filters Read crm_search_contacts Search contacts with contact-specific filters Read crm_search_leads Search leads with lead-specific filters Read crm_search_objects Search CRM objects using filters Read emails_batch_read Read multiple email records in a single request Read emails_get Get details of a specific email Read emails_list List all emails with optional filtering Read emails_search Search emails with specific filters Read engagement_details_get Get details of a specific engagement Read engagement_details_get_associated Get all engagements associated with an object Read engagement_details_list List all engagements with optional filtering Read meetings_get Get details of a specific meeting Read meetings_list List all meetings with optional filtering Read meetings_search Search meetings with specific filters Read notes_batch_read Read multiple notes in a single request Read notes_get Get details of a specific note Read notes_list List all notes with optional filtering Read notes_search Search notes with specific filters Read products_batch_read Read a batch of products by internal ID, or unique property values. Retrieve records by the Read products_list Read a page of products. Control what is returned via the Read products_read Read an Object identified by ID Read products_search Search products Read tasks_batch_read Read multiple tasks in a single request Read tasks_get Get details of a specific task Read tasks_list List all tasks with optional filtering Read tasks_search Search tasks with specific filters
Can an AI agent delete data through the HubSpot MCP server? +

Yes. The HubSpot MCP server exposes 17 destructive tools including calls_archive, calls_batch_archive, crm_archive_association. These permanently remove resources with no undo. PolicyLayer blocks destructive tools by default so they never reach the upstream server.

How do I prevent bulk modifications through HubSpot MCP? +

The HubSpot MCP server has 51 write tools including calls_batch_create, calls_batch_update, calls_create. Set a rate limit in your policy -- for example, 10 calls per hour prevents an agent from making more than 10 modifications per hour. PolicyLayer enforces this at the gateway, before calls reach HubSpot MCP.

How many tools does the HubSpot MCP server expose? +

112 tools across 2 categories: Read, Write. 44 are read-only. 68 can modify, create, or delete data.

How do I enforce a policy on HubSpot MCP? +

Register the HubSpot MCP server in PolicyLayer, apply the suggested rules above (adjust the limits to your use case), and point your AI client at the PolicyLayer proxy URL instead of the server directly. Your agents keep the same tools; PolicyLayer evaluates every call against policy before it executes. Nothing to install, live in minutes.

Enforce policy on every HubSpot MCP tool call.

Deterministic rules across all 112 HubSpot MCP tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Free to start. No card required.

112 HubSpot MCP tools catalogued and risk-classified — across an index of 42,500+ MCP servers.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.