Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

HubSpot

NPM · @MINDSTONE/MCP-SERVER-HUBSPOT · SCANNED AUG 3

HubSpot CRM: contacts, deals, tickets, line items, properties, marketing, files, workflows, threads

+29 this week 73 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (99 of 103), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (99 of 103), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency84
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to mindstone/mcp-servers). View diagnostics → Pass
  • License check failed: the license (FSL-1.1-MIT) isn't a recognized OSI-approved license. See how to fix → Fail
  • Actively maintained (last published 3 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability61
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 15047 tokens (~158/item across 95 items; 95 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 97% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @mindstone/mcp-server-hubspot

# add to Claude Code
claude mcp add mindstone-mcp-server-hubspot -- npx -y @mindstone/mcp-server-hubspot
# add to Codex CLI
codex mcp add mindstone-mcp-server-hubspot -- npx -y @mindstone/mcp-server-hubspot
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mindstone-mcp-server-hubspot": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@mindstone/mcp-server-hubspot"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add mindstone-mcp-server-hubspot --command npx --arg -y --arg @mindstone/mcp-server-hubspot
# ~/.hermes/config.yaml
mcp_servers:
  mindstone-mcp-server-hubspot:
    command: "npx"
    args: ["-y", "@mindstone/mcp-server-hubspot"]
// mcp.json
{
  "mcpServers": {
    "mindstone-mcp-server-hubspot": {
      "command": "npx",
      "args": [
        "-y",
        "@mindstone/mcp-server-hubspot"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +23
    • Provenance: pass → unverified security
    • Install scripts: pass → unverified security
    • Stability: 0.17 → unverified security
    • Known CVEs: unverified → partial security
    • Malware scan: unverified → pass security
    • The attested source repository moved: mindstone/mcp-servers security
    • Capabilities: pass → unverified functional
    • License: fail → unverified functional
    • Tool coverage: 100 → unverified functional
    • Maintenance: pass → unverified functional
    • Dependency health: unverified → partial functional
    • Licence: FSL-1.1-MIT functional
  • 1 Aug 26 −10
    • Known CVEs: partial → unverified security
    • Dependency health: partial → unverified functional
  • 31 Jul 26 +34
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 +1
    • Malware scan: pass → unverified security
    • Dependency health: partial → unverified functional
    • Tool coverage: unverified → 100 functional
    • Package version: 0.3.0 → 0.3.1 functional
  • 29 Jul 26 −19
    • Tool coverage: 100 → unverified functional
    • Dependency health: unverified → partial functional
    • First check of Schema quality: unverified functional
  • 27 Jul 26 44

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/@mindstone/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

Source repo:
mindstone/mcp-servers
Certificate issuer:
https://token.actions.githubusercontent.com
Certificate SAN:
https://github.com/mindstone/mcp-servers/.github/workflows/release.yml@refs/heads/main
Rekor log index:
2289933452
Predicate type:
https://slsa.dev/provenance/v1
Subject digest:
sha512:3b0dbad36ead2724f42a36a14cdc053a86e0bf652d4fc5249446b4dbedf36fc97a965befa11b746fc8195d6e5661e25c4d7e056d825b7cc7e3d0cbc2d
Discovery method:
attestation_endpoint
Dependencies 99 packages

99 packages in the resolved dependency tree · 99 deprecated · 33 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 95 exposed · ~15,047 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
activate_hubspot_workflow ~34

Activate a workflow (sets isEnabled to true).

NameTypeReqDescription
flowIdstringyesWorkflow ID to activate

No output schema declared.

No examples provided.

attach_file_to_record ~219

Upload a file and attach it to a CRM record in one step. This is a convenience tool that combines: 1. Uploading a file to HubSpot's file manager 2. Creating a note with the file attached 3. Associating the note with the specified record(s) USE THIS WHEN: - User says "attach this file to [contact/deal/company]" - Adding a document, proposal, or contract to a record - Uploading meeting notes or attachments to a contact ACCEPTS EITHER: - filePath: Local file path to upload - fileUrl: Public URL to import RETURNS: { fileId, noteId, fileName, associations }

NameTypeReqDescription
associationsobjectyesRecords to attach the file to (at least one required)
filePathstringLocal file path to upload (use this OR fileUrl)
fileUrlstringPublic URL to import (use this OR filePath)
noteBodystringOptional note text to accompany the attachment

No output schema declared.

No examples provided.

authenticate_hubspot_account ~224

Connect a new HubSpot account or re-authenticate an existing one. This tool initiates the OAuth flow to connect a HubSpot account: 1. Returns an authorization URL that the user must click 2. User signs into HubSpot and grants permissions 3. Authentication completes automatically via callback WHEN TO USE: - When list_hubspot_accounts shows no connected accounts - When an account shows status "expired" or "error" - When user explicitly asks to connect/reconnect HubSpot WHEN NOT TO USE: - If list_hubspot_accounts shows a valid, active account - Without checking list_hubspot_accounts first (wastes user time) After calling this tool: 1. Present the auth_url to the user as a clickable link 2. Tell them to click it and authorize in their browser 3. Call complete_hubspot_auth to wait for completion 4. Or if auto_complete is enabled, it will complete automatically

NameTypeReqDescription
emailstringOptional: Email hint for the account being connected (for display purposes)

No output schema declared.

No examples provided.

batch_read_hubspot_contacts ~172

Fetch multiple contacts by ID in a single request (up to 100). USE THIS TO: Hydrate contact IDs from list_hubspot_list_members into full records. WORKFLOW: 1. list_hubspot_list_members(listId) → get recordIds 2. batch_read_hubspot_contacts(ids, ['email', 'firstname', 'lastname']) → get details RETURNS: {results: [{id, properties: {email, firstname, ...}, createdAt, updatedAt}]} Common properties: email, firstname, lastname, phone, company, jobtitle, lifecyclestage

NameTypeReqDescription
idsarrayyesContact IDs to fetch (max 100)
propertiesarrayProperties to return (e.g., ["email", "firstname", "lastname"])

No output schema declared.

No examples provided.

complete_hubspot_auth ~132

Wait for HubSpot OAuth authorization to complete. Call this AFTER authenticate_hubspot_account has returned an auth_url and the user has clicked it. This tool: 1. Waits for the OAuth callback (up to 2 minutes) 2. Exchanges the authorization code for access tokens 3. Saves the account credentials 4. Returns success with the connected email IMPORTANT: Only call this if auto_complete was false in authenticate_hubspot_account response. If auto_complete was true, authentication completes automatically and you don't need this tool.

NameTypeReqDescription
emailstringEmail address of the account being authenticated

No output schema declared.

No examples provided.

create_hubspot_association ~220

Create an unlabeled association between two HubSpot objects (v3 API). For labeled associations (e.g., "Primary Contact", "Contract Signatory", "Decision Maker"), use create_hubspot_labeled_association instead. Common association types: - contact_to_company - deal_to_contact - deal_to_company - ticket_to_contact - line_item_to_deal

NameTypeReqDescription
associationTypestringyesAssociation type (e.g., contact_to_company, line_item_to_deal)
fromObjectIdstringyes
fromObjectTypestringyesSource object type. Common values: "contacts", "companies", "deals", "tickets", "leads", "products", "line_items", or any custom object name.
toObjectIdstringyes
toObjectTypestringyesTarget object type. Common values: "contacts", "companies", "deals", "tickets", "leads", "products", "line_items", or any custom object name.

No output schema declared.

No examples provided.

create_hubspot_call ~265

Log a call in HubSpot CRM. USE THIS WHEN: - User says "log a call" or "record that I called [contact]" - Documenting a phone conversation - Adding call notes after a conversation REQUIRED: hs_timestamp (Unix timestamp in milliseconds) COMMON PROPERTIES: - hs_timestamp: when call occurred (REQUIRED, Unix ms, e.g., Date.now()) - hs_call_title: brief description - hs_call_body: notes, transcript, or summary - hs_call_direction: "INBOUND" or "OUTBOUND" - hs_call_status: "COMPLETED", "BUSY", "NO_ANSWER", "FAILED" - hs_call_duration: call length in milliseconds - hubspot_owner_id: who made the call ASSOCIATIONS (link call to records): - contactIds: ["contact_id_1", "contact_id_2"] - companyIds: ["company_id"] - dealIds: ["deal_id"] WORKFLOW: 1. search_hubspot_contacts to get contact ID 2. create_hubspot_call with associations.contactIds RETURNS: Created call with id

NameTypeReqDescription
associationsobjectLink call to CRM records
propertiesobjectyesCall properties object

No output schema declared.

No examples provided.

create_hubspot_company ~241

Create a new company in HubSpot CRM. USE THIS WHEN: - User says "add company" or "create account for [organization]" - Company doesn't exist (verify with search first!) REQUIRED: name COMMON PROPERTIES: - name (company name) - domain (website domain, used for deduplication) - industry (e.g., "COMPUTER_SOFTWARE", "FINANCIAL_SERVICES") - numberofemployees, annualrevenue - phone, address, city, state, zip, country - hubspot_owner_id: assign to team member (RECOMMENDED — get IDs from list_hubspot_owners) COMMON MISTAKES: - NOT specifying hubspot_owner_id — if omitted, the company may be assigned to the HubSpot integration account used by your host, not the intended owner. Use list_hubspot_owners to find the correct owner ID. - If list_hubspot_owners returns empty (e.g., free accounts), you may proceed without hubspot_owner_id. RETURNS: Created company with id and properties

NameTypeReqDescription
propertiesobjectyesCompany properties object

No output schema declared.

No examples provided.

create_hubspot_contact ~273

Create a new contact in HubSpot CRM. USE THIS WHEN: - User says "add contact" or "create contact for [person]" - Logging a new lead or prospect - Contact doesn't exist (verify with search first!) REQUIRED: email (strongly recommended - used for deduplication) NOTE: The server automatically sets hs_object_source_detail_2 for source attribution. COMMON PROPERTIES: - email, firstname, lastname - phone, mobilephone - company, jobtitle - address, city, state, zip, country - lifecyclestage: "lead", "marketingqualifiedlead", "salesqualifiedlead", "opportunity", "customer" - hubspot_owner_id: assign to a team member (RECOMMENDED — get IDs from list_hubspot_owners) COMMON MISTAKES: - NOT specifying hubspot_owner_id — if omitted, the contact may be assigned to the HubSpot integration account used by your host, not the intended owner. Use list_hubspot_owners to find the correct owner ID. - If list_hubspot_owners returns empty (e.g., free accounts), you may proceed without hubspot_owner_id. RETURNS: Created contact with id and properties

NameTypeReqDescription
propertiesobjectyesContact properties object

No output schema declared.

No examples provided.

create_hubspot_deal ~499

Create a new deal/opportunity in HubSpot CRM. USE THIS WHEN: - User says "create deal" or "add opportunity" - Logging a new sales opportunity REQUIRED: dealname, hubspot_owner_id IMPORTANT: Use list_hubspot_pipelines first to get valid pipeline and dealstage IDs! FALLBACK FIELDS (set by the server only if not provided): - hubspot_owner_id: FALLBACK ONLY — if not provided via the top-level parameter, falls back to the HubSpot integration account used by your host. This is usually the WRONG person on team accounts. - hs_object_source_detail_2: records that this deal was created via your MCP host COMMON PROPERTIES (inside the properties object): - dealname (deal/opportunity name) - amount (deal value as string, e.g., "10000") - pipeline (pipeline ID from list_hubspot_pipelines, e.g., "default") - dealstage (stage ID from list_hubspot_pipelines, e.g., "qualifiedtobuy") - closedate (expected close date, format: "YYYY-MM-DD") WORKFLOW: 1. list_hubspot_pipelines to get pipeline/stage IDs 2. list_hubspot_owners to find the correct deal owner 3. create_hubspot_deal with valid pipeline/stage IDs AND hubspot_owner_id 4. create_hubspot_association to link to contact/company COMMON MISTAKES: - Using this tool when the user says "lead" or "create a lead" — leads are a separate HubSpot object type. Use create_hubspot_lead instead. - NOT specifying hubspot_owner_id — if omitted, the deal is silently assigned to the HubSpot integration account used by your host, NOT the intended deal owner. This causes incorrect assignment notifications and pipeline confusion. ALWAYS call list_hubspot_owners to find the correct owner ID. - Using display names instead of IDs for pipeline/dealstage — always use list_hubspot_pipelines to get valid IDs first. RETURNS: Created deal with id and properties

NameTypeReqDescription
hubspot_owner_idstringyesOwner ID for the deal (REQUIRED — get from list_hubspot_owners). If omitted, falls back to the integration account which is usually wrong for team accounts.
propertiesobjectyesDeal properties object

No output schema declared.

No examples provided.

create_hubspot_labeled_association ~246

Create a labeled association between two records using the v4 API. Unlike create_hubspot_association (v3, unlabeled), this creates associations WITH labels like "Primary Contact", "Contract Signatory", "Decision Maker", etc. WORKFLOW: 1. Call list_hubspot_association_labels to discover available labels and their typeIds 2. Call this tool with the desired associationCategory and associationTypeId associationCategory: - "HUBSPOT_DEFINED": Built-in labels (e.g., Primary Contact, typeId varies by object pair) - "USER_DEFINED": Custom labels created in HubSpot Settings → Objects → Associations

NameTypeReqDescription
associationCategorystringyesLabel category (from list_hubspot_association_labels)
associationTypeIdnumberyesLabel type ID (from list_hubspot_association_labels)
fromObjectIdstringyesSource record ID
fromObjectTypestringyesSource object type (e.g., "contacts")
toObjectIdstringyesTarget record ID
toObjectTypestringyesTarget object type (e.g., "deals")

No output schema declared.

No examples provided.

create_hubspot_lead ~294

Create a new lead in HubSpot CRM. NOTE: Requires Sales Hub Professional or Enterprise. IMPORTANT: This tool creates a HubSpot Lead object (pipeline/stage tracking in Sales Hub). DO NOT use create_hubspot_deal when the user says "lead" — deals and leads are separate HubSpot object types. REQUIRED: - properties.hs_lead_name (the lead's display name) - contactId (leads MUST be associated with a contact at creation — HubSpot API requirement) The contactId is used to create a LEAD_TO_PRIMARY_CONTACT association automatically. COMMON PROPERTIES: - hs_lead_name (required — lead display name) - hs_lead_status: "NEW", "OPEN", "IN_PROGRESS", "CONNECTED", "ATTEMPTED_TO_CONTACT" - hubspot_owner_id: assign to a team member (get IDs from list_hubspot_owners) WORKFLOW: 1. search_hubspot_contacts to find/create the contact 2. create_hubspot_lead with contactId and properties 3. Optionally create_hubspot_association to link to a company or deal RETURNS: Created lead with id and properties

NameTypeReqDescription
contactIdstringyesHubSpot contact ID to associate with this lead (required — leads must be linked to a contact)
propertiesobjectyesLead properties object (hs_lead_name required)

No output schema declared.

No examples provided.

create_hubspot_line_item ~256

Create a line item and optionally associate with a deal. Line items link products to deals for revenue tracking. This is the KEY tool for adding products to a deal. WORKFLOW: 1. search_hubspot_products to find product ID 2. search_hubspot_deals to find deal ID 3. create_hubspot_line_item with dealId association REQUIRED PROPERTIES: - name: Line item name - quantity: Number of units (string, e.g. "1") - price: Unit price (string, e.g. "1000.00") OPTIONAL: - hs_product_id: Link to product catalog - hs_discount_percentage: Discount to apply - dealId: Associate immediately with deal EXAMPLE: { "properties": { "name": "Enterprise License - Annual", "quantity": "2", "price": "10000", "hs_product_id": "123456" }, "dealId": "789" } RETURNS: Created line item with id

NameTypeReqDescription
dealIdstringDeal ID to associate (recommended)
propertiesobjectyesLine item properties (name, quantity, price required)

No output schema declared.

No examples provided.

create_hubspot_meeting ~290

Log a meeting in HubSpot CRM. USE THIS WHEN: - User says "log a meeting" or "record meeting with [contact]" - Documenting a completed meeting - Scheduling a future meeting in CRM REQUIRED: - hs_timestamp (Unix ms) - hs_meeting_start_time (Unix ms) - hs_meeting_end_time (Unix ms) COMMON PROPERTIES: - hs_timestamp: when meeting was logged (Unix ms) - hs_meeting_start_time: meeting start (Unix ms) - hs_meeting_end_time: meeting end (Unix ms) - hs_meeting_title: meeting subject - hs_meeting_body: notes, agenda, or action items - hs_meeting_outcome: "SCHEDULED", "COMPLETED", "RESCHEDULED", "NO_SHOW", "CANCELLED" - hs_meeting_location: location or video link - hubspot_owner_id: meeting organizer ASSOCIATIONS (link meeting to records): - contactIds: attendee contact IDs - companyIds: company IDs - dealIds: related deal IDs WORKFLOW: 1. search_hubspot_contacts to get attendee contact IDs 2. create_hubspot_meeting with associations RETURNS: Created meeting with id

NameTypeReqDescription
associationsobjectLink meeting to CRM records
propertiesobjectyesMeeting properties object

No output schema declared.

No examples provided.

create_hubspot_note ~185

Create a note in HubSpot and optionally associate it with records. Properties: - hs_note_body (required) - The note content (supports HTML) - hs_timestamp - When the note was created (ISO8601 or Unix ms) - hs_attachment_ids - Semicolon-separated file IDs to attach (e.g., "123" or "123;456") Get file IDs from upload_hubspot_file or import_hubspot_file_from_url. TO ATTACH FILES TO A RECORD: 1. Upload file with upload_hubspot_file → get file id 2. Create note with hs_attachment_ids: "<file_id>" and associations to the record Or use the convenience tool attach_file_to_record for a one-step workflow.

NameTypeReqDescription
associationsobjectAssociate note with records
propertiesobjectyesNote properties (hs_note_body required)

No output schema declared.

No examples provided.

create_hubspot_product ~122

Create a new product in the product catalog. USE THIS WHEN: - Adding new products to sell - Setting up product catalog REQUIRED: name RECOMMENDED: price, hs_sku, description EXAMPLE: { "properties": { "name": "Enterprise License", "price": "10000", "hs_sku": "ENT-001", "description": "Annual enterprise license" } } RETURNS: Created product with id

NameTypeReqDescription
propertiesobjectyesProduct properties (name required)

No output schema declared.

No examples provided.

create_hubspot_property ~221

Create a new custom property on a HubSpot object. VALID TYPE/FIELDTYPE COMBINATIONS: - string: text, textarea, phonenumber, html - number: number - date: date - datetime: date - enumeration: select, radio, checkbox, booleancheckbox - bool: booleancheckbox

NameTypeReqDescription
descriptionstringOptional property description
fieldTypestringyesHubSpot field type
groupNamestringyesProperty group internal name (use list_hubspot_property_groups to discover)
labelstringyesDisplay label shown in HubSpot UI
namestringyesInternal property name (lowercase, no spaces, underscores allowed)
objectTypestringyesObject type (e.g., "contacts", "companies", "deals", "tickets", "tasks", "leads", or a custom object type ID like "2-12345")
optionsarrayOptions for enumeration properties
typestringyesProperty data type

No output schema declared.

No examples provided.

create_hubspot_property_group ~105

Create a new property group for an object type

NameTypeReqDescription
displayOrdernumberDisplay order for the group (optional)
labelstringyesDisplay label for the group
namestringyesInternal group name
objectTypestringyesObject type (e.g., "contacts", "companies", "deals", "tickets", "tasks", "leads", or a custom object type ID like "2-12345")

No output schema declared.

No examples provided.

create_hubspot_task ~92

Create a new task in HubSpot. Common properties: - hs_task_subject (required) - hs_task_body - hs_timestamp (due date in ms) - hs_task_status (NOT_STARTED, IN_PROGRESS, COMPLETED) - hs_task_priority (LOW, MEDIUM, HIGH) - hubspot_owner_id

NameTypeReqDescription
propertiesobjectyesTask properties

No output schema declared.

No examples provided.

create_hubspot_ticket ~60

Create a new ticket in HubSpot. Common properties: - subject (required) - content - hs_pipeline - hs_pipeline_stage - hs_ticket_priority

NameTypeReqDescription
propertiesobjectyesTicket properties

No output schema declared.

No examples provided.

create_hubspot_workflow ~175

Create a new HubSpot workflow. ⚠️ BETA API — this uses the v4 Automation API. Endpoint behavior may change. WORKFLOW TYPES: - CONTACT_FLOW: Triggered by contact enrollment - COMPANY_FLOW: Triggered by company enrollment - DEAL_FLOW: Triggered by deal enrollment - TICKET_FLOW: Triggered by ticket enrollment EXAMPLE minimal workflow: { "name": "New Lead Notification", "type": "CONTACT_FLOW" } To add actions and enrollment criteria, use the fields from get_hubspot_workflow as a reference for the expected structure.

NameTypeReqDescription
actionsarrayOptional workflow actions graph
enrollmentCriteriaobjectOptional enrollment criteria configuration
namestringyesWorkflow name
typestringyesWorkflow type

No output schema declared.

No examples provided.

deactivate_hubspot_workflow ~35

Deactivate a workflow (sets isEnabled to false).

NameTypeReqDescription
flowIdstringyesWorkflow ID to deactivate

No output schema declared.

No examples provided.

delete_hubspot_association ~135

Remove an association between two objects

NameTypeReqDescription
associationTypestringyes
fromObjectIdstringyes
fromObjectTypestringyesSource object type. Common values: "contacts", "companies", "deals", "tickets", "leads", "products", "line_items", or any custom object name.
toObjectIdstringyes
toObjectTypestringyesTarget object type. Common values: "contacts", "companies", "deals", "tickets", "leads", "products", "line_items", or any custom object name.

No output schema declared.

No examples provided.

delete_hubspot_company ~63

Permanently delete a company from HubSpot. WARNING: This is permanent and may affect associated contacts and deals. PREREQUISITE: Get companyId from search_hubspot_companies first

NameTypeReqDescription
companyIdstringyesHubSpot company ID

No output schema declared.

No examples provided.

delete_hubspot_contact ~84

Permanently delete a contact from HubSpot. USE THIS WHEN: - User explicitly asks to delete/remove a contact - Cleaning up duplicate or test records WARNING: This is permanent. Associated engagements may be orphaned. PREREQUISITE: Get contactId from search_hubspot_contacts first

NameTypeReqDescription
contactIdstringyesHubSpot contact ID

No output schema declared.

No examples provided.

delete_hubspot_deal ~65

Permanently delete a deal from HubSpot. WARNING: This is permanent. Deal history and associations will be lost. PREREQUISITE: Get dealId from search_hubspot_deals first

NameTypeReqDescription
dealIdstringyesHubSpot deal ID

No output schema declared.

No examples provided.

delete_hubspot_file ~61

Delete a file from HubSpot's file manager. WARNING: This marks the file as deleted and makes its content inaccessible. Notes that reference this file will no longer display the attachment.

NameTypeReqDescription
fileIdstringyesHubSpot file ID to delete

No output schema declared.

No examples provided.

delete_hubspot_lead ~73

Permanently delete a lead from HubSpot. NOTE: Requires Sales Hub Professional or Enterprise. WARNING: This is permanent. The lead record will be removed. PREREQUISITE: Get leadId from search_hubspot_leads first

NameTypeReqDescription
leadIdstringyesHubSpot lead ID

No output schema declared.

No examples provided.

delete_hubspot_property ~88

Archive a property from HubSpot. This ARCHIVES the property (not a hard delete).

NameTypeReqDescription
objectTypestringyesObject type (e.g., "contacts", "companies", "deals", "tickets", "tasks", "leads", or a custom object type ID like "2-12345")
propertyNamestringyesInternal property name to archive

No output schema declared.

No examples provided.

delete_hubspot_task ~30

Delete a task from HubSpot

NameTypeReqDescription
taskIdstringyesHubSpot task ID

No output schema declared.

No examples provided.

delete_hubspot_ticket ~30

Delete a ticket from HubSpot

NameTypeReqDescription
ticketIdstringyesHubSpot ticket ID

No output schema declared.

No examples provided.

delete_hubspot_workflow ~66

Permanently delete a workflow. WARNING: This is irreversible. The workflow and its history are removed. Set confirm=true to acknowledge permanent deletion.

NameTypeReqDescription
confirmbooleanyesMust be true to confirm permanent deletion
flowIdstringyesWorkflow ID to delete

No output schema declared.

No examples provided.

enrol_in_hubspot_workflow ~129

Enrol specific records into a workflow. Uses the v4 BETA enrollment endpoint. A 403 means the connection can't access workflows (most often plan or user permissions, less commonly app authorisation) — reconnecting alone won't fix it; resolve the cause, then reconnect. A 404 may mean your portal requires the v3 enrollment endpoint.

NameTypeReqDescription
flowIdstringyesWorkflow ID to enrol into
objectIdsarrayyesRecord IDs to enrol
objectTypestringEnrollment object type path segment (default: contacts)

No output schema declared.

No examples provided.

get_contact_engagements ~178

Get all recent activity (calls, meetings) for a contact. USE THIS WHEN: - User asks "what's the history with [contact]?" or "show activity for [person]" - Preparing for a meeting and need relationship context - Need a quick activity summary RETURNS: Object with arrays for each engagement type: { calls: [{id, properties}], meetings: [{id, properties}] } This is a convenience tool that fetches multiple engagement types in one call. For more control, use search_hubspot_calls or search_hubspot_meetings directly. PREREQUISITE: Get contactId from search_hubspot_contacts first

NameTypeReqDescription
contactIdstringyesHubSpot contact ID (numeric string)
limitnumberMax results per engagement type (default 5)

No output schema declared.

No examples provided.

get_hubspot_analytics_report ~313

Get website traffic analytics report. This is the ONLY reporting API available from HubSpot. HubSpot does not have a public API for creating, listing, or managing custom reports or dashboards. For custom report needs, users must use the HubSpot UI directly. ⚠️ REQUIRES Marketing Hub Professional or Enterprise. Will return 403 error on free accounts. BREAKDOWN OPTIONS: - totals: Overall traffic metrics - sessions: Session-based metrics - sources: Traffic by source (organic, direct, etc.) - geolocation: Traffic by country/region - utm-campaigns: By UTM campaign - utm-sources: By UTM source - utm-mediums: By UTM medium - pages: By page URL TIME PERIODS: - totals: Aggregate for date range - daily: Day-by-day breakdown - weekly: Week-by-week - monthly: Month-by-month DATE FORMAT: YYYYMMDD (e.g., "20260101") RETURNS: { totals: {views, visits, leads, ...}, breakdowns: [{breakdown: "...", metrics: {...}}, ...] }

NameTypeReqDescription
breakdownBystringyesHow to segment the data
endDatestringyesEnd date YYYYMMDD
limitnumberMax breakdown rows (default 100)
startDatestringyesStart date YYYYMMDD
timePeriodstringyesTime grouping

No output schema declared.

No examples provided.

get_hubspot_associations ~197

Get all associations of a specific type for an object. Useful for pivoting between object types in either direction, e.g.: - deal -> contacts / companies / line_items - line_item -> deals (resolves a line item back to its parent deal) - ticket -> contacts / companies - contact -> deals / companies RETURNS: { results: [{ id, type }] } — array of associated record IDs.

NameTypeReqDescription
fromObjectIdstringyes
fromObjectTypestringyesSource object type. Common values: "contacts", "companies", "deals", "tickets", "leads", "products", "line_items", or any custom object name.
toObjectTypestringyesTarget object type. Common values: "contacts", "companies", "deals", "tickets", "leads", "products", "line_items", or any custom object name.

No output schema declared.

No examples provided.

get_hubspot_call ~92

Get full details for a single call by ID. USE THIS WHEN: - You have a call ID and need complete details - Retrieving call notes or recording info PREREQUISITE: Get callId from search_hubspot_calls or get_contact_engagements

NameTypeReqDescription
callIdstringyesHubSpot call ID (numeric string)
propertiesarrayProperties to return

No output schema declared.

No examples provided.

get_hubspot_company ~95

Get full details for a single company by ID. USE THIS WHEN: - You have a company ID (from search or association) - Need complete company profile for account research PREREQUISITE: Get companyId from search_hubspot_companies or get_hubspot_associations

NameTypeReqDescription
companyIdstringyesHubSpot company ID (numeric string)
propertiesarrayProperties to return

No output schema declared.

No examples provided.

get_hubspot_contact ~104

Get full details for a single contact by ID. USE THIS WHEN: - You already have a contact ID (from search or association) - Need complete contact information - Preparing a detailed contact profile RETURNS: Single contact object with all requested properties PREREQUISITE: Get contactId from search_hubspot_contacts first

NameTypeReqDescription
contactIdstringyesHubSpot contact ID (numeric string)
propertiesarrayProperties to return

No output schema declared.

No examples provided.

get_hubspot_deal ~96

Get full details for a single deal by ID. USE THIS WHEN: - You have a deal ID (from search or association) - Need complete deal information including custom properties PREREQUISITE: Get dealId from search_hubspot_deals or get_hubspot_associations

NameTypeReqDescription
dealIdstringyesHubSpot deal ID (numeric string)
propertiesarrayProperties to return

No output schema declared.

No examples provided.

get_hubspot_email_statistics ~119

Get aggregated email performance statistics. RETURNS: { aggregations: {sent, delivered, opened, clicked, bounced, unsubscribed}, emails: [{emailId, counters: {...}}] } Use this to analyze email campaign performance across multiple emails.

NameTypeReqDescription
emailIdsarraySpecific email IDs (optional)
endTimestampstringISO8601 end
startTimestampstringISO8601 start (e.g., "2026-01-01T00:00:00Z")

No output schema declared.

No examples provided.

get_hubspot_file ~164

Get details of a file in HubSpot's file manager by ID. USE THIS WHEN: - Need to check file details (name, size, URL, access level) - Verifying a file exists before attaching to a record - Getting a viewable URL for a private file (use getSignedUrl: true) RETURNS: { id, name, path, url, size, type, access, createdAt, updatedAt } For private files, the url will 404. Set getSignedUrl to true to get a temporary viewable URL.

NameTypeReqDescription
fileIdstringyesHubSpot file ID (from upload or import)
getSignedUrlbooleanIf true, also return a signed (viewable) URL for private files

No output schema declared.

No examples provided.

get_hubspot_form ~50

Get detailed information about a specific form. RETURNS: Form with id, name, configuration, fieldGroups (form fields)

NameTypeReqDescription
formIdstringyesHubSpot form ID or GUID

No output schema declared.

No examples provided.

get_hubspot_form_submissions ~127

Get submissions for a specific form. USE THIS WHEN: - Reviewing lead capture performance - Checking recent form submissions - Analyzing lead sources RETURNS: Array of submissions with: - submittedAt: Submission timestamp - values: Field name/value pairs - pageUrl: Where form was submitted NOTE: Uses formGuid (same as formId for most forms)

NameTypeReqDescription
afterstringPagination cursor
formIdstringyesForm ID/GUID
limitnumberMax submissions (default 20, max 50)

No output schema declared.

No examples provided.

get_hubspot_kb_article ~233

Get full details for a single HubSpot Knowledge Base article by ID via the GraphQL API (read-only). USE THIS WHEN: - You already have an articleId and need full content/details - Need the complete article body, metadata, or URL RETURNS: - Full KB article object with id, title, body, slug, URL, language, and metadata WORKFLOW: 1. Get articleId from list_hubspot_kb_articles or search_hubspot_kb_articles 2. Call get_hubspot_kb_article for complete details SCOPES REQUIRED: cms.knowledge_base.articles.read and collector.graphql_query.execute (a 403 usually means the account's plan or the signed-in user's permissions don't include the knowledge base — reconnecting alone won't add it) COMMON MISTAKES: - Using a knowledgeBaseId/contentGroupId instead of an articleId - Assuming search result snippets are full article content — use this tool for the full body Requires Service Hub Professional or Enterprise.

NameTypeReqDescription
articleIdstringyesHubSpot KB article ID

No output schema declared.

No examples provided.

get_hubspot_lead ~118

Get full details for a single lead by ID. NOTE: Requires Sales Hub Professional or Enterprise. USE THIS WHEN: - You already have a lead ID (from search or association) - Need complete lead information - Reviewing a specific lead's properties and status RETURNS: Single lead object with all requested properties PREREQUISITE: Get leadId from search_hubspot_leads first

NameTypeReqDescription
leadIdstringyesHubSpot lead ID (numeric string)
propertiesarrayProperties to return

No output schema declared.

No examples provided.

get_hubspot_line_item ~158

Get a specific line item by ID. To resolve a line item back to its parent deal in the same call, pass `associations: ['deals']`. The response then includes an `associations` object with `{ deals: { results: [{ id, type }] } }`. RETURNS: Line item object. Includes `associations` only when the `associations` parameter is provided.

NameTypeReqDescription
associationsarrayOptional associated object types to include in the response (e.g. ["deals"], ["deals", "products"]). Returns associated record IDs alongside the line item.
lineItemIdstringyesHubSpot line item ID
propertiesarrayProperties to return

No output schema declared.

No examples provided.

get_hubspot_list ~110

Get details of a specific list/segment by ID. RETURNS: {listId, name, processingType, objectTypeId, filterBranch, size, createdAt, updatedAt} For DYNAMIC lists, filterBranch contains the criteria that determine membership. For MANUAL/SNAPSHOT lists, filterBranch is usually empty. To get the contacts IN this list, use list_hubspot_list_members.

NameTypeReqDescription
listIdstringyesThe list ID (from list_hubspot_lists)

No output schema declared.

No examples provided.

get_hubspot_marketing_email ~107

Get details of a specific marketing email by ID. USE THIS WHEN: - User asks "show me the follow-up email" or "what's in email X" - Need email content, subject, template path, or configuration RETURNS: Full email object including: - id, name, subject, previewText - state, type, templatePath - content/body (if available) - stats summary

NameTypeReqDescription
emailIdstringyesMarketing email ID

No output schema declared.

No examples provided.

get_hubspot_meeting ~95

Get full details for a single meeting by ID. USE THIS WHEN: - You have a meeting ID and need complete details - Retrieving meeting notes or attendee info PREREQUISITE: Get meetingId from search_hubspot_meetings or get_contact_engagements

NameTypeReqDescription
meetingIdstringyesHubSpot meeting ID (numeric string)
propertiesarrayProperties to return

No output schema declared.

No examples provided.