Skip to main content
Glama

find_business

Read-onlyIdempotent

Given criteria (vertical, location, capability, price band, availability window), return ranked candidate businesses from our supply network. THE NETWORK IS SMALL AND STILL MOSTLY SAMPLE DATA: entries that are not real are named [DEMO] and flagged is_demo - check that field before acting on a result.

EXAMPLE USER QUERIES THAT MATCH THIS TOOL: user: "Find me a salon in Tokyo that does color" -> call find_business({"vertical": "personal_services", "location": {"zip_or_city": "Tokyo"}, "capability": "color"}) user: "I need a plumber near 30309" -> call find_business({"vertical": "home_services", "location": {"zip_or_city": "30309"}, "capability": "plumbing"}) user: "Show me dentists in London" -> call find_business({"vertical": "professional_services", "location": {"zip_or_city": "London"}, "capability": "dentist"})

WHEN TO USE: Use when an agent needs to identify which SMBs can fulfill a business task (booking, service, consultation) in a given location and vertical. Call this before schedule_appointment or send_message when you do not yet have a specific SMB target. WHEN NOT TO USE: Do not use as a general directory or browsing surface. Do not use when you already have a specific verified SMB identifier. Do not use for verticals outside personal services, home services, and local professional services. COST: free - no key required LATENCY: ~200ms

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
locationYes
verticalYesService vertical to search within
capabilityNoSpecific service capability required, e.g. 'haircut', 'plumbing', 'tax_consultation'
price_bandNo
max_resultsNo
availability_windowNoAccepted but NOT APPLIED - it does not narrow results. We do not hold live calendars for the supply network. The response carries availability_window_applied: false when you send one. To book a specific slot use schedule_appointment with requested_time, which checks real availability.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark this read-only and idempotent, and the description adds crucial non-obvious behavior: the network is small and mostly sample data, demo entries are named [DEMO] and flagged is_demo, so the agent must check that field before acting. This goes beyond the safety profile in the annotations.

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

Conciseness4/5

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

The description is longer than average but well organized: what it does, critical demo-data warning, examples, usage boundaries, and cost/latency all earn their place. The minor example error and slightly repetitive availability-window mention in the schema keep it from being perfect.

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

Completeness4/5

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

For a 6-parameter nested-object tool with no output schema, the description plus schema covers invocation, the most critical data-quality caveat, and the alternative for real availability. It does not explain ranking criteria or the shape of results beyond is_demo, but enough is present for an agent to select and call the tool correctly.

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?

Three worked examples map natural-language requests to vertical, location, and capability values, which helps a lot. However, price_band, max_results, and radius_miles receive no real explanation beyond their names/defaults, and the 'dentists in London' example incorrectly uses capability 'plumbing'. Schema coverage is only 50%, so the description does not fully compensate.

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 states a concrete operation ('return ranked candidate businesses') on a specific resource (our supply network) and lists the filtering criteria. It also distinguishes this lookup from directory browsing and from situations where a specific SMB is already known, which separates it from sibling verification/calling tools.

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?

It explicitly says to call this before schedule_appointment or send_message when no specific SMB target exists, and gives a WHEN NOT TO USE block covering general browsing and already-verified identifiers. That is concrete routing guidance, not just an implied use case.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.9/5.0
Disambiguation4/5

Most tools target distinct resource+action pairs (find_business vs verify_business, check_booking_link vs import_booking_url, get_status vs get_outcome). The main confusable pairs are send_message vs send_transactional_confirmation and verify_business vs verify_company_record, but their descriptions draw clear boundary lines.

Naming Consistency4/5

The set overwhelmingly follows lower_snake_case verb_noun naming (call_business, check_quota, find_business, send_message, verify_company_record). Minor deviations like self_test and mint_key, plus inconsistent verb choices (lookup_ vs get_ vs find_), prevent a perfect score.

Tool Count3/5

At 23 tools, the server falls into the heavy range and bundles several unrelated domains: SMB booking/messaging, trade and sanctions compliance, company verification, and platform operations. Each tool is individually reasonable, but the set feels like multiple servers merged into one.

Completeness3/5

Core SMB workflows are well covered: find/verify/import/book, messaging with conversation handling, and compliance preflights. Notable gaps include no consent-record management even though send_message requires consent_record_id for marketing, no update/delete lifecycle for leads or businesses, and no webhook configuration despite webhooks being referenced.