Azul CR — Costa Rica Local Business Data
Server Details
Costa Rica local business directory — verified businesses, jobs, events, specials. Read-only.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 6 tools
Each tool targets a distinct entity type: jobs, businesses, events, specials, or cross-entity search. The main overlap is between search_businesses and semantic_search for business queries, but their descriptions clarify scope: one is business-specific search, the other is cross-content semantic retrieval.
Most tools use a short verb_noun pattern like get_business, get_events, and get_specials, but find_jobs and search_businesses introduce different retrieval verbs, and semantic_search is an adjective_noun construction rather than a verb-led command. The names are readable and all snake_case, but the pattern is not uniform.
Six tools is well-suited to the server's purpose as a read-only local business and activity data provider. Each tool covers a meaningful slice of the domain without unnecessary bloat or duplication.
The server covers the core read-side surface for businesses, jobs, events, and specials, with both direct lookups and search. Minor gaps exist, such as no single-item getters for jobs, events, or specials, but the list tools already return sufficient detail to work around those cases.
Available Tools
6 toolsfind_jobsAInspect
Search for job postings in Costa Rica. Returns title, employer, type (full/part/contract), salary, city, and URL. WhatsApp apply link requires a keyed connection.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City name | |
| limit | No | ||
| industry | No | Industry ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the returned fields and a meaningful prerequisite—'WhatsApp apply link requires a keyed connection'—which signals an auth-dependent behavior not visible in the schema. The 'Search' verb also implicitly indicates a read-only operation, though pagination and rate limits are not addressed.
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 with no wasted words: the primary action and scope are front-loaded, return fields are compactly listed, and the connection caveat is appended cleanly. Every sentence 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?
With no output schema or annotations, the description usefully names the key returned fields, geographic scope, and a special condition about the WhatsApp apply link. It stops short of explaining parameter combinations or response envelopes, but for a simple search tool it is largely complete.
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 descriptions for city and industry are terse, and the description adds only modest value: it clarifies the geographic scope (Costa Rica) and hints at output-related fields, but does not explain parameter formats or how limit interacts with results. With 67% schema coverage, the description is adequate but not compensatory.
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 ('Search') and resource ('job postings in Costa Rica'), clearly distinguishing this tool from sibling tools focused on businesses, events, specials, or general semantic search. Listing the returned fields further confirms it is a jobs-specific search tool.
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?
No explicit guidance is given on when to use this tool versus the sibling search tools, nor are exclusions or alternatives mentioned. The intended use is inferable from the scope, but the description never tells an agent how to route between find_jobs and search_businesses or semantic_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_businessAInspect
Get public details of a specific business by its slug. Returns name, about, hours, tier, rating, and citation URL. WhatsApp/phone/address require a keyed connection.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The business slug from the URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that this returns public details, lists the specific returned fields, and reveals that WhatsApp/phone/address require a keyed connection—non-obvious behavioral context that goes beyond the schema.
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 compact sentences front-load the core action, then list return fields and access caveat. Every sentence adds value 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?
For a simple one-parameter tool, the description covers the return payload and access limitations. It could explicitly mention when to use this vs search_businesses, but enough context is present for correct invocation.
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% and the slug parameter is already described as 'The business slug from the URL'. The description only repeats 'by its slug', adding no meaningful information beyond the schema.
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?
Description states a specific verb ('Get'), resource ('business'), and identifier ('by its slug'), clearly distinguishing it from siblings like search_businesses which search rather than retrieve a specific record.
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 phrase 'by its slug' implies the tool is for use when a slug is known, but there is no explicit guidance about when to prefer this over search_businesses or other siblings. Usage context is implied, not explicitly contrasted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventsBInspect
List upcoming events in Costa Rica. Returns title, date, venue, city, organizer, and URL.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full behavioral burden. It usefully indicates this is a read-only listing and enumerates the returned fields, but it does not disclose ordering, filtering behavior, pagination, or data freshness. This is adequate but leaves gaps.
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 concise sentences with no filler. The core purpose is front-loaded, and the return-field list is useful because no output schema is provided.
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 simple list tool with two optional parameters, the description gives a clear purpose and return fields. However, it omits parameter behavior and any usage guidance, and since there is no output schema, the description must carry more completeness weight than it does.
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 schema provides no property descriptions (0% coverage), and the description does not mention the 'city' or 'limit' parameters. Their names are somewhat self-explanatory, but the description adds no explicit meaning about how filtering or limiting behaves.
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 verb ('List'), the resource ('upcoming events'), and the geographic scope ('in Costa Rica'). This is enough to distinguish get_events from sibling tools like find_jobs and get_business.
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?
No guidance is given about when to choose get_events over the siblings, nor are there any exclusions or alternative tools mentioned. The intended use is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_specialsCInspect
List active deals and offers in Costa Rica. Returns title, discount, business, city, expiry, and URL. WhatsApp requires a keyed connection.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only mentions that 'WhatsApp requires a keyed connection,' which is vague and incomplete. It does not disclose read-only behavior, authentication requirements beyond that hint, rate limits, or side effects.
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, front-loaded with the core purpose. Efficient with no fluff, but slightly under-specified in content.
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 simple list tool with two parameters, the description should clarify parameter usage and any special connection requirements. It does not explain how 'city' or 'limit' behave, and the WhatsApp mention is cryptic. The output fields are listed, but the tool remains incomplete for reliable invocation.
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 0%, so the description must compensate for the 'city' and 'limit' parameters. It never explains their meaning or effect on results. The description only lists output fields, giving no insight into how parameters control filtering or pagination.
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 clear verb ('List') and resource ('active deals and offers in Costa Rica'), and explicitly lists return fields. It does not differentiate from siblings, but the domain (deals/offers) is distinct enough from jobs, business, events, and search that an agent can infer its purpose.
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?
No guidance on when to use this tool versus siblings like find_jobs or get_events. The description provides no context about scenarios that warrant choosing this tool, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_businessesBInspect
Search for businesses in Costa Rica by keyword, city, or industry. Returns business name, city, industry, hours, tier, and a citation-ready URL on azul.cr. Contact details (WhatsApp/phone) require a keyed connection.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City name (e.g., "San José", "Escazú", "Jacó") | |
| limit | No | Max results (default 10, max 50) | |
| query | No | Search query (e.g., "restaurante", "mecánico", "farmacia") | |
| industry | No | Industry ID (e.g., "food", "tech", "auto", "health", "beauty", "sports", "home") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral burden. It does disclose useful behavioral details: the returned fields and the fact that contact details require a keyed connection. However, it omits other behavioral traits such as pagination behavior, filter combination semantics, ordering, and what 'citation-ready URL' implies, leaving notable gaps.
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 with no filler. It front-loads the action and search criteria, then states the return payload, and closes with the access caveat about contact details. Every sentence 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 read-only search tool, the description covers the essential purpose, output fields, and an important access restriction, which is adequate. But with no annotations, no output schema, and a sibling named semantic_search, missing details about filter combination, pagination, and when semantic_search is preferable make it only minimally complete.
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%, so the input schema already documents all four parameters. The description loosely maps 'keyword, city, or industry' to query, city, and industry, but does not add meaning beyond the schema, such as whether filters combine with AND/OR or how limit interacts with the search.
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 identifies a search tool for businesses in Costa Rica, naming the action and the main filter dimensions: keyword, city, and industry. It is distinct from get_business, find_jobs, get_events, and get_specials, but it does not explicitly differentiate itself from the similarly named sibling semantic_search, so it stops short of a 5.
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 when to use the tool (when searching for businesses) but gives no explicit guidance about choosing it over get_business or semantic_search, and provides no exclusions or prerequisites. The keyed-connection note hints at a limitation but does not explain how that should affect tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
semantic_searchAInspect
AI-powered semantic search across all Azul CR content (businesses, jobs, events, specials). Understands natural language queries like "kid-friendly outdoor activity near the beach" or "dentista que hable inglés en Liberia". Uses bge-m3 vector embeddings for meaning-based matching, fused with keyword search. Returns content snippets with entity type and similarity.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by entity type | |
| limit | No | ||
| query | Yes | Natural language query (Spanish or English, CR voseo supported) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the use of bge-m3 embeddings, fusion with keyword search, and return format (snippets with entity type and similarity). However, it does not explicitly state that it is a read-only operation, nor does it mention rate limits, pagination, or error behavior. It adds useful technical context but is not fully transparent.
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-loading the purpose and immediately providing concrete examples. The technical detail about embeddings is relevant but could be trimmed; overall it is efficient with no fluff.
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 no annotations and no output schema, the description covers the core purpose, language support, technical approach, and return format. It lacks details on limit behavior, empty-result handling, and does not explicitly confirm read-only nature. It is adequate but has gaps that could affect an agent's confidence in edge cases.
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 67% (query and type have descriptions, limit does not). The description adds value by giving example queries and clarifying the type filter scope. However, the limit parameter is not explained anywhere, and the description does not compensate for that missing schema coverage.
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 it is an AI-powered semantic search across all Azul CR content types (businesses, jobs, events, specials), with explicit examples of natural language queries. This distinguishes it from sibling tools like find_jobs or get_business which are specific getters, making the purpose unambiguous.
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 context for when to use it (semantic, natural language queries, multi-language support with CR voseo) and implies it is for cross-content search. However, it does not explicitly state when NOT to use it or name alternatives, leaving some room for interpretation.
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.
6 tool updates
- First observed
find_jobs - First observed
get_business - First observed
get_events - First observed
get_specials - First observed
search_businesses - First observed
semantic_search
Related MCP Connectors
Search and discover local businesses. 30+ categories with verified contact info, hours, and reviews.
Directory and marketplace of local businesses and independent professionals near you.
MONO Social — directory of places, events, and listings.
Verified local business registry for AI agents. Currently serving Malaysia.
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceThe owner-verified local business data + service & menu-price layer for AI agents. Owner-authored business profiles where every response carries provenance — verification level, completeness score, freshness timestamps, and upstream sources. * Search & profiles — find businesses by name, category, city, or geo-radius; full profiles with contacts, hours, media, ratings. * Price layer-
- AlicenseNot gradedqualityDmaintenanceVerified job search: every listing is opened and confirmed live and accepting applicants within the last 72 hours, and re-verified on a rolling clock, so agents can recommend jobs without ghost-job or dead-link risk. Read-only, no auth.MIT
- 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
- AlicenseNot gradedqualityCmaintenanceTravel places directory by 5arz: search 2.5M places, submit businesses and promos (human-reviewed).MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.