Skip to main content
Glama

CoreLoop Business Network

Server Details

Search real businesses, then read profiles, services and hours or contact them, in one endpoint.

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

Available Tools

7 tools
check_business_availabilityA
Read-only
Inspect

One business's opening hours, whether it is open right now, and when it next opens. Phase 1 returns published hours, not bookable slots.

ParametersJSON Schema
NameRequiredDescriptionDefault
businessYesWhich business to ask: its CoreLoop slug, or the `business_id` returned by search_businesses. `business_id` is an opaque, stable, public routing identifier — safe to store and re-use across sessions, unchanged by a rename or a slug change, and carrying no sensitive information. Pass back exactly the value search_businesses gave you: do not parse it, do not infer meaning from its format, and do not construct one.
location_idNoWhich location's hours to return (id from get_info locations[]). Defaults to the primary location.

Output Schema

ParametersJSON Schema
NameRequiredDescription
localeNo
businessNo
timezoneNo
always_openNo
data_sourceNo
is_open_nowNo
location_idNo
last_updatedNo
next_open_atNo
location_labelNo
operating_hoursNo

TDQS

A3.7/5.0
Behavior3/5

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

The annotation readOnlyHint=true already signals a safe read operation. The description adds that it returns published hours not bookable slots, which is a useful limitation, but does not disclose other behaviors like network effects, rate limits, or what happens if the business is not found. 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 two sentences, front-loaded with the core purpose, and adds the Phase 1 distinction. Zero waste.

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?

Given the tool has an output schema and rich parameter descriptions, the description is sufficient for basic use. The 'Phase 1' note clarifies scope. Slightly missing is explicit guidance on when this tool is preferred over competitors, but overall adequate.

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 parameters are extensively described. The description adds the distinction between published hours and bookable slots, but the schema already covers all parameter semantics including the business_id opaque routing id. The description's 'Phase 1' note adds context but is not necessary for parameter usage.

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 description clearly states the tool returns a business's opening hours, current open status, and next opening time. It also distinguishes from 'bookable slots' and implicitly from siblings like search_businesses, though it doesn't explicitly differentiate from get_business_info which might also touch hours.

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

Usage Guidelines3/5

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

The description gives a hint about context ('Phase 1 returns published hours, not bookable slots'), but does not explicitly state when to use this vs. get_business_info or other sibling tools. Usage context is implied for checking availability, but no clear alternatives or exclusions are provided.

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

compare_business_servicesA
Read-only
Inspect

Compare one business's services within a category or keyword, with a price/duration summary. Each row reports match_type, so you can tell an exact category hit from an incidental keyword.

ParametersJSON Schema
NameRequiredDescriptionDefault
businessYesWhich business to ask: its CoreLoop slug, or the `business_id` returned by search_businesses. `business_id` is an opaque, stable, public routing identifier — safe to store and re-use across sessions, unchanged by a rename or a slug change, and carrying no sensitive information. Pass back exactly the value search_businesses gave you: do not parse it, do not infer meaning from its format, and do not construct one.
compare_byNoRestrict the comparison to these fields. Recognised values: price, duration, description, includes (name, category and match_type are always present; unrecognised values are ignored). Omit for the full comparison view.
service_typeYesService category or keyword to compare. Matches category exactly first, then service name/description contains.

Output Schema

ParametersJSON Schema
NameRequiredDescription
localeNo
businessNo
servicesNo
verifiedNo
suggestionNo
data_sourceNo
last_updatedNo
service_typeNo
business_nameNo
comparison_summaryNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, and the description is consistent: 'Compare' and 'summary' are read-oriented operations, so there is no annotation contradiction. The description adds useful behavioral nuance beyond the annotations by explaining that each row reports match_type and that the results distinguish exact category hits from incidental keyword matches. It could disclose more (e.g., behavior when a business has no matching services), but for a read-only comparison tool the bar is met.

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?

Two sentences, each earning its place: the first delivers the tool's action and output type, the second highlights a distinguishing behavioral feature of the results. Information is front-loaded; the most decision-relevant detail ('Compare one business's services') comes first. There is no filler, tangential context, or repetition of schema content.

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?

Given the rich input schema, output schema presence, and read-only annotations, the description does not need to restate returns or parameter details. It meaningfully covers the usage scenario and the match_type nuance. Minor gap: the description does not explicitly indicate what happens when no services match or when compare_by is omitted, though the schema already covers the compare_by omission case.

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 is 100% covered with rich per-parameter descriptions: business explains slug vs business_id semantics, service_type explains exact-match-then-containswith match order, and compare_by documents recognized values including omission behavior. The description itself adds only a high-level restatement of the 'category or keyword' concept and the price/duration summary, which echo what the schema already documents. With full schema coverage, baseline 3 is appropriate; the description does not meaningfully deepen parameter understanding.

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 description states a specific verb ('Compare'), a precise resource (one business's services), a scoping dimension (category or keyword), and an explicit result type (price/duration summary), making the core purpose clear. It also adds the match_type detail, which meaningfully distinguishes exact category hits from incidental keyword matches. However, it does not explicitly name its closest sibling alternatives (e.g., get_business_services or search_businesses), so sibling differentiation relies on inference rather than statement.

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

Usage Guidelines4/5

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

The description conveys clear context for when the tool is appropriate: when the agent needs a comparative price/duration view of one business's services within a category or keyword, distinguishing exact from incidental matches. It does not, however, provide explicit when-not-to-use guidance or explicitly name alternatives such as get_business_services or search_businesses. The usage scenario is clear enough that the agent is unlikely to misuse it, but exclusions are not stated.

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

get_business_agentA
Read-only
Inspect

The canonical ids and endpoint URLs for one business — its own MCP and A2A endpoints, agent card, llms.txt and public page, under protocol_urls. A null URL means that surface is switched off for this business right now: do not construct it yourself, and use one of the non-null surfaces instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
businessYesWhich business to ask: its CoreLoop slug, or the `business_id` returned by search_businesses. `business_id` is an opaque, stable, public routing identifier — safe to store and re-use across sessions, unchanged by a rename or a slug change, and carrying no sensitive information. Pass back exactly the value search_businesses gave you: do not parse it, do not infer meaning from its format, and do not construct one.

Output Schema

ParametersJSON Schema
NameRequiredDescription
businessNo
verifiedNo
protocolsNo
data_sourceNo
resolved_atNo
protocol_urlsNo
content_localeNo
tools_availableNo
available_localesNo

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description discloses the important null-means-disabled behavior and warns against constructing URLs. This enriches the operational understanding without repeating what the annotation already communicates.

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 two dense sentences: one for core purpose and one for the key behavioral caveat. It is front-loaded, free of filler, and every sentence adds value.

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?

Given this is a simple read-only tool with one parameter, a complete input schema, and an output schema, this description covers all operational essentials. The null-URL behavior and non-construction rule are exactly the additional context an agent needs.

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 tool description itself does not add parameter semantics, but schema description coverage is 100% and the `business` parameter is already richly explained in the input schema with opaque-ID guidance and pass-through instructions. Baseline 3 applies.

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 the function: retrieving canonical IDs and endpoint URLs for one business, including MCP/A2A endpoints, agent card, llms.txt, and public page under `protocol_urls`. This is a specific verb-plus-resource definition that distinguishes it from siblings like search_businesses or get_business_info.

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

Usage Guidelines3/5

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

The description provides useful within-tool guidance about null URLs: do not construct them and use a non-null surface instead. However, it does not explicitly state when to prefer this tool over siblings such as get_business_info or compare_business_services, so the usage context is clear but not fully explicit.

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

get_business_infoA
Read-only
Inspect

Full profile for one business found through search_businesses: identity, locations, contact, policies, images, public documents and the languages it publishes in.

ParametersJSON Schema
NameRequiredDescriptionDefault
businessYesWhich business to ask: its CoreLoop slug, or the `business_id` returned by search_businesses. `business_id` is an opaque, stable, public routing identifier — safe to store and re-use across sessions, unchanged by a rename or a slug change, and carrying no sensitive information. Pass back exactly the value search_businesses gave you: do not parse it, do not infer meaning from its format, and do not construct one.
sectionsNoWhich sections to include. Defaults to all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNo
imagesNo
intakeNo
localeNo
contactNo
taglineNo
businessNo
categoryNo
keywordsNo
locationNo
policiesNo
verifiedNo
documentsNo
locationsNo
data_sourceNo
descriptionNo
last_updatedNo
subcategoriesNo
call_to_actionNo
tools_availableNo
available_localesNo
protocols_availableNo
asserts_no_physical_locationNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the bar for disclosure is lower. The description adds value by listing what the profile includes (identity, locations, contact, policies, images, public documents, languages), which goes beyond the annotations and helps the agent understand the data returned. No contradictions.

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?

A single, dense sentence that is front-loaded with 'Full profile' and immediately lists contents. Zero filler or redundant phrasing—every word contributes to the meaning.

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?

Given the existence of an output schema and 100% parameter schema coverage, the description does not need to explain return values. It provides a clear overview of the tool's scope, but could mention when to use it over siblings for full completeness; however, that falls more under usage guidance than contextual completeness.

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 provides 100% coverage for both parameters, including detailed guidance on the business field (Opaque, stable, do not parse) and the sections enum. The tool description itself adds no additional parameter details, so per the rubric the baseline of 3 applies.

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+resource: "Full profile for one business" and enumerates the contents (identity, locations, contact, policies, images, public documents, languages). This clearly distinguishes it from sibling tools like get_business_services or check_business_availability, which have different scopes.

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

Usage Guidelines4/5

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

It explicitly says the tool is 'for one business found through search_businesses', implying it should be used after a search and for a single entity. However, it does not explicitly state when not to use it or how it compares to alternatives like get_business_agent or compare_business_services, so only partial guidance is provided.

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

get_business_servicesA
Read-only
Inspect

One business's service catalogue, with filtering, sorting and pagination. Page with offset/limit and read has_more — the order is stable, so a second page will not repeat or skip a service.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNoPagination position: omit for the first page, then pass back the `next_offset` token from the previous response VERBATIM. The token is opaque and bound to the catalogue as it was when the page was issued — if services were added, removed or reordered since, the call returns `cursor_expired` and you should restart without an offset. A plain integer offset is still accepted in EITHER spelling — as a JSON number (20) or as its exact string form ("20") — and skips that many results with no catalogue binding. Only a string that is neither an exact integer nor a token this endpoint issued (for example a mangled or truncated token) is refused with `cursor_expired` rather than resumed.
sort_byNoField to sort by. Recognised values: price, duration, name, category (unrecognised values are ignored — results stay unsorted).
businessYesWhich business to ask: its CoreLoop slug, or the `business_id` returned by search_businesses. `business_id` is an opaque, stable, public routing identifier — safe to store and re-use across sessions, unchanged by a rename or a slug change, and carrying no sensitive information. Pass back exactly the value search_businesses gave you: do not parse it, do not infer meaning from its format, and do not construct one.
categoryNoFilter by service category
max_priceNoOnly services priced at or below this amount
min_priceNoOnly services priced at or above this amount
price_typeNoFilter by price type (e.g. fixed, from, range, hourly, free, contact, or unpublished for services with no price set)
sort_orderNoSort direction (defaults to asc)
max_durationNoOnly services lasting at most this many minutes
min_durationNoOnly services lasting at least this many minutes

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNo
totalNo
localeNo
offsetNo
restartNo
businessNo
has_moreNo
servicesNo
data_sourceNo
next_offsetNo
last_updatedNo
returned_countNo

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond readOnlyHint=true by disclosing the pagination contract: stable ordering guarantees no repeats or skips across pages, has_more signals continuation, and the offset schema documents cursor_expired failure behavior and opaque token handling. The sort_by note that unrecognized values are silently ignored is a non-obvious behavioral trait an agent must know to avoid misinterpreting results.

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?

Two sentences with zero waste: the first front-loads purpose and capabilities, the second states the single most important behavioral guarantee (stable ordering preventing repeats/skips). Every clause earns its place, and the critical pagination contract is stated up front.

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 an 11-parameter read-only catalogue tool, the description plus a 91%-covered schema and an output schema cover the essentials: scope, filtering/sorting/pagination mechanics, cursor error semantics, and return-value shape via the output schema. The only minor gap is no direct statement of error behavior beyond cursor_expired, which the offset parameter documentation largely handles.

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 description coverage is 91%, so the baseline is 3 even though the tool description itself adds minimal parameter detail — it only frames offset/limit/has_more as the pagination mechanism. The heavy lifting is done by the exemplary schema descriptions (cursor token verbatim rules, integer-vs-string offset acceptance, business_id opacity and stability). The description adds no meaning beyond that, so baseline 3 applies.

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 and resource — 'One business's service catalogue' — with explicit capabilities: filtering, sorting, and pagination. The scope qualifier 'One business's' distinguishes it from siblings like search_businesses (multi-business discovery) and compare_business_services (cross-business comparison), so an agent can select it correctly without opening the schema.

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

Usage Guidelines4/5

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

The 'One business's' scope clearly signals the selection condition: use this when a specific business is already identified. The `business` parameter description adds workflow guidance by routing the agent through search_businesses to obtain a business_id. However, there are no explicit exclusions or alternative routing (e.g., when to prefer compare_business_services), so it just misses the top bar.

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

search_businessesA
Read-only
Inspect

Search the CoreLoop business directory. Start here: every other tool on this endpoint needs a business, and each result carries the business_id and slug you pass to them as the business argument. business_id is a PUBLIC, OPAQUE, STABLE routing identifier: it is safe to store and re-use across sessions, it stays the same when a business renames itself or changes its slug, and it carries no sensitive information. Treat it as a token — do not parse it, do not derive meaning from its format, and do not construct one. Pass back exactly the value you were given. A result with asserts_no_physical_location: true has stated that it has no premises (consultants, trades, online-only) — it is intentionally absent from city search rather than missing data. false means no such statement was made; it does NOT imply premises. Results are returned in your requested language when the business has published a translation: send ?locale=<code> on the endpoint URL (takes precedence) or an Accept-Language header. Each result reports the language it is written in (locale), the business's original language (content_locale), and every language it is available in (available_locales). mcp_url, a2a_url and page_url — and every URL inside protocol_urls — are null when that surface is currently switched off for the business: a null is intentional (do not construct the URL yourself), and the business remains reachable through its non-null surfaces. data_source: "directory" marks these rows as the search projection; call get_business_info for the live profile. PAGING: one call returns at most limit results. Read has_more — a short page is not proof of the end — and pass next_cursor back as cursor for the next page. The cursor is opaque and bound to the filters and sort it was issued for: change any of them and it is rejected, so start a new search instead. limit may change between pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoFilter by city (case-insensitive exact match)
limitNoMaximum results per page (1-20). Out-of-range values are clamped, not rejected.
queryNoSearch query (business name or keyword)
cursorNoContinuation token from a previous response's `next_cursor`. Omit for the first page. It is opaque and bound to the filters and sort it was issued for: pass it back byte-for-byte, and change nothing except `limit` between pages — any other change makes it invalid and you must start a new search. At most 100 results are reachable by paging; narrow the filters to see beyond that.
sort_byNoSort results. Default: relevance
categoryNoFilter by business category (case-insensitive exact match). Canonical categories: Accounting & Tax, Agriculture & Farming, Automotive, Beauty & Wellness, Childcare & Family, Cleaning Services, Construction & Renovation, Creative & Arts, Education & Training, Events & Entertainment, Financial Services, Fitness & Sports, Food & Beverage, Funeral & Memorial, Health & Medical, Home Services, Legal Services, Media & Photography, Nonprofit & Community, Personal Care & Therapy, Pets & Animals, Professional Services, Real Estate, Religious & Spiritual, Retail & Shopping, Security Services, Sports & Recreation, Technology & IT, Transportation & Logistics, Travel & Tourism, Other
min_ratingNoMinimum average rating (0-5)
capabilitiesNoFilter by capability tags (e.g. real_time_booking, live_pricing, verified)
service_typeNoFilter by service type keyword
verified_onlyNoOnly show verified businesses
has_live_bookingNoOnly show businesses with real-time booking
has_live_catalogNoOnly show businesses with live catalog pricing

Output Schema

ParametersJSON Schema
NameRequiredDescription
has_moreNoTrue when more results exist beyond this page. Read this rather than inferring from `returned_count`: a short page is not proof of the end.
businessesNo
next_cursorNoOpaque continuation token, or null on the last page. Pass it back unchanged as `cursor` to get the next page. It is bound to this search's filters and sort — change them and it is rejected, so start a new search instead. Do not parse, modify or construct one.
returned_countNo
requested_localeNo

TDQS

A4.8/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden. It thoroughly discloses behavior: null URL semantics (do not construct yourself), asserts_no_physical_location meaning, locale/language behavior, cursor binding to filters, limit clamping, data_source meaning, and the 100-result paging limit. This is exceptionally comprehensive.

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 thorough and covers critical details (ID safety, language, paging, availability). It is dense but front-loaded with the purpose. Though long, every sentence adds value; the only minor deduction is that the length might be overwhelming, but it's structured logically.

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?

Given the 10 parametersaging rules, language behavior, and null semantics, the description covers everything needed for correct use. The output schema is not provided but the description explains key result fields (business_id, slug, asserts_no_physical_location, locale fields). Complete for a complex search tool.

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 description complements well the schema by explaining the `business_id` token semanticscars (public, opaque, stable), the cursor binding rules, and the meaning of nulls. However, it doesn't deeply elaborate on each parameter beyond what the schema provides—the schema already covers the fields well, so the baseline is 3 and the added context on business_id and cursor pushes it to 4.

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 the tool searches the CoreLoop business directory must start here and explicitly mentions that each result carries the business_id and slug needed by other tools. It distinguishes this from other tools by positioning it as the entry point that returns identifiers used elsewhere.

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 guidance on when to use this tool (start here since every other tool needs a business), explains the importance of business_id, and even mentions alternative surfaces (get_business_info for live profile). The paging instructions with has_more and next_cursor are clear usage directives.

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

send_business_inquiryAInspect

Send a message to one business. This has a real side effect — it notifies the owner and delivers an email — and is rate-limited both per business and across this directory, so send one considered inquiry rather than a broadcast.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesInquiry message (plain text, max 2000 chars)
subjectNo
businessYesWhich business to ask: its CoreLoop slug, or the `business_id` returned by search_businesses. `business_id` is an opaque, stable, public routing identifier — safe to store and re-use across sessions, unchanged by a rename or a slug change, and carrying no sensitive information. Pass back exactly the value search_businesses gave you: do not parse it, do not infer meaning from its format, and do not construct one.
sender_nameYes
sender_emailNo
sender_phoneNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
messageNo
businessNo

TDQS

A4/5.0
Behavior4/5

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

Honestly discloses the real side effects (notifies owner, delivers email) and both scopes of rate-limiting (per business and per directory), all consistent with annotations (readOnlyHint=false, idempotentHint=false). Adds meaningful context beyond the annotations, though it stops short of describing duplicate-send handling or failure semantics.

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?

Two sentences, zero filler. The core purpose is front-loaded and the second sentence packs side-effect and usage guidance with real informational value. Every clause 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?

For a mutation tool with real-world effects, the description covers the crucial operational traits: side effects, rate limits, and single-target intent. The output schema covers return-value expectations, and annotations cover mutability, so the description fills the remaining critical gaps without redundancy.

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?

With schema coverage at 33%, the description only partially compensates. It reinforces the message and business intent ('one business'), but subject, sender_name, sender_email, and sender_phone are undocumented in both schema and description. The description does not extend meaning for the majority of parameters, though the schema's business field carries strong semantics on its own.

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?

Opens with a specific verb+resource ('Send a message to one business') and immediately differentiates from the read-only siblings (check/compare/get/search) as the sole write tool. The 'one business' scoping plus the side-effect disclosure leaves no ambiguity about what action this performs.

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

Usage Guidelines3/5

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

The description gives actionable behavioral guidance ('send one considered inquiry rather than a broadcast') informed by rate limits, but it does not explicitly articulate when to use this tool vs. alternatives or state prerequisites. The schema's business parameter references search_businesses, which helps, but that lives in the schema, not the description.

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. 1 tool update
    • Changedget_business_services8 fields changed
      • addedInput schema / properties / offset / anyOf
        Added value: +[
        +  {
        +    "maximum": 10000,
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  {
        +    "maxLength": 64,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / offset / description
        Previous value: -"Number of results to skip (pagination)"New value: +"Pagination position: omit for the first page, then pass back the `next_offset` token from the previous response VERBATIM. The token is opaque and bound to the catalogue as it was when the page was issued — if services were added, removed or reordered since, the call returns `cursor_expired` and you should restart without an offset. A plain integer offset is still accepted in EITHER spelling — as a JSON number (20) or as its exact string form (\"20\") — and skips that many results with no catalogue binding. Only a string that is neither an exact integer nor a token this endpoint issued (for example a mangled or truncated token) is refused with `cursor_expired` rather than resumed."
      • removedInput schema / properties / offset / maximum
        Removed value: -10000
      • removedInput schema / properties / offset / minimum
        Removed value: -0
      • removedInput schema / properties / offset / type
        Removed value: -"integer"
      • addedOutput schema / properties / next_offset
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / restart
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / returned_count
        Added value: +{
        +  "type": "integer"
        +}
  2. 2 tool updates
    • Changedcompare_business_services1 field changed
      • changedOutput schema / properties / services / items / properties / price_type / enum
        Previous value: -[
        -  "fixed",
        -  "from",
        -  "range",
        -  "hourly",
        -  "free",
        -  "contact",
        -  "by_quote",
        -  "unpublished",
        -  null
        -]New value: +[
        +  "fixed",
        +  "from",
        +  "range",
        +  "hourly",
        +  "free",
        +  "contact",
        +  "recurring",
        +  "by_quote",
        +  "unpublished",
        +  null
        +]
    • Changedget_business_services1 field changed
      • changedOutput schema / properties / services / items / properties / price_type / enum
        Previous value: -[
        -  "fixed",
        -  "from",
        -  "range",
        -  "hourly",
        -  "free",
        -  "contact",
        -  "by_quote",
        -  "unpublished",
        -  null
        -]New value: +[
        +  "fixed",
        +  "from",
        +  "range",
        +  "hourly",
        +  "free",
        +  "contact",
        +  "recurring",
        +  "by_quote",
        +  "unpublished",
        +  null
        +]
  3. 7 tool updates
    • First observedcheck_business_availability
    • First observedcompare_business_services
    • First observedget_business_agent
    • First observedget_business_info
    • First observedget_business_services
    • First observedsearch_businesses
    • First observedsend_business_inquiry

Frequently Asked Questions

Discussions

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides AI agents with access to real, verifiable businesses with provenance and source URLs, enabling natural-language business search and profile retrieval.
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Search for local businesses worldwide. Structured data optimized for AI agents. • Search Millions of businesses over 49 countries (Europe, Northamerica, Southamerica, Asia, Oceania) • Quality & demand scoring for every business • Ranking based on real user click-through data • No API key needed, free access • Rate limit: 500 requests/hour per IP
    6
    1
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Search for local businesses worldwide. Structured data optimized for AI agents. • Search Millions of businesses over 49 countries (Europe, Northamerica, Southamerica, Asia, Oceania) • Quality & demand scoring for every business • Ranking based on real user click-through data • No API key needed, free access • Rate limit: 500 requests/hour per IP
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables agents to search, retrieve, and contribute business data from a directory of 11M+ businesses across 195 countries, returning markdown prose by default.
    22
    115
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.3/5.0
Disambiguation5/5

Each tool targets a distinct aspect of a business: availability hours, service comparison, agent endpoint metadata, full profile, service catalogue, directory search, and sending inquiries. No two tools overlap in purpose; boundaries are clear.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, with most retrieval tools sharing the get_business_ prefix (get_business_info, get_business_services, get_business_agent) and clear verbs for actions (search, check, compare, send). The pattern is predictable and unambiguous.

Tool Count5/5

Seven tools is well within the ideal 3-15 range and aptly covers the core operations of a business directory: search, view details, services, availability, compare, and inquire. Each tool earns its place with no redundancy.

Completeness5/5

The set covers the full user journey from searching the directory, retrieving business profiles and service details, checking availability, comparing offers, and initiating contact. It also includes agent metadata for programmatic integration. No obvious missing operations for the stated purpose.

Resources