San Juan Puerto Rico Directory
Server Details
Discover Puerto Rico places and events, with canonical links and clearly disclosed sponsorship.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool has a clearly distinct role: discover_listings is the search entry point, get_listing is a single-record detail read, highlighted_services surfaces paid placements only, and list_categories/list_municipalities are pure reference lookups for filter values. The descriptions explicitly separate paid placements from organic results, heading off the main confusion risk.
Four of five names follow a verb_noun pattern (discover_listings, get_listing, list_categories, list_municipalities), all snake_case. highlighted_services breaks the pattern as a bare noun phrase, though it remains readable and arguably signals it isn't a search action.
Five tools is a tight, well-scoped surface for a read-only directory: one search, one fetch, one sponsored listing view, and two enums that feed the search filters. Nothing appears redundant or padded.
The read-only lifecycle (filter discovery → detail fetch via canonical link) plus valid filter enums is covered with no dead ends. Minor gaps: no pagination/cursor handling exposed and no separate event-specific browse path, though discover_listings is stated to cover both businesses and events.
Available Tools
5 toolsdiscover_listingsBRead-onlyIdempotentInspect
Find matching Puerto Rico businesses and current or upcoming events. Disclosed paid placements may appear first; placement is not an independent recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| city | No | ||
| kind | No | ||
| limit | No | ||
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, non-open-world behavior, so the description earns credit for adding something beyond them: that paid placements may be ranked first and that ordering is not an independent recommendation. That ordering-bias disclosure is genuinely useful and not captured by any structured field, though nothing is said about result volume or pagination.
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 tight sentences with no filler, and the core purpose is front-loaded ahead of the disclosure. Efficient, though the second sentence could be trimmed slightly without losing 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?
For a five-parameter search tool with zero schema description coverage and no output schema, the description leaves too much unsaid: no explanation of city, category, limit, or what a result looks like. The paid-placement disclosure is a strong addition but does not compensate for the undocumented parameters.
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% for five parameters, so the description must carry parameter meaning and it largely does not. It hints at the keyword query and at the business/event split (kind), but city, category, and limit are never mentioned, and constraints like the 200-char query cap or the 1-100 limit come only from the schema types.
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?
States a specific verb and resource: find Puerto Rico businesses and current/upcoming events. It is clearly a keyword-discovery tool as opposed to the singular get_listing, though it never names a sibling or explicitly contrasts with list_categories or highlighted_services.
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 word 'Find matching' implies a search-style invocation, but there is no explicit statement of when to prefer this over get_listing or the list_* siblings, and no prerequisites or exclusions are given. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listingARead-onlyIdempotentInspect
Read one public business or event by the kind and id returned from discover_listings. Returns its canonical link; archived or quarantined entries are unavailable.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| kind | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description still adds real value beyond them: the returned payload is a canonical link, and archived/quarantined entries fail rather than return — a failure mode an agent needs to plan around.
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 core action and scope lead, and the availability caveat is appended where it does the most good.
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 two-parameter read with no output schema, the description covers purpose, input provenance, the return value type, and one failure condition. What remains thin is error semantics beyond archived/quarantined (e.g., unknown id) and whether the link is absolute.
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 carry the load. It usefully explains the provenance of both parameters (returned from discover_listings) and that kind selects business vs. event, but it does not state the id's format or length bound or spell out accepted kind values beyond what the enum already shows.
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?
States a specific verb and resource ("Read one public business or event") plus the exact addressing scheme (kind + id). It is immediately distinguishable from discover_listings, which is named as the source of those identifiers rather than as a competitor.
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?
Clearly positions the tool as the follow-up to discover_listings and constrains the input to identifiers obtained there. It also notes that archived or quarantined entries are unavailable, which implicitly tells the agent this is not a search or recovery path, but it never names an alternative for that case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
highlighted_servicesARead-onlyIdempotentInspect
List currently highlighted services, explicitly labelled as paid sponsorship or the publisher's own service. Includes canonical links and no payment action.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive and closed-world behavior, so the bar is lower. The description still adds meaningful context the annotations cannot: results are explicitly labelled advertising or first-party services, include canonical links, and no payment action occurs — useful disclosures about result nature and absence of 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?
One dense sentence with the resource scope front-loaded and every clause carrying information (labelling, canonical links, no payment). Nothing is redundant or padded.
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 no-required-param, read-only listing tool with full annotation coverage and no output schema, the description supplies the essential context: what the results are and how they are marked. The only real gap is the unmentioned limit/pagination dimension.
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% and the description never mentions the single 'limit' parameter, its 1–100 range, or any pagination behavior. With one undocumented parameter the description must compensate, and it does not, leaving the agent to infer semantics from the bare 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?
States a specific verb and resource ('List currently highlighted services') with a qualifying scope that distinguishes it from the sibling listing tools by content type (sponsored/own services). It never names a sibling explicitly, so an agent must infer the boundary against discover_listings on its own.
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 qualifier 'paid sponsorship or the publisher's own service' implies the use case (surfacing commercial placements rather than organic listings), but there is no explicit when-to-use, when-not-to-use, or pointer to discover_listings/get_listing as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesARead-onlyIdempotentInspect
List valid Puerto Rico directory category IDs for discover_listings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds that this is a static reference list of valid IDs, but says nothing about the volume of results, whether names accompany IDs, or whether the taxonomy is stable.
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 eleven-word sentence with the resource scope front-loaded and the consumer tool named at the end. No filler.
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 zero-parameter lookup with no output schema, the description conveys the return contents (category IDs) and geographic scope, which is enough to call it correctly. It could add a hint about result size or whether names are included, but no critical gap prevents 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?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly signals no input is needed.
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?
States a specific verb (List) and resource (Puerto Rico directory category IDs) and names the consuming sibling tool discover_listings, distinguishing it from list_municipalities by resource type. An agent can tell exactly what this returns and why it exists.
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 'for discover_listings' makes the usage context clear: call this to obtain category IDs before invoking discover_listings. It does not state exclusions or prerequisites (e.g., whether the IDs are needed vs optional filters), so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_municipalitiesARead-onlyIdempotentInspect
List the 78 accepted Puerto Rico municipality names for the city filter. Preserves official accents.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, idempotent, non-destructive, closed-world operation. The description adds useful behavioral context beyond annotations by stating the exact count (78), that the names are accepted for filtering, and that official accents are preserved.
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 short sentences front-load the resource and scope, with no redundant or filler content. Every sentence adds useful information about the list and its accent handling.
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 zero-parameter static lookup with no output schema, the description supplies enough context: what is returned (78 municipality names), why (city filter), and how they are represented (official accents). Nothing needed to call it correctly is missing.
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 takes zero parameters, so there are no parameter semantics to document. The empty schema is fully consistent with the description, and the baseline for zero-parameter tools 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 and resource: list the 78 accepted Puerto Rico municipality names. It also clarifies scope by tying the list to the city filter and preserves official accents, making the tool's purpose unambiguous among siblings such as list_categories or discover_listings.
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 'for the city filter' clearly signals the intended use case: retrieving valid city values for filtering. It does not explicitly name when not to use the tool or point to an alternative, but the context is sufficiently clear for a simple lookup tool.
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.
5 tool updates
- First observed
discover_listings - First observed
get_listing - First observed
highlighted_services - First observed
list_categories - First observed
list_municipalities
Related MCP Connectors
Puerto Rico's hand-verified data layer: businesses, health deserts, FDA recalls, public record.
Puerto Rico & Colombia real estate: listings, sales, parcels, permits, analytics, AVM reports.
Real events, reviewed places, and ticket checkout across the Caribbean and Latin America.
Multilingual travel guides, gear picks and booking links for AI travel agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables discovery of events, venues, and attractions through the Ticketmaster Discovery API, with flexible search filters and multiple output formats.MIT
- AlicenseNot gradedqualityBmaintenanceEnables destination discovery, stay search, detailed listing reads, and dated price comparisons through MCP tools and an interactive widget, while directing booking to the host website.MIT
- AlicenseAqualityCmaintenanceFirst dedicated Hawaii tourism MCP server. Search 2,583 tours, 579 events, Groupon deals across Oahu, Maui, Big Island, and Kauai. Every result includes affiliate booking links. Powered by aloha.fyi.42MIT
- AlicenseAqualityDmaintenanceSearch 8,000+ corporate event venues across 40+ cities. Tools for venue search by capacity/category, pricing guides, expert advice articles, and inquiry handoff. Read-only, PII-redacted, UTM-attributed.710 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.