Skip to main content
Glama
amin-ale

HubSpot CRM MCP Server

by amin-ale

crm_search_contacts

Read-onlyIdempotent

Find HubSpot contacts by free-text search across name, email, company, and other indexed properties. Returns a page of matches with pagination cursor for additional results.

Instructions

Search HubSpot contacts by free-text term and return one page of matches.

Use this to find contacts by name, email, company, or any other indexed property. Prefer crm_list_contacts when there is no term to match on, and crm_get_contact when the record id is already known.

Read-only. Needs the crm.objects.contacts.read scope; without it the call is denied before any CRM data request is made and the denial is written to the audit log. Search results are never cached, so every call reaches HubSpot. Pass the returned 'after' cursor back to walk further pages; a null 'after' means this was the last page. Archived contacts are excluded.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
afterNoCursor copied from the previous response's 'after' field. Omit for the first page.
limitNoHow many records this page may contain, 1 to 100. HubSpot caps it at 100.
queryNoFree-text term matched against the record's indexed properties. Omit to match every record.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
afterNoCursor for the next page, or null when this is the last page.
resultsYesRecords in this page, each with 'id' and 'properties'.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses the required OAuth scope, denial/audit behavior, lack of caching, pagination cursor semantics, and archived contact exclusion. No contradictions with annotations; the description adds substantial behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the first sentence states the core purpose, the second gives usage context, the third covers auth and caching, and the fourth explains pagination. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With rich schema annotations, output schema present, and the description covering auth, safety, pagination, and filtering behavior, the agent has everything needed to select and invoke the tool correctly. No critical gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all three parameters fully (100% coverage), including defaults and meanings. The description reinforces free-text search and 'after' cursor usage but does not add new semantics beyond the schema, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb+resource+scope: 'Search HubSpot contacts by free-text term and return one page of matches.' It explicitly contrasts with sibling tools in the usage guidance, distinguishing it from crm_list_contacts (no term) and crm_get_contact (known ID).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance: 'Use this to find contacts by name, email, company, or any other indexed property.' It names alternatives: 'Prefer crm_list_contacts when there is no term to match on, and crm_get_contact when the record id is already known.' Also includes operational guidance on pagination and caching.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/amin-ale/hubspot-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server