HubSpot MCP Pack - Model Context Protocol server for HubSpot CRM integration
HubSpot MCP server has clear tool naming (verb_noun pattern: list_, get_, search_) and complete input schemas with type definitions. However, descriptions are minimal (10-20 chars baseline), parameter descriptions lack depth, and output schemas are entirely undocumented. No error handling guidance, no pagination metadata in responses, and no tool annotations. All 7 tools follow the same pattern but lack the richness needed for production LLM agents.
Get a single HubSpot company by ID.
Get a single HubSpot contact by ID.
Get a single HubSpot deal by ID.
List companies from HubSpot CRM. Supports pagination via limit and after cursor.
List contacts from HubSpot CRM. Supports pagination via limit and after cursor.
List deals from HubSpot CRM. Supports pagination via limit and after cursor.
Output schemas completely undocumented. LLMs cannot plan downstream tool calls or extract required fields (e.g., contact_id, company_id) from list/get responses. Violates pattern:tool requirement that all tools document return types.
Tool descriptions are 10-25 characters, below the 50-200 char baseline for LLM-optimized descriptions. Descriptions lack WHEN to use, WHAT it returns, and any prerequisites. E.g., 'Get a single HubSpot contact by ID' does not explain what fields are returned or how to chain to other tools.
Parameter descriptions lack actionable constraints. 'Maximum number of contacts to return (default 10, max 100)' is present, but no description explains what 'after' cursor format is, whether it is opaque, or how pagination works end-to-end. LLMs cannot reason about pagination without explicit guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Search HubSpot contacts by query string. Matches against name, email, and other default searchable properties.
No error handling guidance. Code throws generic 'HubSpot API error (status): text' with no recovery hints. LLMs cannot determine if errors are retryable, user-fixable, or fatal. Missing pattern:recovery-guide implementation.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but this is not declared in the schema. Agents cannot distinguish safe tools from destructive ones without explicit hints.