MCP server for managing HubSpot contacts via command-line interface. Supports getting, searching, adding, updating, and deleting contacts.
Server has 5 tools with basic naming (verb_noun pattern) but critical gaps in descriptions, schemas, and error handling. GET_CONTACTS and SEARCH_CONTACTS lack input schemas entirely (schema score 0). ADD_CONTACT, UPDATE_CONTACT, DELETE_CONTACT have nested object schemas but descriptions are generic and under 200 chars. No output schemas documented. No error recovery guidance. No parameter validation beyond type checks. Descriptions do not explain WHEN to use each tool or what distinguishes similar operations (e.g., GET_CONTACTS vs SEARCH_CONTACTS). No pagination support despite potential for large result sets. Tool names are clear but lack context about destructive operations in descriptions.
Create a new contact in HubSpot with required properties: firstname, lastname, email, and phone
Delete (archive) a contact from HubSpot by contact ID
Retrieve all contacts from HubSpot
Search contacts by query string matching email, first name, or last name
Update an existing contact in HubSpot with new property values
GET_CONTACTS has no input schema (empty object {}). LLM cannot understand what parameters are accepted or required.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., contact_id for UPDATE_CONTACT). Violates pattern:tool requirement.
Descriptions lack WHEN/WHY context. GET_CONTACTS says 'Retrieve all contacts' but does not explain when to use it vs SEARCH_CONTACTS. Descriptions under 100 chars lack actionable guidance for LLM selection.
DELETE_CONTACT description (30 chars) does not warn that operation is destructive/irreversible. No confirmation step or dry-run option. Violates pattern:confirmation-request.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
ADD_CONTACT and UPDATE_CONTACT require all four fields (firstname, lastname, email, phone) even when only one field needs updating. No optional parameters or partial update support. Violates pattern:tool composition (one thing per tool).