Skip to main content
Glama

Server Details

Find real businesses and book appointments. Books via Cal.com; imports 12 platforms.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
basilalshukaili/agentbroker
GitHub Stars
1
Server Listing
Agent Broker

Available Tools

9 tools
find_businessA
Read-onlyIdempotent
Inspect

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

ParametersJSON 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.9/5.0
Behavior5/5

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

Annotations already cover readOnly/idempotent/non-destructive, and the description adds valuable context beyond that: the supply network is mostly sample data with [DEMO] entries, availability_window is not applied, no live calendars are held, and no key is required. No contradiction with annotations.

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 well-structured with a front-loaded core statement, labeled usage sections, example queries, and operational notes like cost and latency. Every section earns its place; the examples are repetitive but directly help with parameter mapping.

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?

Even without an output schema, the description conveys what the response contains (ranked candidates with an is_demo flag), warns how to treat sample data, and connects the tool to downstream scheduling/messaging usage. For a read-only search tool with strong annotations, this is complete.

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

Parameters4/5

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

The examples add real semantics by mapping natural-language queries to exact vertical values, location formats, and capability strings, and the schema itself documents availability_window's non-applied behavior. However, price_band and max_results receive only surface-level coverage, with no deeper explanation of ranking implications or formatting, so it falls just short of perfect.

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 opening sentence names a specific action (return ranked candidate businesses) and a resource (our supply network), while enumerating the matching criteria. It also differentiates the tool from discovery-focused workflows and sibling tools by framing it as the search step before scheduling or messaging.

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?

Explicit WHEN TO USE and WHEN NOT TO USE sections tell the agent to invoke this before schedule_appointment or send_message when no SMB target exists, and to avoid it when a verified target is already known or when outside the supported verticals. This is strong routing guidance.

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

get_outcomeA
Read-onlyIdempotent
Inspect

Retrieve the final OutcomeReceipt for a completed operation.

WHEN TO USE: Use after get_status returns success/failure/partial to retrieve the full result with cost and reason codes. WHEN NOT TO USE: Do not use for operations still in pending/executing state — use get_status first. COST: free - no key required LATENCY: ~50ms

ParametersJSON Schema
NameRequiredDescriptionDefault
operation_idYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark it read-only and idempotent; the description adds valuable context: it requires a completed operation, returns the final receipt with cost and reason codes, is free, and has ~50ms latency. This goes well beyond the structured annotations.

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?

Every sentence earns its place: core action, use conditions, non-use conditions, cost, and latency. The WHEN TO USE/NOT format makes it skimmable and decision-ready without padding.

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?

For a single-parameter read-only tool with rich annotations, the description covers the precondition, the sibling workflow, operational characteristics, and the content of the result. Nothing essential is missing for an agent to select and invoke it correctly.

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

Parameters4/5

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

Although the schema provides zero description coverage for operation_id, the tool description supplies the meaning implicitly: it is the ID of a completed operation, and its value comes from the workflow after get_status. This is sufficient for a single clearly-named parameter, though explicit format/source details would make it stronger.

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?

States a specific verb ('Retrieve') and resource ('final OutcomeReceipt for a completed operation'), which clearly distinguishes it from get_status and other siblings. The description also enumerates what the result contains: cost and reason codes.

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?

Explicitly says WHEN TO USE after get_status returns success/failure/partial, and WHEN NOT TO USE for pending/executing operations, naming get_status as the alternative. This gives an agent actionable routing logic with no ambiguity.

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

get_statusA
Read-onlyIdempotent
Inspect

Query the current state of any in-flight async operation by operation_id.

WHEN TO USE: Use to poll the state of a pending_async operation when no webhook callback has arrived or to check progress. WHEN NOT TO USE: Do not poll more frequently than once per 10 seconds — use webhook delivery for real-time updates instead. COST: free - no key required LATENCY: ~50ms

ParametersJSON Schema
NameRequiredDescriptionDefault
operation_idYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds meaningful operational context: cost is free, no API key is required, latency is ~50ms, and polling frequency is rate-limited. No contradictions with annotations.

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 well-organized: the core sentence is front-loaded, followed by clearly labeled when-to-use, when-not-to-use, cost, and latency sections. Every line contributes useful information without redundancy.

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 simple single-parameter polling tool, the description covers core purpose, polling guidance, rate limits, cost, and latency. It does not describe the shape of the returned status or values, but the absence of an output schema and the straightforward semantics make this a minor gap.

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

Parameters2/5

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

With schema description coverage at 0%, the description needed to compensate for the undocumented operation_id. It only restates that the operation is queried by operation_id, without explaining where the ID comes from, its format, or any example, so it adds little beyond the property name.

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

Purpose4/5

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

The opening sentence states a specific action ('Query the current state') on a clear resource (in-flight async operation) keyed by operation_id. It is unambiguous, though it does not explicitly differentiate itself from the sibling get_outcome tool.

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?

The 'WHEN TO USE' and 'WHEN NOT TO USE' sections provide explicit conditions: poll pending_async operations when no webhook has arrived or to check progress, and avoid polling more often than once per 10 seconds in favor of webhooks. This is clear, actionable guidance with exclusions.

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

import_booking_urlA
Idempotent
Inspect

Turn ANY public booking URL (Cal.com, Calendly, Doctolib, Booksy, Fresha, OpenTable, Setmore, Square, Acuity, Schedulista, Squarespace, BookMyCity) into a callable smb_id you can immediately use with schedule_appointment, send_message, or capture_lead. Idempotent — calling twice returns the same smb_id.

EXAMPLE USER QUERIES THAT MATCH THIS TOOL: user: "Book me a haircut at https://cal.com/jane-salon" -> call import_booking_url({"booking_url": "https://cal.com/jane-salon", "vertical": "personal_services"}) -> then schedule_appointment({"smb_id": "", "action": "book"}) user: "Schedule with this dentist: https://www.doctolib.fr/dentiste/paris/jean-dupont" -> call import_booking_url({"booking_url": "https://www.doctolib.fr/dentiste/paris/jean-dupont"}) user: "Reserve a table at https://www.opentable.com/r/acme-bistro" -> call import_booking_url({"booking_url": "https://www.opentable.com/r/acme-bistro", "vertical": "restaurants"})

WHEN TO USE: Call this FIRST whenever the user provides a specific booking URL (cal.com/handle, calendly.com/handle/event, doctolib.fr/..., booksy.com/..., opentable.com/r/..., etc.). User patterns that match: 'book me at https://cal.com/...', 'schedule with calendly.com/jane/intro', 'reserve a table at opentable.com/r/...', 'I want to book this dentist: https://www.doctolib.fr/...'. After importing, the returned smb_id can be passed straight to schedule_appointment. WHEN NOT TO USE: Do not use if the user only describes a business by name without a URL — call find_business instead. Do not use for arbitrary websites that are not on the supported booking-platform list (use /supply/platforms to see all 12). COST: free (no credits) - but requires a free email-verified key LATENCY: ~600ms

ParametersJSON Schema
NameRequiredDescriptionDefault
verticalNoBest-guess vertical. If omitted, inferred from the platform (e.g., Doctolib -> healthcare, OpenTable -> restaurants).
booking_urlYesFull URL the user supplied. Must point at one of the 12 supported booking platforms; auto-detected from the host.
capabilitiesNoFree-form capability tags (e.g., ['haircut','color','blowdry']).
country_codeNoISO 3166-1 alpha-2 (e.g. 'US', 'FR'). Used for compliance routing on later send_message calls.
business_nameNoOptional override. If omitted, the business name is auto-extracted from the page's <title> or og:title.
contact_emailNoOptional.
contact_phoneNoOptional. If omitted, the platform integration handles outreach.
idempotency_keyNoOptional client-supplied key for safe retries. Replaying the same key within 24h returns the original receipt - the operation is NOT re-executed and NOT re-charged.

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the idempotentHint annotation, the description explains idempotency semantics ('calling twice returns the same smb_id'), discloses cost ('free, no credits'), latency (~600ms), and the email-verified key requirement. This is meaningful behavioral context that annotations do not provide. No contradiction with 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 structured with clear sections (purpose, examples, WHEN TO USE, WHEN NOT TO USE, cost, latency). Some redundancy exists between the example queries and the WHEN TO USE patterns, but the examples earn their place by showing parameter mapping.

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?

For an 8-parameter tool with no output schema, the description tells the agent everything needed: the core transformation, idempotent behavior, supported platforms, success path to schedule_appointment, and exclusions. No critical operational detail is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the schema documents all 8 parameters. The description adds value with concrete example user queries mapped to exact parameter values, demonstrating how to populate booking_url and vertical for different platforms. This goes beyond the schema's dry constraints.

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?

Description states a specific verb ('Turn') and resource ('public booking URL') into a concrete artifact ('callable smb_id'), and immediately connects to sibling tools. It distinguishes itself from find_business in the WHEN NOT TO USE section, so the agent understands exactly what this tool is and is not.

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?

WHEN TO USE and WHEN NOT TO USE sections are explicit, with example user queries and routing to find_business for non-URL requests. It also directs to /supply/platforms for unsupported websites, leaving no ambiguity about when to invoke this tool.

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

preview_costA
Read-onlyIdempotent
Inspect

Return an expected cost estimate, latency estimate, and success-probability estimate for a proposed call before execution. Returns the exact price when it is fixed, and a min/max range when the cost depends on channel or outcome. It does not promise an accuracy percentage - check cost_range.

EXAMPLE USER QUERIES THAT MATCH THIS TOOL: user: "How much will this SMS cost me?" -> call preview_cost({"operation": "send_message", "params": {"preferred_channel": "sms"}}) user: "Estimate the cost of booking via voice fallback" -> call preview_cost({"operation": "schedule_appointment", "params": {"preferred_channel": "voice"}})

WHEN TO USE: Use before any operation when the agent is operating under a budget constraint and needs to decide whether to proceed. WHEN NOT TO USE: Do not use in a hot loop — cache the result for at least 60 seconds if repeating the same preview. COST: free - no key required LATENCY: ~100ms

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesThe same request body you would pass to the operation
operationYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark it readOnly and idempotent, and the description adds complementary context: it does not promise an accuracy percentage, returns exact vs range, requires no key, and has ~100ms latency. No contradiction with annotations.

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 core behavior is front-loaded, and the formatted examples, usage guidance, cost, and latency each add non-redundant information. It is longer than minimal but every section earns its place.

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?

With no output schema, the description covers return behavior (fixed vs range, no accuracy promise) and operational constraints (cache, key-free, latency), but it does not spell out the exact output field names beyond cost_range. This is a minor gap in an otherwise complete definition.

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

Parameters4/5

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

With 50% schema coverage (operation is undescribed), the examples compensate by showing valid operation values and the nested params shape. It could go further by enumerating valid operation names or constraints, but it adds substantial meaning beyond the bare schema.

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 specific verb and resource: it returns cost, latency, and success-probability estimates for a proposed call before execution, and even clarifies fixed vs min/max pricing. This clearly distinguishes preview_cost from its siblings, none of which are preview/cost 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 provides explicit WHEN TO USE ('under a budget constraint...before any operation') and WHEN NOT TO USE ('do not use in a hot loop...cache for at least 60 seconds'). The example queries also give concrete triggers.

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

schedule_appointmentA
Destructive
Inspect

Availability lookup, hold, confirm, reschedule, or cancel appointments with an SMB. Routes through the SMB's native booking system if available, falls back to voice AI or web form.

EXAMPLE USER QUERIES THAT MATCH THIS TOOL: user: "Book the haircut for next Tuesday at 3pm" -> call schedule_appointment({"smb_id": "smb_imp_abc", "action": "book", "service": "haircut"}) user: "Cancel my Friday appointment at smb_xyz" -> call schedule_appointment({"smb_id": "smb_xyz", "action": "cancel"}) user: "Reschedule my dental cleaning to next week" -> call schedule_appointment({"smb_id": "smb_imp_xyz", "action": "reschedule"})

WHEN TO USE: Use when an agent needs to book, reschedule, or cancel a specific appointment with a specific SMB. Requires a verified smb_id. WHEN NOT TO USE: Do not use for bulk scheduling. Do not use without a verified SMB — call find_business and verify_business first if needed. COST: from $0.15 per_call_variable (see preview_cost for exact) LATENCY: ~5000ms EXECUTION: async_by_default (use get_outcome to retrieve result)

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNo
actionYes
smb_idYes
serviceNo
customerNo
requested_timeNo
idempotency_keyNoOptional client-supplied key for safe retries. Replaying the same key within 24h returns the original receipt - the operation is NOT re-executed and NOT re-charged.
existing_appointment_idNoRequired for reschedule/cancel

TDQS

A4.1/5.0
Behavior4/5

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

With annotations already marking this as readOnlyHint=false, destructiveHint=true, and idempotentHint=false, the description still adds valuable behavioral context: routing fallback (native booking -> voice AI/web form), async execution via get_outcome, and cost/latency estimates. It does not explain hold/confirm semantics or side-effect boundaries, so a small gap remains.

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-structured with headings such as WHEN TO USE, COST, LATENCY, and EXECUTION, and the purpose is front-loaded. Some repetition of 'book/reschedule/cancel' exists across the opening, examples, and usage rules, but the content remains scannable and useful.

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

Completeness3/5

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

Given the tool's complexity (8 parameters, nested objects, no output schema), the description provides necessary routing, cost, latency, and async guidance, but it lacks parameter-level detail and does not explain what get_outcome returns. Since no output schema exists, the missing return-value information is a meaningful gap.

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

Parameters2/5

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

Schema description coverage is only 25%, so the description must compensate, but it only illustrates smb_id, action, and service. The example calls omit required or semantically important fields: a 'cancel' example has no existing_appointment_id, and a time-based booking example has no requested_time, which weakens the tool's value as parameter documentation.

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 concrete verb set and resource: 'Availability lookup, hold, confirm, reschedule, or cancel appointments with an SMB.' It is not a tautology, and it distinguishes itself from siblings such as find_business, verify_business, and get_outcome by stating its role in the booking workflow and pointing to those tools where relevant.

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 provides explicit WHEN TO USE and WHEN NOT TO USE guidance, including the requirement for a verified smb_id and the instruction to call find_business and verify_business first if needed. It also tells the agent to use preview_cost for exact pricing and get_outcome for async results, making routing decisions clear.

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

self_testA
Read-onlyIdempotent
Inspect

Service health probe: runs 6 internal checks and reports how many passed. Confirms the server is up and responding - it does NOT probe each tool individually. Use to verify connectivity before production use.

EXAMPLE USER QUERIES THAT MATCH THIS TOOL: user: "Run a health check before I send the broadcast" -> call self_test({})

WHEN TO USE: Use at agent startup, before high-stakes task sequences, or after receiving unexpected errors to check if the service is degraded. WHEN NOT TO USE: Do not call more than once per minute in production. COST: free - no key required LATENCY: ~200ms

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark the tool read-only and non-destructive. The description goes further by disclosing it runs 6 internal checks, reports a pass count, does not probe individual tools, requires no key, costs nothing, has ~200ms latency, and has a rate-limit consideration. No contradiction with annotations.

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 well-structured and front-loaded: purpose comes first, followed by an example, when-to-use/not-to-use rules, cost, and latency. Every section earns its place and contributes to an agent's operational decision-making.

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?

For a no-parameter, read-only health check, the description is complete: it states scope, exclusions, usage timing, rate limits, authentication requirements, cost, latency, and expected outcome ('reports how many passed'). No output schema exists, but the description gives enough for an agent to interpret the result.

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

Parameters4/5

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

The tool has zero parameters and 100% schema coverage, so the schema fully defines the calling contract. The description reinforces this with an example call of self_test({}) and adds no unnecessary parameter details, which is appropriate for a no-parameter tool.

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 clearly states a specific action and resource: a 'Service health probe' that 'runs 6 internal checks and reports how many passed.' It explicitly says it does NOT probe each tool individually, which differentiates it from status/verification siblings and removes ambiguity about its scope.

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?

The description gives explicit WHEN TO USE guidance: at agent startup, before high-stakes task sequences, and after unexpected errors. It also gives a WHEN NOT TO USE rule (do not call more than once per minute in production) and clarifies that per-tool probing is out of scope.

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

verify_businessA
Read-onlyIdempotent
Inspect

Look up what we know about a business in our supply network: its contact channels, capabilities, and when the record was last verified. This is a DIRECTORY LOOKUP - it does not contact the business.

EXAMPLE USER QUERIES THAT MATCH THIS TOOL: user: "Confirm smb_imp_abc actually does emergency plumbing" -> call verify_business({"smb_id": "smb_imp_abc", "capability_to_verify": "emergency_plumbing"})

WHEN TO USE: Use before sending communications or scheduling if you have an unverified SMB identifier, or if the agent's task requires confirmed capability (e.g., 'I need to be sure they do emergency plumbing'). WHEN NOT TO USE: Do not use if the SMB was returned from find_business within the last 24 hours — those results are already verified. COST: free - no key required LATENCY: ~500ms

ParametersJSON Schema
NameRequiredDescriptionDefault
smb_idYes
capability_to_verifyNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark the call as read-only, idempotent, and non-destructive, so the added value comes from the statements that this is a directory lookup and does not contact the business. It also discloses cost and latency, which help an agent decide whether this call is the right choice under constraints.

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 content is organized into short labeled sections with the core semantics first and no filler. The example, use guidance, and cost/latency notes each serve a distinct decision-making purpose.

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?

Without an output schema, the description names the returned business facts (contact channels, capabilities, last-verified date) so an agent knows what to expect. It could be fully complete by specifying what happens for an unknown smb_id or an unverified capability, but the core call context is well covered.

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?

Schema descriptions are 0% covered, so the description must compensate; it does through a concrete example mapping smb_id and capability_to_verify to values. However, it never states that capability_to_verify is optional or whether it expects a controlled vocabulary, leaving some ambiguity for a non-example call.

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 specific verb-resource pair ('look up what we know about a business') and immediately clarifies the non-contact directory nature, setting it apart from any live-action tool. The WHEN NOT TO USE section also disambiguates it from find_business, which is the closest sibling.

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 names when to use the tool (before communications/scheduling with unverified SMB identifiers or when confirmed capability is required) and when not to use it (within 24 hours after find_business). The example user query grounds the trigger in a realistic agent task.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updates
    • First observedcheck_booking_link
    • First observedfind_business
    • First observedget_outcome
    • First observedget_status
    • First observedimport_booking_url
    • First observedpreview_cost
    • First observedschedule_appointment
    • First observedself_test
    • First observedverify_business

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool maps to a distinct stage or concern: link preflight vs import, business discovery vs verification, scheduling, async status/outcome, cost preview, and health. The closest pair (check_booking_link and import_booking_url) is explicitly differentiated as a free guard vs actual registration.

Naming Consistency4/5

Nearly all tools follow a consistent verb_noun snake_case pattern such as find_business, verify_business, schedule_appointment, and get_status. The only real deviation is self_test, which is a standard health-check name but not verb_noun.

Tool Count5/5

Nine tools is well-scoped for an appointment-booking service that also needs async operation tracking, cost estimation, and health checks. Each tool has a clear role and none feel redundant or tacked on.

Completeness4/5

The toolset covers the main lifecycle: find or import an SMB, verify it, schedule/cancel/reschedule, poll status, retrieve outcomes, and preview costs. Minor gaps exist—send_message and capture_lead are referenced as downstream operations but not exposed, and there is no direct tool for listing supported platforms.