hubspot-multi-mcp
Provides read-only access to multiple HubSpot portals, allowing users to list portals, list and describe CRM objects (standard and custom), search contacts, companies, deals, tickets, and custom objects, fetch records by ID, list owners, and search across all connected portals at once.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hubspot-multi-mcpSearch all my hubspot portals for acme.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
hubspot-multi-mcp
Talk to all your HubSpot portals from Claude — at once, by name.
A small, local, read-only MCP server that connects the Claude Desktop app to as many HubSpot portals as you want (Sales, Marketing, an acquired brand, an EU account, each of your clients…). You name each portal; then just say "in the sales hubspot, find…" and Claude uses the right one. It runs on your own computer with your own read-only keys — nothing is hosted and no credentials are shared.
Unofficial. Not affiliated with, or endorsed by, HubSpot, Inc. "HubSpot" is a trademark of its owner and is used here only to describe what this tool connects to.
Why this exists
HubSpot's own connector is one account per connection — there's no supported way to point a single Claude connection at two portals, and Claude won't let you add the same connector twice to get around it. If your company runs more than one HubSpot portal, you're stuck.
This is the practical way around it: a tiny server that runs on your machine, talks to all your portals with your own read-only keys, and shows up as a HubSpot tool inside Claude. It can even search every portal at once and tell you which one a record lives in — something a one-account connector simply can't do.
Related MCP server: HubSpot MCP Server by CData
What you get
Read-only tools, each targeting a portal by the name you gave it:
Tool | What it does |
| Show which portals are connected + their account ids |
| List object types in a portal — standard and custom objects |
| List the fields/properties of an object type |
| Search a CRM object (contacts / companies / deals / tickets / custom) |
| Fetch a single record by id |
| List CRM owners (users) |
| Search every connected portal at once and report which matched |
Read-only by design — the server only ever issues read calls, so it cannot create, edit, or delete anything, even if a key had write permission.
Quick start (about 5 minutes)
You need: a Mac or Windows PC, the Claude Desktop app, Node.js 18+
(check with node --version; if it's missing, install the LTS from https://nodejs.org), and a
read-only HubSpot token for each portal (how to get one is below).
Open a terminal (macOS: Terminal app; Windows: PowerShell).
Run setup — this one command does everything (no download, no
npm install):npx hubspot-multi-mcp setupFor a permanent install that always loads, run
npm install -g hubspot-multi-mcpfirst, thenhubspot-multi-mcp setup.Name each portal and paste its token when asked (the token is hidden as you paste — that's expected). Repeat for as many portals as you have; press Enter on the name to finish. Setup checks each token and saves them privately on your computer.
Fully quit Claude Desktop (macOS: Cmd+Q, not just the window; Windows: right-click the tray icon → Quit) and reopen it.
Try it — ask Claude:
"List my hubspot portals." then "In the sales hubspot, find the contact for jane@example.com." or, when you're not sure which portal has it: "Find acme.com across all my hubspots."
Check it's working any time: npx hubspot-multi-mcp verify (prints the portals it can reach; no
secrets shown).
Add or change a portal: run npx hubspot-multi-mcp setup again.
How to get a read-only HubSpot token (one per portal)
Do this in each HubSpot portal you want to connect. You need to be an admin of that portal (or ask one to do it for you).
In HubSpot, go to Settings → Integrations → Private Apps → Create a private app.
Name it something like
claude-readonly.On the Scopes tab, grant read-only scopes only (no
.write):crm.objects.contacts.read,crm.objects.companies.read,crm.objects.deals.readcrm.objects.owners.read(to see record owners), andticketsread if you use ticketscrm.schemas.contacts.read/.companies.read/.deals.read(so field discovery works)(optional) the account-info read scope — only needed to display the portal id
Create the app and copy its access token (starts with
pat-…). That's what you paste into setup. Keep it safe — treat it like a password.
Granting only read scopes means the token physically cannot change anything, which pairs with this server being read-only by design.
How your keys are handled (security)
Read-only by construction — there is no create/update/delete code path in this tool.
Your tokens are stored at
~/.config/hubspot-multi-mcp/portals.json(file mode600, readable only by you), outside the package — never committed, never uploaded, never printed back.Tokens are redacted from every error message, so a key can't leak into a Claude transcript.
Nothing is hosted. The only network calls are read requests from your machine to HubSpot.
Using more than one portal
Every request picks a portal by name. If you only set up one portal, you don't have to name it —
it's the default. With several, just say which one ("in the marketing hubspot…"), or let Claude
search them all with hubspot_find_across. Custom objects work too: ask Claude to
"list the objects in the sales hubspot" and it'll show your custom object types, which you can then
search like any other.
Troubleshooting
The tool doesn't appear in Claude → make sure you fully quit and reopened Claude Desktop (Cmd+Q on macOS). A running app only loads MCP servers at startup.
Server won't start / "spawn ENOENT" → the Node.js used at setup was moved or uninstalled (common if you later switch Node versions with nvm/volta/fnm). Re-run
npx hubspot-multi-mcp setupto re-pin it.A token "did not work" → wrong portal, or missing read scopes. Re-issue the private-app token with the read scopes above and run setup again.
For teams (operator guide)
This uses per-user read-only tokens: an admin mints them, each person runs setup themselves. No keys are ever shared in chat.
In each portal, create a read-only private app per person (scopes above); copy the
pat-…token.Send each person their tokens securely — e.g. a 1Password share restricted to their email, with an expiration. Never paste a token into Slack or email.
Have them follow Quick start above.
To off-board someone: delete their private app in HubSpot. Tokens are independent, so revoking one person affects no one else.
Run from source (optional, for developers)
git clone https://github.com/devender/hubspot-multi-mcp
cd hubspot-multi-mcp
npm install
npm run setup # same interactive setup; registers a local-path launcherLicense
MIT — see LICENSE.
Available Tools
7 toolshubspot_describe_objectA
List the properties (fields) of a CRM object type in a portal, so you know what to search on and what to request. READ-ONLY.
| Name | Required | Description | Default |
|---|---|---|---|
| object | No | CRM object type: contacts, companies, deals, tickets, or a custom object name. Call hubspot_list_objects to see custom object types in a portal. | contacts |
| instance | Yes | Which HubSpot portal to use (none configured yet — run `npx hubspot-multi-mcp setup`). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly says 'READ-ONLY', which is important, but it does not mention anything else about behavior, such as errors for invalid object names, pagination, or response structure. The disclosure is correct but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact sentence, front-loaded with the action and resource, and ends with the clearly marked 'READ-ONLY' note. Every word contributes value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward introspection tool with two fully documented parameters, the description covers the essential context: what it lists and why an agent would use it. The lack of an output schema and explicit return format is a minor gap given the tool's simplicity and low risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already fully documented in the input schema. The description does not add parameter-level meaning beyond the schema, which is acceptable but does not earn a higher score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and the resource ('properties/fields of a CRM object type'), and explains the purpose: to know what to search on and what to request. This clearly distinguishes it from sibling tools like hubspot_list_objects, which list object types themselves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'so you know what to search on and what to request' conveys when to use this tool: before constructing searches or get requests. The object parameter also directs users to hubspot_list_objects for discovering custom object types, adding useful cross-tool guidance. It does not explicitly say when not to use it, but the intended context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_find_acrossA
Search a free-text query across ALL connected HubSpot portals at once, and report which portal(s) matched. READ-ONLY. Use this when the user does not know which portal a record lives in (e.g. "find jane@example.com in any of my hubspots").
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max records per portal (default 10). | |
| query | Yes | Free-text search string (name, email, company/domain). | |
| object | No | CRM object type: contacts, companies, deals, tickets, or a custom object name. Call hubspot_list_objects to see custom object types in a portal. | contacts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It explicitly states READ-ONLY and explains that the tool reports which portals matched, giving useful behavioral context. It stops short of describing edge cases such as no matches or error behavior, but for a read-only search this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, with no wasted words. The core behavior is front-loaded first, followed by a practical usage guideline and example, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three clearly schema-documented parameters and no output schema, the description covers the essential context: what it searches, the read-only nature, and what it reports. It could add more detail about the response shape or pagination, but the description is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters fully, covering query, limit, and object with defaults, ranges, and valid values. Since schema coverage is 100%, the description adds little beyond the tool-level cross-portal behavior, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names the verb 'Search', the resource 'ALL connected HubSpot portals at once', and the distinctive behavior of reporting which portal(s) matched. It also contrasts implicitly with the sibling hubspot_search by emphasizing cross-portal coverage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case: use when the user does not know which portal a record lives in, with a concrete example. It does not explicitly name an alternative tool or state when not to use it, but the context is clear enough for an agent to route appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_getA
Fetch a single HubSpot record by id from a chosen portal. READ-ONLY.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The record id. | |
| object | No | CRM object type: contacts, companies, deals, tickets, or a custom object name. Call hubspot_list_objects to see custom object types in a portal. | contacts |
| instance | Yes | Which HubSpot portal to use (none configured yet — run `npx hubspot-multi-mcp setup`). | |
| properties | No | Which properties to return. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It explicitly states READ-ONLY, which is valuable, but it does not disclose behavior on missing records, output format, or portal/auth setup issues beyond what the schema mentions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence that front-loads the core action and includes the key safety note. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple single-record fetch, but with no output schema or annotations it leaves some gaps: no guidance on choosing between sibling tools and no mention of response/error behavior. The schema covers parameters well, so overall it is functional but minimal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for id, object, instance, and properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Fetch'), a specific resource ('a single HubSpot record by id'), and the scope ('from a chosen portal'). It clearly distinguishes this from sibling tools that list or search multiple records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The by-id nature of the lookup implies it should be used when an ID is known, but the description does not explicitly mention alternatives such as hubspot_search or hubspot_find_across, nor does it state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_list_instancesA
List which HubSpot portals are connected (by the names you gave them) and their account ids. READ-ONLY. Call this first to see what portals are available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly declares 'READ-ONLY' and specifies the kinds of information returned (portal names and account ids). This goes beyond the empty schema and is especially valuable for a no-parameter tool where side effects are a primary concern.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core action, return contents, safety hint, and usage guidance are all included efficiently and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the description fully conveys what the agent needs: the purpose, the data returned, the read-only nature, and the recommended first step. Nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already covers everything. The description appropriately focuses on return content rather than parameter details. This matches the baseline for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List which HubSpot portals are connected' and indicates the key return fields: names and account ids. It clearly differentiates from sibling tools like hubspot_list_objects and hubspot_list_owners by focusing on portals/instances rather than objects or owners.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs the agent to 'Call this first to see what portals are available,' establishing a clear usage context. It does not explicitly name alternatives or state when not to use it, but the directive is strong enough to guide selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_list_objectsA
List the CRM object types available in a portal — the four standard ones plus any CUSTOM objects defined in that portal. READ-ONLY. Use this before searching a non-standard object.
| Name | Required | Description | Default |
|---|---|---|---|
| instance | Yes | Which HubSpot portal to use (none configured yet — run `npx hubspot-multi-mcp setup`). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden and does state 'READ-ONLY' plus the output scope (standard and custom object types). It does not describe error cases or exact response shape, but for a simple read-only list operation this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences with no filler: the first states the action and scope, the second adds the read-only flag and a practical usage pointer. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema and no annotations, this description is complete: it states purpose, return scope, safety, and a concrete use case. An agent has enough to decide when and how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, instance, is fully described in the schema with 100% coverage, so the baseline is 3. The description adds no additional parameter-level meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource and behavior — 'List the CRM object types available in a portal' — and clarifies the standard-plus-custom distinction, so an agent can tell it apart from sibling tools like search/get/describe without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit usage guidance: 'Use this before searching a non-standard object,' which tells the agent when this tool is the right prerequisite. It does not explicitly name alternatives or exclusions, so it stops short of a full routing explanation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_list_ownersA
List CRM owners (users) in a chosen portal, to resolve owner ids to people. READ-ONLY.
| Name | Required | Description | Default |
|---|---|---|---|
| instance | Yes | Which HubSpot portal to use (none configured yet — run `npx hubspot-multi-mcp setup`). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It clearly marks the operation as READ-ONLY, which is a key safety trait, and specifies that it operates on a chosen portal. It does not detail output shape or edge cases, but for a simple list operation this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences that front-load the action and purpose, then add the read-only safety note. Every word adds value, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, one required parameter, and no output schema, the description provides enough context for an agent to invoke it correctly: it states what is listed, why it might be used, and that it is read-only. A brief note about return format would make it fully complete, but it is not a major gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single required parameter 'instance' already has a clear description explaining which portal to use and the setup command. The tool description adds only the phrase 'chosen portal', which adds minimal meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a specific resource ('CRM owners (users)') and adds the intended use case ('to resolve owner ids to people'). This clearly distinguishes it from sibling tools like hubspot_list_objects and hubspot_list_instances.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when this tool is useful: when you need to resolve owner ids to people. It does not explicitly name alternatives or exclusions, but the purpose statement is enough to route an agent toward this tool for owner-related lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hubspot_searchA
Search a HubSpot CRM object in a chosen portal. READ-ONLY. Use query for a free-text search (name, email, company/domain); omit it to list recent records.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max records to return (default 25). | |
| query | No | Free-text search string (e.g. a name, email, or company domain). | |
| object | No | CRM object type: contacts, companies, deals, tickets, or a custom object name. Call hubspot_list_objects to see custom object types in a portal. | contacts |
| instance | Yes | Which HubSpot portal to use (none configured yet — run `npx hubspot-multi-mcp setup`). | |
| properties | No | Which properties to return (defaults to the HubSpot standard set). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral burden and it does so well by self-declaring READ-ONLY safety and disclosing the surprising mode switch (omitting `query` turns a search into a list-recent-records operation). It does not cover pagination, result shape, or rate limits, but the critical behavioral traits are disclosed and nothing contradicts the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with zero filler: purpose, safety flag, then the key usage rule. The most decision-relevant information (what the tool does, that it is read-only, and how the query param alters behavior) is front-loaded before any secondary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no annotations and no output schema, the description covers purpose, safety, and mode semantics, while the schema fully documents parameters (including the setup caveat for instance). The main gaps are the lack of explicit differentiation from similar siblings (hubspot_find_across) and no hint about what the result set looks like, but these are secondary for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine value beyond the schema: it explains that omitting `query` changes the operation entirely to listing recent records — a semantic the schema's static description ('Free-text search string') does not convey. The other parameters (limit, object, instance, properties) are fully documented by the schema, so no compensation is needed there.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (search) and resource (a HubSpot CRM object in a chosen portal), and immediately qualifies the scope with 'READ-ONLY.' It also discloses the dual-mode behavior (free-text search vs. listing recent records), which clearly separates it from siblings like hubspot_get and hubspot_find_across without needing to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear intra-tool guidance: use `query` for free-text search, omit it to list recent records. However, it never explicitly addresses when to choose this tool over its siblings — particularly hubspot_find_across (search across objects) and hubspot_get — so the agent must infer the routing from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v0.1.0- First observed
hubspot_describe_object - First observed
hubspot_find_across - First observed
hubspot_get - First observed
hubspot_list_instances - First observed
hubspot_list_objects - First observed
hubspot_list_owners - First observed
hubspot_search
TDQS
Each tool has a clear and distinct role: listing portals, listing object types, describing properties, searching, fetching by ID, listing owners, and cross-portal search. Even the similar-looking search and get tools are cleanly separated by query-based lookup vs. ID-based retrieval.
All tools share the hubspot_ prefix and use lowercase underscore-separated names, which is consistent. There is minor inconsistency because some names include an object (list_instances, describe_object) while others are generic verbs (search, get), and find_across doesn't follow the same verb_noun shape as the rest.
Seven tools is an appropriate size for a HubSpot multi-portal exploration server. Each tool covers a necessary part of the discovery and retrieval workflow without redundancy or bloat.
The tool set is well-rounded for read-only HubSpot CRM exploration: it covers discovery, schema inspection, searching, fetching, owner resolution, and cross-portal lookup. The only notable gap is that there is no direct way to search all object types within a single portal at once, though list_objects plus search covers that workflow.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The HubSpot MCP Server acts as a bridge that enables AI assistants and Large Language Models to securely interact with HubSpot CRM data through natural conversation, without requiring users to understand complex API structures. It provides read-only access to standard CRM objects (contacts, companies, deals, tickets, products, invoices, and more) and their associations, secured via OAuth 2.0, allowing AI agents to perform tasks like summarizing deals, fetching company updates, and looking up record changes.
Multiple Google accounts (Gmail, Calendar, Drive, Contacts, Tasks) in one Claude connector.
1Give AI agents real hands on LinkedIn: sourcing, AI qualification, HubSpot-native attribution.
Your professional network in Claude — search contacts, log notes, and send warm intros.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables Claude to interact with HubSpot CRM for sales analysis and insights, providing tools for managing contacts, deals, companies, and retrieving sales analytics data.172510MIT
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to HubSpot data from Claude Desktop through CData JDBC Drivers. For full CRUD support, check out the first managed MCP platform: CData Connect AI (https://www.cdata.com/ai/).MIT
- FlicenseBqualityDmaintenanceEnables management of HubSpot marketing emails from Claude Desktop, including listing, viewing, creating drafts, and updating emails through the HubSpot Marketing Email API.41-
- FlicenseNot gradedqualityDmaintenanceEnables querying and managing a CRM database through natural language conversations with Claude Desktop.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/devender/hubspot-multi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server