Skip to main content
Glama
mantis-productions

hubspot-mcp-server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoHTTP port (default 3000, Render sets automatically)3000
TRANSPORTNoTransport mode: 'stdio' (default) or 'http'stdio
MCP_API_KEYNoBearer token for authentication in HTTP mode (required for HTTP transport)
HUBSPOT_ACCESS_TOKENYesHubSpot private app token (required)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
hubspot_get_contactA

Retrieve a single HubSpot contact by their record ID.

Returns standard contact fields (name, email, phone, company, job title, lifecycle stage).

Args:

  • contactId (string): HubSpot contact record ID (numeric string)

  • additionalProperties (string[]): Optional extra property names to include

Returns: Contact object with id, firstName, lastName, email, phone, company, jobTitle, lifecycleStage

Errors:

  • "record not found" if the ID doesn't exist or the token lacks access

hubspot_list_contactsA

List contacts from HubSpot CRM with pagination.

Args:

  • limit (number): Results per page, 1-100 (default 20)

  • after (string): Pagination cursor from a previous response

Returns: { contacts: ContactOutput[], hasMore: boolean, nextCursor?: string, total: number }

hubspot_create_contactA

Create a new contact record in HubSpot CRM.

Args:

  • properties.email: Email address (required for unique identification)

  • properties.firstname / lastname: Name fields

  • properties.phone: Phone number

  • properties.company: Company name string

  • properties.jobtitle: Job title

  • properties.lifecyclestage: lead | customer | subscriber | etc.

  • associateWithCompanyId: Optionally link to a company record by ID

Returns: Created contact with its new record ID

Errors:

  • "CONTACT_EXISTS" if a contact with that email already exists

hubspot_update_contactA

Update properties on an existing HubSpot contact. Only provided fields are changed.

Args:

  • contactId (string): HubSpot contact record ID

  • properties: Any combination of contact fields to update

Returns: Updated contact record

hubspot_delete_contactA

Archive (soft-delete) a contact in HubSpot. The record moves to the recycle bin and can be restored within HubSpot.

Args:

  • contactId (string): HubSpot contact record ID

Returns: Confirmation message with deleted ID

hubspot_get_companyA

Retrieve a single HubSpot company record by ID.

Args:

  • companyId (string): HubSpot company record ID

  • additionalProperties (string[]): Optional extra properties to include

Returns: Company with id, name, domain, industry, city, state, country, phone, employees, annualRevenue, lifecycleStage

hubspot_list_companiesA

List company records from HubSpot CRM with pagination.

Args:

  • limit (number): Results per page, 1-100 (default 20)

  • after (string): Pagination cursor from a previous response

Returns: { companies: CompanyOutput[], hasMore: boolean, nextCursor?: string }

hubspot_create_companyA

Create a new company record in HubSpot CRM.

Args:

  • properties.name: Company name (recommended)

  • properties.domain: Website domain (e.g. acme.com)

  • properties.industry: Industry type

  • properties.city / state / country: Location

  • properties.numberofemployees: Employee count

  • properties.annualrevenue: Annual revenue in USD

Returns: Created company with its new record ID

hubspot_update_companyA

Update properties on an existing HubSpot company. Only provided fields are changed.

Args:

  • companyId (string): HubSpot company record ID

  • properties: Any combination of company fields to update

Returns: Updated company record

hubspot_delete_companyA

Archive (soft-delete) a company in HubSpot. Record moves to the recycle bin.

Args:

  • companyId (string): HubSpot company record ID

Returns: Confirmation message

hubspot_get_dealA

Retrieve a single HubSpot deal record by ID.

Args:

  • dealId (string): HubSpot deal record ID

  • additionalProperties (string[]): Optional extra properties to include

Returns: Deal with id, dealName, amount, dealStage, pipeline, closeDate, dealType, description, ownerId

hubspot_list_dealsA

List deals from HubSpot CRM with pagination.

Args:

  • limit (number): Results per page, 1-100 (default 20)

  • after (string): Pagination cursor from a previous response

Returns: { deals: DealOutput[], hasMore: boolean, nextCursor?: string }

hubspot_create_dealA

Create a new deal in HubSpot CRM.

Args:

  • properties.dealname: Deal name (required)

  • properties.amount: Deal value in USD

  • properties.dealstage: Pipeline stage slug (e.g. appointmentscheduled, closedwon, closedlost)

  • properties.pipeline: Pipeline ID (default: 'default')

  • properties.closedate: Expected close date in ISO 8601 (e.g. 2026-12-31)

  • properties.dealtype: newbusiness | existingbusiness

  • properties.hubspot_owner_id: HubSpot user ID for deal owner

  • associateWithContactId: Contact ID to associate

  • associateWithCompanyId: Company ID to associate

Returns: Created deal with new record ID

hubspot_update_dealA

Update properties on an existing HubSpot deal. Only provided fields are changed.

Common use cases:

  • Move deal to next stage: update dealstage

  • Update close date or amount

  • Reassign deal owner via hubspot_owner_id

Args:

  • dealId (string): HubSpot deal record ID

  • properties: Any combination of deal fields to update

Returns: Updated deal record

hubspot_delete_dealA

Archive (soft-delete) a deal in HubSpot. Record moves to the recycle bin and can be restored.

Args:

  • dealId (string): HubSpot deal record ID

Returns: Confirmation message

hubspot_searchA

Search contacts, companies, or deals using full-text query and/or property filters.

Args:

  • objectType: "contacts" | "companies" | "deals"

  • query (string): Full-text search string (e.g. "Acme Corp" or "john@example.com")

  • filters: Array of property filters: [{ propertyName: "email", operator: "EQ", value: "john@example.com" }] Operators: EQ, NEQ, CONTAINS_TOKEN, NOT_CONTAINS_TOKEN, GT, GTE, LT, LTE, HAS_PROPERTY, NOT_HAS_PROPERTY

  • properties (string[]): Property names to include in results

  • sortBy (string): Property name to sort by

  • sortDirection: "ASCENDING" | "DESCENDING"

  • limit (number): 1-100 results (default 20)

  • after (string): Pagination cursor

Returns: { total: number, results: HubSpotRecord[], hasMore: boolean, nextCursor?: string }

Examples:

  • Find a contact by email: objectType="contacts", filters=[{propertyName:"email",operator:"EQ",value:"jane@example.com"}]

  • Find open deals: objectType="deals", filters=[{propertyName:"dealstage",operator:"NEQ",value:"closedwon"}]

  • Find companies in a city: objectType="companies", filters=[{propertyName:"city",operator:"EQ",value:"Boston"}]

hubspot_associate_recordsA

Create an association between two HubSpot CRM records (e.g. link a contact to a company, or a deal to a contact).

Args:

  • fromObjectType: "contacts" | "companies" | "deals"

  • fromObjectId: Source record ID

  • toObjectType: "contacts" | "companies" | "deals"

  • toObjectId: Target record ID

Supported pairs and their defaults:

  • contacts ↔ companies

  • deals ↔ contacts

  • deals ↔ companies

Returns: Confirmation of the association created

hubspot_list_associationsA

List all records of a given type associated with a source CRM record.

Args:

  • fromObjectType: "contacts" | "companies" | "deals"

  • fromObjectId: Source record ID

  • toObjectType: Object type to list associations for

Example: List all companies associated with contact 12345 fromObjectType="contacts", fromObjectId="12345", toObjectType="companies"

Returns: { associations: [{ id: string, type: string }], total: number }

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mantis-productions/hubspot-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server