Birds of Puerto Rico
Server Details
Search Puerto Rico bird guide records, browse bird groups, and retrieve species with source links.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
Each tool occupies a distinct role: search_birds finds records, get_bird retrieves a full entry by ID, and list_families browses taxonomy. Descriptions explicitly state the relationship (get_bird requires an ID from search_birds), leaving no realistic chance of misselection.
All three tools follow a clean verb_noun snake_case pattern: get_bird, list_families, search_birds. No style mixing or vague verbs.
Three tools is on the thin side but sensible for a bounded, read-only bird catalog: search, retrieve, and browse categories. No redundant or filler tools, though a slightly richer surface could be justified.
Discovery, retrieval, and family browsing cover the core read-only workflow end to end, and the empty-query behavior of search_birds provides a full listing fallback. Minor gaps remain, such as fetching a family's detail directly or accessing media/source data beyond links.
Available Tools
3 toolsget_birdARead-onlyIdempotentInspect
Get the complete guide entry and canonical source links for an exact bird ID from search_birds.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Exact bird ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 fully covered. The description adds only that the response includes guide entries plus canonical source links, which is partly redundant with the output schema; no error or lookup-failure behavior is disclosed.
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 sentence, front-loaded with the verb and result, with the prerequisite clause trailing. No filler words.
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 one-parameter lookup with an output schema and full annotation coverage, the description is largely sufficient. It stops short of noting behavior for unknown or stale IDs, a minor gap for a detail-fetch 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?
Schema coverage is 100% and the single parameter is already described as 'Exact bird ID'. The description adds real meaning by specifying provenance — the ID must come from search_birds — which clarifies that fuzzy names or partial matches are invalid inputs.
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 ('Get') and resource ('complete guide entry and canonical source links') with clear scope. Naming 'an exact bird ID from search_birds' implicitly distinguishes this from search_birds (discovery) and list_families (browsing), so an agent can route without opening schemas.
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 'exact bird ID from search_birds' establishes the prerequisite workflow: obtain an ID via search_birds first, then fetch details. It does not explicitly state exclusions or what to do if no exact ID is available, keeping it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_familiesARead-onlyIdempotentInspect
List bird families/categories present in this catalog, with counts and source links.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, covering the safety profile. The description adds that results come 'with counts and source links', which is mildly useful, but it says nothing about ordering, size, or whether the list is exhaustive.
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 front-loaded sentence with no filler. The resource and scope appear before the return-value hint.
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 parameters, an output schema, and full annotation coverage, the description only needs to convey purpose and scope, which it does. It falls just short of complete by not routing the agent away from the sibling tools.
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 to disambiguate and the baseline applies. The description correctly implies no filtering input is expected.
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 ('bird families/categories') with scope ('present in this catalog'). It is implicitly distinguishable from get_bird and search_birds, though it never names them.
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 'present in this catalog' hints at a browse/overview use case rather than a targeted lookup, but the description never states when to choose this over search_birds or get_bird. Usage must be inferred from the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_birdsARead-onlyIdempotentInspect
Search common/scientific names and guide text; optionally filter by exact family. Returns compact records and pagination. Empty query lists all birds.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Case-insensitive text to find | |
| family | No | Exact category from list_families | |
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety burden is lifted. The description adds two genuinely non-obvious traits beyond that: results come back as compact records with pagination, and an empty query returns the full list rather than an error — important given zero required parameters.
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?
Three short, front-loaded clauses with no filler: what is searched, the optional filter, the return shape, and the empty-query edge case. Nothing repeats the annotations or the schema.
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 four-parameter read tool with an output schema, the description covers the essentials: scope of search, filter semantics, result shape, pagination, and the zero-parameter default. Only the relationship to sibling tools is left unstated.
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 50%: query and family are documented, while limit and offset rely on their numeric constraints only. The description compensates meaningfully for query by naming the searchable fields (common name, scientific name, guide text) and reinforces that family matching is exact, adding semantics the schema text does not carry.
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 (search) plus the exact fields searched (common/scientific names and guide text) and the optional family filter, so the agent knows precisely what the tool retrieves. It does not, however, explicitly contrast itself with get_bird (single-record fetch) or list_families, leaving the sibling differentiation to inference.
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?
Usage is implied rather than prescribed: 'optionally filter by exact family' and 'Empty query lists all birds' hint at how to drive the tool, but there are no explicit when-to-use/when-not rules and no named alternative for retrieving a single bird or for enumerating families. An agent can proceed, but must infer the routing.
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.
3 tool updates
- First observed
get_bird - First observed
list_families - First observed
search_birds
Related MCP Connectors
eBird MCP — Cornell Lab of Ornithology citizen-science bird observations
Search iNaturalist sightings, identification threads, phenology, and look-alike species.
Search biomedical papers, inspect publication records, and traverse citation or semantic graphs.
Search and read Wikipedia articles and sections, list cited references, nearby pages, and languages.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables querying recent bird observations from the eBird citizen-science database by location.298 npmMIT
- AlicenseBqualityDmaintenanceProvides access to the eBird API 2.0 for retrieving bird observation data, checklists, regional statistics, taxonomy information, and hotspot locations worldwide.251MIT
- AlicenseAqualityDmaintenanceAn AI-powered birding companion that connects Claude to eBird and Xeno-canto APIs, enabling personalized birding with life list tracking, route-based hotspot discovery, and recording enrichment.282MIT
- FlicenseAqualityCmaintenanceEnables LLM clients to query a BirdNET-Go bird-detection instance for detections, species summaries, activity patterns, and historical searches via natural language.9-
Glama MCP Gateway
Add one secure layer between your agents and this server.