CoreLoop Business Network
Server Details
Search real businesses, then read profiles, services and hours or contact them, in one endpoint.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.2/5 across 7 of 7 tools scored.
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.
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.
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.
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.
Available Tools
7 toolscheck_business_availabilityARead-onlyInspect
One business's opening hours, whether it is open right now, and when it next opens. Phase 1 returns published hours, not bookable slots.
| Name | Required | Description | Default |
|---|---|---|---|
| business | Yes | Which 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_id | No | Which location's hours to return (id from get_info locations[]). Defaults to the primary location. |
Output Schema
| Name | Required | Description |
|---|---|---|
| locale | No | |
| business | No | |
| timezone | No | |
| always_open | No | |
| data_source | No | |
| is_open_now | No | |
| location_id | No | |
| last_updated | No | |
| next_open_at | No | |
| location_label | No | |
| operating_hours | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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_servicesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| business | Yes | Which 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_by | No | Restrict 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_type | Yes | Service category or keyword to compare. Matches category exactly first, then service name/description contains. |
Output Schema
| Name | Required | Description |
|---|---|---|
| locale | No | |
| business | No | |
| services | No | |
| verified | No | |
| suggestion | No | |
| data_source | No | |
| last_updated | No | |
| service_type | No | |
| business_name | No | |
| comparison_summary | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds useful behavioral detail by explaining `match_type` as an output field, which helps interpret results, and mentions the price/duration summary. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and a key interpretative detail. Both sentences earn their place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Combined with annotations (read-only) and fully described schema with an output schema, the description sufficiently conveys what the tool does and how results are characterized. It could mention that only a single business is compared, but that is already embedded in 'one business's services.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter's meaning and constraints are fully described in the schema. The tool description adds no new parameter-specific semantics beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Compare'), a resource ('one business's services'), and a scope ('within a category or keyword') with an output summary ('price/duration summary'). It also mentions `match_type` to distinguish exact hits from incidental ones, which differentiates it from siblings like get_business_services or search_businesses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when comparing a single business's service offerings by category or keyword, and highlights the value of `match_type`. However, it does not explicitly reference alternative tools or state when not to use it, so no exclusions are communicated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_business_agentARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| business | Yes | Which 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
| Name | Required | Description |
|---|---|---|
| business | No | |
| verified | No | |
| protocols | No | |
| data_source | No | |
| resolved_at | No | |
| protocol_urls | No | |
| content_locale | No | |
| tools_available | No | |
| available_locales | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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_infoARead-onlyInspect
Full profile for one business found through search_businesses: identity, locations, contact, policies, images, public documents and the languages it publishes in.
| Name | Required | Description | Default |
|---|---|---|---|
| business | Yes | Which 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. | |
| sections | No | Which sections to include. Defaults to all. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| images | No | |
| intake | No | |
| locale | No | |
| contact | No | |
| tagline | No | |
| business | No | |
| category | No | |
| keywords | No | |
| location | No | |
| policies | No | |
| verified | No | |
| documents | No | |
| locations | No | |
| data_source | No | |
| description | No | |
| last_updated | No | |
| subcategories | No | |
| call_to_action | No | |
| tools_available | No | |
| available_locales | No | |
| protocols_available | No | |
| asserts_no_physical_location | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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_servicesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | Number of results to skip (pagination) | |
| sort_by | No | Field to sort by. Recognised values: price, duration, name, category (unrecognised values are ignored — results stay unsorted). | |
| business | Yes | Which 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. | |
| category | No | Filter by service category | |
| max_price | No | Only services priced at or below this amount | |
| min_price | No | Only services priced at or above this amount | |
| price_type | No | Filter by price type (e.g. fixed, from, range, hourly, free, contact, or unpublished for services with no price set) | |
| sort_order | No | Sort direction (defaults to asc) | |
| max_duration | No | Only services lasting at most this many minutes | |
| min_duration | No | Only services lasting at least this many minutes |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | No | |
| total | No | |
| locale | No | |
| offset | No | |
| business | No | |
| has_more | No | |
| services | No | |
| data_source | No | |
| last_updated | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false. The description adds valuable behavioral detail: pagination via offset/limit, the need to read 'has_more', and a stability guarantee that prevents duplicate/skipped services across pages. This goes well beyond the annotations and gives the agent actionable knowledge.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first sentence front-loads the core purpose; the second covers pagination mechanics and the stability guarantee. Every clause earns its place, and the structure is logical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 11 parameters and an output schema, the description captures the essential behavioral context (single-business scope, filtering/sorting/pagination) and specifically highlights the non-obvious pagination guarantee. With annotations and output schema covering safety and return values, the description is sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 91%, so parameters are already well-documented. The description's mention of `offset`/`limit` reinforces but does not add new meaning. With such high schema coverage, the baseline of 3 applies; the description does not compensate for any gaps but does not need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource: 'service catalogue' for 'one business', which clearly distinguishes it from sibling tools like search_businesses (searching for businesses) and get_business_info (business info). It also lists key capabilities (filtering, sorting, pagination), making the tool's purpose immediately obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear scope context: it is for a single business's services. This implies when to use it (when you need a specific business's services) and when not (for cross-business search). It does not explicitly name alternatives or provide exclusionary guidance, so it falls short of a 5 but is stronger than mere implication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_businessesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Filter by city (case-insensitive exact match) | |
| limit | No | Maximum results per page (1-20). Out-of-range values are clamped, not rejected. | |
| query | No | Search query (business name or keyword) | |
| cursor | No | Continuation 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_by | No | Sort results. Default: relevance | |
| category | No | Filter 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_rating | No | Minimum average rating (0-5) | |
| capabilities | No | Filter by capability tags (e.g. real_time_booking, live_pricing, verified) | |
| service_type | No | Filter by service type keyword | |
| verified_only | No | Only show verified businesses | |
| has_live_booking | No | Only show businesses with real-time booking | |
| has_live_catalog | No | Only show businesses with live catalog pricing |
Output Schema
| Name | Required | Description |
|---|---|---|
| has_more | No | True when more results exist beyond this page. Read this rather than inferring from `returned_count`: a short page is not proof of the end. |
| businesses | No | |
| next_cursor | No | Opaque 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_count | No | |
| requested_locale | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Inquiry message (plain text, max 2000 chars) | |
| subject | No | ||
| business | Yes | Which 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_name | Yes | ||
| sender_email | No | ||
| sender_phone | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| message | No | |
| business | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides AI agents with access to real, verifiable businesses with provenance and source URLs, enabling natural-language business search and profile retrieval.2MIT
- AlicenseAqualityDmaintenanceSearch 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 IP61MIT
- Flicense-quality-maintenanceSearch 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
- AlicenseAqualityDmaintenanceEnables agents to search, retrieve, and contribute business data from a directory of 11M+ businesses across 195 countries, returning markdown prose by default.221153MIT