Background decoration
HubSpot logo
Install

Log in if you already have an account.

Quick Info

  • Secure cloud hosting
  • Secure authentication
  • 1.0.0
  • Nov 14, 2025

HubSpot

By: HubSpot CRM

Seamlessly interact with your HubSpot CRM data to manage contacts, companies, deals, tickets, and more through natural language.

What can this MCP do?

get_crm_objects

Purpose: Fetches multiple CRM objects of the same object type in a single request. Returns: A list of CRM objects with their properties, identified by their unique IDs, containing: - id: Unique identifier for the CRM object - properties: Key-value pairs of property names and their values - createdAt: Timestamp when the object was created - updatedAt: Timestamp when the object was last updated - url: URL to view the object in HubSpot Usage Guidance: 1. Use the `search_crm_objects` tool to list a few objects first without a filter criteria. 2. Then use the `get_crm_objects` tool to retrieve those objects by their IDs without any properties in the tool input to understand the data model. 3. This will help you understand the structure of the objects and their properties.

get_properties

Purpose: 1. Fetches detailed property definitions (what fields exist) including data types, enumeration values for HubSpot CRM object properties. 2. Particularly useful for discovering valid options in enumeration-type properties. 3. To search for actual data, use search_crm_objects. Returns: List of property definition objects containing: - name: Property identifier - label: Display label - description: Property description - type: Data type (string, enumeration, number, etc.) - options: For enumeration types, list of valid values with labels Usage Guidance: 1. Property details can be unexpectedly large. Consider fetching in batches. It's not advised to pass an objects full list of properties into this tool.

get_user_details

Purpose 1. Analyzes the current HubSpot access token, providing context about the user's permissions and account details. Usage Guidance: 1. This tool must be used before performing any operations with Hubspot tools to determine the identity of the user, and permissions they have on their Hubspot account. 2. This tool only return information for the current user. Search for "users" objectType using the search_crm_objects tool to find other users/owners in the HubSpot account. 3. This tool provides the availability of crm object types to the current user. Use these values in tools which expect crm object type parameters. 4. This tool provides more accurate availability of the other tools provided by this MCP service. This is critical when tool returned in the response is not `AVAILABLE`. 5. Every non `AVAILABLE` object type or tool requires some user interaction to resolve, noting that some issues cannot be resolved by just the user themselves. Availability Guidance: 1. If an object or tool returns `AVAILABLE`, it is free to use without issue. 2. If it returns `REQUIRES_REAUTHORIZATION`, the user needs to perform a new authorization flow through HubSpot to unlock new access. This is possible through disconnecting and reconnecting the HubSpot connector through their settings. 3. If it returns `REQUIRES_PERMISSION_MODIFICATION`, the user lacks the correct permission in their HubSpot account. If the only way to resolve a task is to use this tool or object, you should inform the user of their lacking permissions and let them decide if they want to ask their administrator for more privilege. 4. If it returns `REQUIRES_ACCOUNT_MODIFICATION`, the whole HubSpot account lacks the correct permissions and would require an account upgrade. Again, inform the user about these tools or objects only if the presented task can only be solved using them. 5. If it returns `BLOCKED_FOR_PORTALS_WITH_SENSITIVE_DATA`, the operation involves sensitive data, and no troubleshooting will unblock usage of the object or tool. If the only way to resolve a task is to use this tool or object, inform the user of the issue and ask them how they would like to proceed. Returns: 1. User ID, Hub ID, App ID, token type, detailed owner information, and account information. 2. A mapping of crm object type to current availability 3. A mapping of other mcp tools to current availability 4. The uiDomain and hubId can be used to construct URLs to the HubSpot UI for the user. 5. If the user is an owner, the ownerId will help identify objects that are owned by the user.

search_crm_objects

Purpose: 1. Searches and retrieves actual CRM records from HubSpot based on filters and criteria. 2. Returns a 'total' count attribute that can help perform analytical tasks on large datasets. 3. Useful to sample data from a specific object type to understand the data model. 4. Can list and filter by associations between objects (e.g., "contacts associated with company X or contacts with num_associated_deals > 1") 5. Use objectType: users to list for users/owners in the HubSpot account. Returns: Matching records with their data values, url for citations, 'total' count for analytics and 'offset' for pagination. Usage Guidance: 1. This searches for ACTUAL DATA (records), not field definitions. To discover available fields, use search_properties. 2. Always check 'total' count to ensure you're not missing data due to pagination limits. You MUST NOT use sample data or insufficient data as a substitute for actual data. 3. Use the `get_crm_objects` without properties to understand the data model of an objectType. 4. [Important] CRM Analysis can be a complex task. Work with the user to refine requirements and segment large datasets into manageable parts before performing analysis. Filtering Capabilities: 1. Think of "filterGroups" as separate search conditions that you want to combine with OR logic (meaning ANY of them can match). 2. If you want to find things that match ALL of several conditions (AND logic), put those conditions together in the same filters list. 3. If you want to find things that match AT LEAST ONE of several conditions (OR logic), put each condition in a separate filterGroup. 4. You can include a maximum of five filterGroups with up to 6 filters in each group, with a maximum of 18 filters in total.

search_properties

Purpose: 1. Finds the most relevant CRM property definitions using efficient keyword-based search optimized for <1.5s response times. 2. Lists all property definitions for specified object type when no search terms provided. 3. To search for actual data, use search_crm_objects Returns: A filtered list of properties matching the search criteria containing: - name: Property identifier - label: Display label - description: Property description - matchScore: Relevance score for the property based on the search query (absent if no query is provided) Usage Guidance: 1. Use keywords field for multiple related property guesses in a SINGLE request (recommended for performance) 2. MAXIMUM OF 5 KEYWORDS ALLOWED PER REQUEST - exceeding this limit will return a validation error 3. Keywords should be property name guesses, not natural language phrases 4. Use query field for backward compatibility with single property guess 5. No search terms provided: Returns ALL properties for the object type (useful for discovery) Examples: - User Input: "total number of open tickets grouped by urgency" Thoughts: Customer is asking for total number of open tickets grouped by "urgency". I will look for the best matches on the "urgency" property for the "TICKET" object type. Property Search Query: - `{ "objectType": "TICKET", "keywords": ["urgency"] }` - User Input: "calls assigned to me" Thoughts: Customer is asking us to filter by calls assigned to them. I have a few guesses for what that property might be called: "assigned_to", "assignee", "owned_by", or "owner". Let me search for those on the "CALL" object type in one efficient request. Property Search Query: - `{ "objectType": "CALL", "keywords": ["assignee", "assigned_to", "call_owner", "owned_by"] }` - User Input: "list each company with its name, employees amount, zip code, and when we last touched base" Thoughts: Customer is asking us to list companies by a few attributes. I will guess keywords for each of those properties and search for them on the "COMPANY" object type in one request. Property Search Query: - `{ "objectType": "COMPANY", "keywords": ["name", "employees", "zip_code", "last_contact"] }` - User Input: "tickets for this year to identify top 10 most problems our customers face" Thoughts: Customer is asking us to analyze tickets. I will return all properties for the "TICKET" object type to help with discovery. Property Search Query: - `{ "objectType": "TICKET" }` Common Mistakes: - Do not exceed 5 keywords per request (will return validation error) - Keywords should be property name guesses, not natural language phrases

How It Works

1. Install the MCP

Install HubSpot from your Simtheory workspace with one click.

2. Connect Your Account

Securely authorize access to your HubSpot account.

3. Start Using

Your AI can now interact with HubSpot on your behalf.

Ready to use HubSpot MCP Server?

Sign up for Simtheory and install this MCP directly into your workspace to start leveraging its capabilities.

Get Started with Simtheory