calls_archive
Archive (delete) a call record
Work HubSpot through 112 tools: typed create, update and search for companies, contacts and leads; a generic objectType layer for everything else; associations; and meetings, notes, tasks, calls and emails each with batch variants.
LABSCO SUMMARY
The pairing is the design decision worth noticing. Companies, contacts and leads get their own create, update, search and property tools because their filters and validated properties genuinely differ; everything else runs through crm_list_objects, crm_get_object and their siblings with an objectType argument, so a custom object is reachable without waiting for somebody to add a dedicated tool. Batch variants sit almost everywhere, which is what makes a migration or a bulk correction practical rather than theoretical. The cost is the count: 112 tool definitions is a lot of surface to carry into a session that wanted to look up one contact.
A HubSpot CRM server with a typed tool set for the objects whose properties differ, a generic objectType layer underneath it, and the association, engagement, communication-preference and product surfaces around both.
A HubSpot access token in HUBSPOT_ACCESS_TOKEN.
One command plus a key — npx -y @smithery/cli install @shinzo-labs/hubspot-mcp, then supply credentials
USE CASES
Find the contact by whatever you remember of them, log the call against that record, put the substance in a note, and leave the follow-up as a task with an owner and a due date.
Create the companies and their contacts in two batch calls rather than one request per row, then look up which association type joins the two object types before creating those links in a batch of their own.
Read the portal's subscription definitions and the contact's current preferences before changing anything, then unsubscribe them from email with the legal basis recorded alongside the change.
Find the company, walk its associations out to the contacts and deals attached to it, then pull every engagement recorded against it inside the window you care about instead of reading five separate lists.
Read the existing contact properties to check nothing already covers it, define the new property with its type, field type and group, then backfill values across the affected contacts in one batch.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
calls_archiveArchive (delete) a call record
calls_batch_archiveArchive (delete) multiple call records in a single request
calls_batch_createCreate multiple call records in a single request
calls_batch_readRead multiple call records in a single request
calls_batch_updateUpdate multiple call records in a single request
calls_createCreate a new call record
calls_getGet details of a specific call
calls_listList all calls with optional filtering
calls_searchSearch calls with specific filters
calls_updateUpdate an existing call record
communications_get_preferencesGet communication preferences for a contact
communications_get_subscription_definitionsGet all subscription definitions for the portal
communications_get_subscription_statusGet subscription status for multiple contacts
communications_subscribe_contactSubscribe a contact to all email communications
communications_unsubscribe_contactUnsubscribe a contact from all email communications
communications_update_preferencesUpdate communication preferences for a contact
communications_update_subscription_statusUpdate subscription status for multiple contacts
crm_archive_associationArchive (delete) an association between two objects
crm_archive_objectArchive (delete) a CRM object
crm_batch_archive_associationsArchive (delete) multiple associations in a single request
crm_batch_archive_objectsArchive (delete) multiple CRM objects in a single request
crm_batch_create_associationsCreate multiple associations in a single request
crm_batch_create_companiesCreate multiple companies in a single request
crm_batch_create_contactsCreate multiple contacts in a single request
crm_batch_create_leadsCreate multiple leads in a single request
crm_batch_create_objectsCreate multiple CRM objects in a single request
crm_batch_read_objectsCreate multiple CRM objects in a single request
crm_batch_update_companiesUpdate multiple companies in a single request
crm_batch_update_contactsUpdate multiple contacts in a single request
crm_batch_update_leadsUpdate multiple leads in a single request
crm_batch_update_objectsUpdate multiple CRM objects in a single request
crm_create_associationCreate an association between two objects
crm_create_companyCreate a new company with validated properties
crm_create_company_propertyCreate a new company property
crm_create_contactCreate a new contact with validated properties
crm_create_contact_propertyCreate a new contact property
crm_create_leadCreate a new lead with validated properties
crm_create_lead_propertyCreate a new lead property
crm_create_objectCreate a new CRM object
crm_get_associationsGet all associations of a specific type between objects
crm_get_companyGet a single company by ID with specific properties and associations
crm_get_company_propertiesGet all properties for companies
crm_get_contactGet a single contact by ID with specific properties and associations
crm_get_contact_propertiesGet all properties for contacts
crm_get_leadGet a single lead by ID with specific properties and associations
crm_get_lead_propertiesGet all properties for leads
crm_get_objectGet a single CRM object by ID
crm_list_association_typesList all available association types for a given object type pair
crm_list_objectsList CRM objects of a specific type with optional filtering and pagination
crm_search_companiesSearch companies with company-specific filters
crm_search_contactsSearch contacts with contact-specific filters
crm_search_leadsSearch leads with lead-specific filters
crm_search_objectsSearch CRM objects using filters
crm_update_companyUpdate an existing company with validated properties
crm_update_contactUpdate an existing contact with validated properties
crm_update_leadUpdate an existing lead with validated properties
crm_update_objectUpdate an existing CRM object
emails_archiveArchive (delete) an email record
emails_batch_archiveArchive (delete) multiple email records in a single request
emails_batch_createCreate multiple email records in a single request
emails_batch_readRead multiple email records in a single request
emails_batch_updateUpdate multiple email records in a single request
emails_createCreate a new email record
emails_getGet details of a specific email
emails_listList all emails with optional filtering
emails_searchSearch emails with specific filters
emails_updateUpdate an existing email record
engagement_details_archiveArchive (delete) an engagement
engagement_details_createCreate a new engagement with details
engagement_details_getGet details of a specific engagement
engagement_details_get_associatedGet all engagements associated with an object
engagement_details_listList all engagements with optional filtering
engagement_details_updateUpdate an existing engagement's details
meetings_archiveArchive (delete) a meeting
meetings_batch_archiveArchive (delete) multiple meetings in a single request
meetings_batch_createCreate multiple meetings in a single request
meetings_batch_updateUpdate multiple meetings in a single request
meetings_createCreate a new meeting
meetings_getGet details of a specific meeting
meetings_listList all meetings with optional filtering
meetings_searchSearch meetings with specific filters
meetings_updateUpdate an existing meeting
notes_archiveArchive (delete) a note
notes_batch_archiveArchive (delete) multiple notes in a single request
notes_batch_createCreate multiple notes in a single request
notes_batch_readRead multiple notes in a single request
notes_batch_updateUpdate multiple notes in a single request
notes_createCreate a new note
notes_getGet details of a specific note
notes_listList all notes with optional filtering
notes_searchSearch notes with specific filters
notes_updateUpdate an existing note
products_archiveMove an Object identified by ID to the recycling bin.
products_batch_archiveArchive (delete) a batch of products by ID
products_batch_createCreate a batch of products
products_batch_readRead a batch of products by internal ID, or unique property values. Retrieve records by the idProperty parameter to retrieve records by a custom unique value property.
products_batch_updateUpdate a batch of products by internal ID, or unique values specified by the idProperty query param.
products_createCreate a product with the given properties and return a copy of the object, including the ID.
products_listRead a page of products. Control what is returned via the properties query param. after is the paging cursor token of the last successfully read resource will be returned as the paging.next.after JSON property of a paged response containing more results.
products_readRead an Object identified by ID
products_searchSearch products
products_updatePerform a partial update of an Object identified by ID. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.
tasks_archiveArchive (delete) a task
tasks_batch_archiveArchive (delete) multiple tasks in a single request
tasks_batch_createCreate multiple tasks in a single request
tasks_batch_readRead multiple tasks in a single request
tasks_batch_updateUpdate multiple tasks in a single request
tasks_createCreate a new task
tasks_getGet details of a specific task
tasks_listList all tasks with optional filtering
tasks_searchSearch tasks with specific filters
tasks_updateUpdate an existing task
BEFORE YOU INSTALL
112 tools when we connected. Most tools write, including crm_archive_object, which deletes, and communications_unsubscribe_contact, which changes a contact's global marketing consent. Your token's scopes decide how much of that the model can use.
The documented client runs the server on your machine.
CONTEXT COST
Rated by the size of the 112 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y @smithery/cli install @shinzo-labs/hubspot-mcp{
"mcpServers": {
"hubspot": {
"command": "npx",
"args": [
"@shinzolabs/hubspot-mcp"
],
"env": {
"HUBSPOT_ACCESS_TOKEN": "<YOUR_HUBSPOT_ACCESS_TOKEN>"
}
}
}
}