hubspot-multi-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
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.
Naming Consistency4/5All 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.
Tool Count5/5Seven 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.
Completeness4/5The 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.
Average 4.2/5 across 7 of 7 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 4 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
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.
Conciseness5/5Is 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.
Completeness3/5Given 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.
Parameters3/5Does 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.
Purpose5/5Does 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.
Usage Guidelines3/5Does 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.
- Behavior3/5
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.
Conciseness5/5Is 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.
Completeness4/5Given 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.
Parameters3/5Does 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.
Purpose5/5Does 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.
Usage Guidelines4/5Does 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.
- Behavior4/5
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.
Conciseness5/5Is 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.
Completeness4/5Given 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.
Parameters3/5Does 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.
Purpose5/5Does 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.
Usage Guidelines4/5Does 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.
- Behavior4/5
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.
Conciseness5/5Is 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.
Completeness4/5Given 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.
Parameters3/5Does 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.
Purpose5/5Does 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.
Usage Guidelines4/5Does 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.
- Behavior4/5
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.
Conciseness5/5Is 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.
Completeness4/5Given 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.
Parameters4/5Does 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.
Purpose5/5Does 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.
Usage Guidelines3/5Does 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.
- Behavior4/5
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.
Conciseness5/5Is 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.
Completeness5/5Given 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.
Parameters3/5Does 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.
Purpose5/5Does 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.
Usage Guidelines4/5Does 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.
- Behavior4/5
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.
Conciseness5/5Is 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.
Completeness5/5Given 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.
Parameters4/5Does 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.
Purpose5/5Does 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.
Usage Guidelines4/5Does 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.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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