HubSpot
NPM · @MINDSTONE/MCP-SERVER-HUBSPOT · SCANNED AUG 3
HubSpot CRM: contacts, deals, tickets, line items, properties, marketing, files, workflows, threads
Available components
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
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
claude mcp add mindstone-mcp-server-hubspot -- npx -y @mindstone/mcp-server-hubspot
codex mcp add mindstone-mcp-server-hubspot -- npx -y @mindstone/mcp-server-hubspot
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mindstone-mcp-server-hubspot": {
"type": "local",
"command": [
"npx",
"-y",
"@mindstone/mcp-server-hubspot"
],
"enabled": true
}
}
} openclaw mcp add mindstone-mcp-server-hubspot --command npx --arg -y --arg @mindstone/mcp-server-hubspot
mcp_servers:
mindstone-mcp-server-hubspot:
command: "npx"
args: ["-y", "@mindstone/mcp-server-hubspot"] {
"mcpServers": {
"mindstone-mcp-server-hubspot": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-hubspot"
]
}
}
} 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.
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.
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.
activate_hubspot_workflow ~34
Activate a workflow (sets isEnabled to true).
| Name | Type | Req | Description |
|---|---|---|---|
| flowId | string | yes | Workflow 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 }
| Name | Type | Req | Description |
|---|---|---|---|
| associations | object | yes | Records to attach the file to (at least one required) |
| filePath | string | — | Local file path to upload (use this OR fileUrl) |
| fileUrl | string | — | Public URL to import (use this OR filePath) |
| noteBody | string | — | Optional 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
| Name | Type | Req | Description |
|---|---|---|---|
| string | — | Optional: 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
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | yes | Contact IDs to fetch (max 100) |
| properties | array | — | Properties 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.
| Name | Type | Req | Description |
|---|---|---|---|
| string | — | Email 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
| Name | Type | Req | Description |
|---|---|---|---|
| associationType | string | yes | Association type (e.g., contact_to_company, line_item_to_deal) |
| fromObjectId | string | yes | — |
| fromObjectType | string | yes | Source object type. Common values: "contacts", "companies", "deals", "tickets", "leads", "products", "line_items", or any custom object name. |
| toObjectId | string | yes | — |
| toObjectType | string | yes | Target 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
| Name | Type | Req | Description |
|---|---|---|---|
| associations | object | — | Link call to CRM records |
| properties | object | yes | Call 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
| Name | Type | Req | Description |
|---|---|---|---|
| properties | object | yes | Company 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
| Name | Type | Req | Description |
|---|---|---|---|
| properties | object | yes | Contact 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
| Name | Type | Req | Description |
|---|---|---|---|
| hubspot_owner_id | string | yes | Owner 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. |
| properties | object | yes | Deal 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
| Name | Type | Req | Description |
|---|---|---|---|
| associationCategory | string | yes | Label category (from list_hubspot_association_labels) |
| associationTypeId | number | yes | Label type ID (from list_hubspot_association_labels) |
| fromObjectId | string | yes | Source record ID |
| fromObjectType | string | yes | Source object type (e.g., "contacts") |
| toObjectId | string | yes | Target record ID |
| toObjectType | string | yes | Target 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
| Name | Type | Req | Description |
|---|---|---|---|
| contactId | string | yes | HubSpot contact ID to associate with this lead (required — leads must be linked to a contact) |
| properties | object | yes | Lead 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
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | — | Deal ID to associate (recommended) |
| properties | object | yes | Line 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
| Name | Type | Req | Description |
|---|---|---|---|
| associations | object | — | Link meeting to CRM records |
| properties | object | yes | Meeting 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.
| Name | Type | Req | Description |
|---|---|---|---|
| associations | object | — | Associate note with records |
| properties | object | yes | Note 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
| Name | Type | Req | Description |
|---|---|---|---|
| properties | object | yes | Product 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
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | Optional property description |
| fieldType | string | yes | HubSpot field type |
| groupName | string | yes | Property group internal name (use list_hubspot_property_groups to discover) |
| label | string | yes | Display label shown in HubSpot UI |
| name | string | yes | Internal property name (lowercase, no spaces, underscores allowed) |
| objectType | string | yes | Object type (e.g., "contacts", "companies", "deals", "tickets", "tasks", "leads", or a custom object type ID like "2-12345") |
| options | array | — | Options for enumeration properties |
| type | string | yes | Property data type |
No output schema declared.
No examples provided.
create_hubspot_property_group ~105
Create a new property group for an object type
| Name | Type | Req | Description |
|---|---|---|---|
| displayOrder | number | — | Display order for the group (optional) |
| label | string | yes | Display label for the group |
| name | string | yes | Internal group name |
| objectType | string | yes | Object 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
| Name | Type | Req | Description |
|---|---|---|---|
| properties | object | yes | Task 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
| Name | Type | Req | Description |
|---|---|---|---|
| properties | object | yes | Ticket 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.
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | — | Optional workflow actions graph |
| enrollmentCriteria | object | — | Optional enrollment criteria configuration |
| name | string | yes | Workflow name |
| type | string | yes | Workflow type |
No output schema declared.
No examples provided.
deactivate_hubspot_workflow ~35
Deactivate a workflow (sets isEnabled to false).
| Name | Type | Req | Description |
|---|---|---|---|
| flowId | string | yes | Workflow ID to deactivate |
No output schema declared.
No examples provided.
delete_hubspot_association ~135
Remove an association between two objects
| Name | Type | Req | Description |
|---|---|---|---|
| associationType | string | yes | — |
| fromObjectId | string | yes | — |
| fromObjectType | string | yes | Source object type. Common values: "contacts", "companies", "deals", "tickets", "leads", "products", "line_items", or any custom object name. |
| toObjectId | string | yes | — |
| toObjectType | string | yes | Target 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
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | HubSpot 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
| Name | Type | Req | Description |
|---|---|---|---|
| contactId | string | yes | HubSpot 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
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | HubSpot 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileId | string | yes | HubSpot 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
| Name | Type | Req | Description |
|---|---|---|---|
| leadId | string | yes | HubSpot 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).
| Name | Type | Req | Description |
|---|---|---|---|
| objectType | string | yes | Object type (e.g., "contacts", "companies", "deals", "tickets", "tasks", "leads", or a custom object type ID like "2-12345") |
| propertyName | string | yes | Internal property name to archive |
No output schema declared.
No examples provided.
delete_hubspot_task ~30
Delete a task from HubSpot
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | HubSpot task ID |
No output schema declared.
No examples provided.
delete_hubspot_ticket ~30
Delete a ticket from HubSpot
| Name | Type | Req | Description |
|---|---|---|---|
| ticketId | string | yes | HubSpot 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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true to confirm permanent deletion |
| flowId | string | yes | Workflow 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.
| Name | Type | Req | Description |
|---|---|---|---|
| flowId | string | yes | Workflow ID to enrol into |
| objectIds | array | yes | Record IDs to enrol |
| objectType | string | — | Enrollment 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
| Name | Type | Req | Description |
|---|---|---|---|
| contactId | string | yes | HubSpot contact ID (numeric string) |
| limit | number | — | Max 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: {...}}, ...] }
| Name | Type | Req | Description |
|---|---|---|---|
| breakdownBy | string | yes | How to segment the data |
| endDate | string | yes | End date YYYYMMDD |
| limit | number | — | Max breakdown rows (default 100) |
| startDate | string | yes | Start date YYYYMMDD |
| timePeriod | string | yes | Time 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fromObjectId | string | yes | — |
| fromObjectType | string | yes | Source object type. Common values: "contacts", "companies", "deals", "tickets", "leads", "products", "line_items", or any custom object name. |
| toObjectType | string | yes | Target 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
| Name | Type | Req | Description |
|---|---|---|---|
| callId | string | yes | HubSpot call ID (numeric string) |
| properties | array | — | Properties 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
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | HubSpot company ID (numeric string) |
| properties | array | — | Properties 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
| Name | Type | Req | Description |
|---|---|---|---|
| contactId | string | yes | HubSpot contact ID (numeric string) |
| properties | array | — | Properties 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
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | HubSpot deal ID (numeric string) |
| properties | array | — | Properties 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.
| Name | Type | Req | Description |
|---|---|---|---|
| emailIds | array | — | Specific email IDs (optional) |
| endTimestamp | string | — | ISO8601 end |
| startTimestamp | string | — | ISO8601 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileId | string | yes | HubSpot file ID (from upload or import) |
| getSignedUrl | boolean | — | If 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)
| Name | Type | Req | Description |
|---|---|---|---|
| formId | string | yes | HubSpot 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)
| Name | Type | Req | Description |
|---|---|---|---|
| after | string | — | Pagination cursor |
| formId | string | yes | Form ID/GUID |
| limit | number | — | Max 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.
| Name | Type | Req | Description |
|---|---|---|---|
| articleId | string | yes | HubSpot 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
| Name | Type | Req | Description |
|---|---|---|---|
| leadId | string | yes | HubSpot lead ID (numeric string) |
| properties | array | — | Properties 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.
| Name | Type | Req | Description |
|---|---|---|---|
| associations | array | — | Optional associated object types to include in the response (e.g. ["deals"], ["deals", "products"]). Returns associated record IDs alongside the line item. |
| lineItemId | string | yes | HubSpot line item ID |
| properties | array | — | Properties 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.
| Name | Type | Req | Description |
|---|---|---|---|
| listId | string | yes | The 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
| Name | Type | Req | Description |
|---|---|---|---|
| emailId | string | yes | Marketing 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
| Name | Type | Req | Description |
|---|---|---|---|
| meetingId | string | yes | HubSpot meeting ID (numeric string) |
| properties | array | — | Properties to return |
No output schema declared.
No examples provided.