Paleobiology Database (PBDB) MCP — the global fossil record. Keyless. Find fossil occurrences of a taxon (with locations + geologic ages), look up a taxon's first/last appearance and attribution, and list child taxa. Ages are in millions of years (Ma).
Three well-named, read-only tools with complete input schemas and clear descriptions. All tools follow verb_noun naming (find_fossils, get_taxon, list_subtaxa). Descriptions are 150 - 200 chars, within the 10 - 1024 baseline. All required parameters are marked. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Parameter descriptions lack format constraints (e.g., 'Two-letter country code' should specify ISO 3166-1 alpha-2). Error handling returns generic error objects without recovery guidance. No tool annotations (readOnlyHint, idempotentHint) despite all being safe, read-only operations.
Find fossil occurrences for a taxon from the Paleobiology Database (the global fossil record). Returns occurrences with collection locations (lat/lng, country) and geologic ages. base_name matching includes the taxon and all of its subtaxa. Ages are in millions of years (Ma). Keyless.
Look up a single taxon in the Paleobiology Database: its taxonomic rank, attribution (author + year), first/last appearance intervals and ages (in millions of years, Ma), and number of subtaxa. Keyless.
List the direct child taxa (subtaxa) of a taxon from the Paleobiology Database, with each child's rank and number of its own subtaxa. Keyless.
Output schemas not documented. LLMs cannot predict response structure (e.g., occurrences array fields, taxon object shape). Breaks tool chaining and forces LLMs to guess field names.
Parameter descriptions lack format constraints. 'Two-letter country code' should specify 'ISO 3166-1 alpha-2 (e.g., US, GB, FR)'. 'Geologic time interval' should list valid values or link to reference. Invites hallucinated invalid inputs.
Error responses are generic {'error': 'message'} without recovery guidance. Should suggest next steps: 'Taxon not found. Try list_subtaxa() to explore parent taxa or search with a partial name.'
No tool annotations despite all tools being read-only and idempotent. Adding readOnlyHint and idempotentHint helps agents reason about safety and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2026-07-28+ | v2 |
Numeric limit parameters lack min/max constraints in schema. find_fossils enforces 1 - 100 in code but schema has no bounds. list_subtaxa has no upper bound in schema. LLMs may pass invalid values.