Animal Checklist
Server Details
Search animals in eight languages with habitats, countries, photos and source credits.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- ArneFfm/animal-checklist-agents
- GitHub Stars
- 0
TDQS
Scored across 4 tools
Each tool serves a distinct purpose: listing categories, listing countries, searching species, and retrieving full details. No overlapping functionality; an agent can easily select the right tool based on the task.
All tools follow a consistent verb_noun pattern: get_animal, list_categories, list_countries, search_animals. The verbs (get, list, search) are clear and consistent, making the API predictable.
With only 4 tools, the server is lean but each tool is essential for the domain. Slightly minimal but well-scoped; no redundancy. A tool for updating or adding observations might be missing but not necessary for a read-only biodiversity reference.
The tool set covers the core read workflows: discovery (list categories, list countries, search) and detail retrieval (get_animal). It lacks update/create/delete operations, but these are not expected for an observation-based reference. Minor gap: no direct 'get by ID' but search covers it.
Available Tools
4 toolsget_animalGet animalARead-onlyIdempotentInspect
Read one species: every common name, scientific name, habitats, country observation counts, the full photo credit and the Wikipedia summary.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Species slug from search_animals, for example `red-fox`. | |
| lang | No | Display language. | en |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Slug of the species, for example `red-fox`. |
| obs | Yes | iNaturalist observation count. Drives the ranking. |
| name | Yes | Name in the requested language, English when none exists. |
| text | Yes | Wikipedia extract, CC BY-SA 4.0. Keep the credit and the source link. |
| image | Yes | Photo credit. Check the licence and source before reuse. |
| names | Yes | Common name per language. A language is absent when no name is known. |
| inatId | Yes | iNaturalist taxon id. |
| nameEn | Yes | English common name. |
| nameSci | Yes | Scientific name. |
| habitats | Yes | |
| countries | Yes | Up to twelve countries with the most observations. |
| categoryId | Yes | |
| wikidataId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful output-scope context: it retrieves one species and includes full details such as every common name, country observation counts, full photo credit, and Wikipedia summary.
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 a single efficient sentence with no filler. The core operation and target resource are front-loaded, and the field enumeration is compact but meaningful.
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 a rich output schema, full schema coverage for both parameters, and annotations covering safety and idempotency, the description is complete enough for an agent to invoke the tool correctly. The reference to a species slug and the one-species scope fill the remaining contextual need.
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%: both 'id' (with slug format and example) and 'lang' (with enum and default) are fully documented. The description adds no parameter-level semantics beyond naming the resource, which is acceptable because the schema already carries the burden.
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 ('Read') and a specific resource ('one species'), then enumerates the exact fields returned. It clearly distinguishes this tool from sibling list/search tools by emphasizing retrieval of a single species by slug.
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 makes clear this is for reading a single species' full record, which implies it should be used after search_animals and not for listing or searching. It does not explicitly name alternatives or exclusion conditions, but the sibling set and schema reference to search_animals make the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList categoriesARead-onlyIdempotentInspect
List the seven species groups with the label in the requested language and the species count. Call first to learn the valid category values.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Display language. | en |
Output Schema
| Name | Required | Description |
|---|---|---|
| categories | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering safety. The description adds behavioral context beyond that: it returns a list with labels and counts, and it is a discovery step for category values. This is useful but not exhaustive; it does not mention pagination or exact output structure, though an output schema exists.
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 zero waste. The core purpose is front-loaded, and the usage guidance is appended efficiently. 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 simple list tool with one optional parameter and a provided output schema, the description covers what it returns, why to call it, and its role as a discovery step. Nothing essential is missing 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%, so the lang parameter is fully documented with enum and default. The description adds that the label appears in the requested language, directly linking the parameter to its effect, which is a modest enhancement over 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?
The description clearly states the tool lists seven species groups with labels in the requested language and species count. It also explains its primary purpose—learning valid category values—which distinguishes it from sibling tools like list_countries or get_animal.
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 'Call first to learn the valid category values' explicitly signals when to use this tool as a prerequisite. It does not name specific alternatives, but the context is clear and sufficient for an agent to decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_countriesList countriesARead-onlyIdempotentInspect
List every ISO country code that carries observations with its species count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| countries | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful scope ('carries observations') and notes the returned species count, but it does not discuss pagination, ordering, or edge cases, so it adds moderate value beyond the 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 a single compact sentence that front-loads the action and resource. Every word contributes meaning, with no filler or redundant qualification.
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, read-only listing tool with an output schema, the description is complete. It tells the agent exactly what is returned (ISO country codes with observations and species counts) and requires no further clarification 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?
The tool has zero parameters and the schema is empty, so there is no parameter burden for the description to carry. The baseline of 4 applies because no parameter documentation 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?
The description uses a specific verb and resource: 'List every ISO country code' that has observations, and it clearly states the output includes a species count. This distinguishes it from siblings like get_animal and search_animals, which target different resources.
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 usage when a country-level overview of observations is needed, but it does not explicitly say when to prefer this over sibling tools or mention any exclusions. There is no direct routing to get_animal, list_categories, or search_animals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_animalsSearch animalsARead-onlyIdempotentInspect
Search species by free text in any of eight languages or by scientific name, with optional category, habitat and ISO country filters. Ranked by iNaturalist observations. One page of card-sized records.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free text, for example `red fox` or `Vulpes`. | |
| per | No | ||
| lang | No | Display language. | en |
| page | No | ||
| country | No | ISO 3166-1 alpha-2. | |
| habitat | No | ||
| category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| per | Yes | |
| page | Yes | |
| items | Yes | |
| total | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false; the description adds beyond that by disclosing that results are ranked by iNaturalist observations and returned as a single page of card-sized records. This provides ordering and result-shape context that the annotations do not cover.
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 sentences, each carrying distinct information: search modes, filters, ranking, and record shape. It is front-loaded with the action and avoids 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?
The description covers the main decision points (query modes, filters, ordering, output unit) and an output schema exists to define return details. It does not explicitly mention that q is optional or contrast with sibling tools, but the schema/context signals cover the optional nature.
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 43%, and the description compensates by clarifying the q parameter accepts either common-name text or scientific names and by naming the optional category, habitat, and country filters. It does less for per/page pagination semantics, so it is strong but not complete.
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 names the exact action (search species) and specifies input modes (free text in eight languages or scientific name) and filters, which sets it apart from the sibling get_animal detail tool. It is a specific verb+resource statement, not a tautology.
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 clearly conveys when to search: for species matching free text/scientific name, with optional filters, and notes the output is a page of card-sized records. It does not explicitly say to use get_animal for single-record details or list_categories/list_countries for metadata, so it lacks explicit alternatives.
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.
4 tool updates
- First observed
get_animal - First observed
list_categories - First observed
list_countries - First observed
search_animals
Related MCP Connectors
Structured habitat data and advisory tools for aquariums, marine tanks, terrariums and paludariums.
Search iNaturalist sightings, identification threads, phenology, and look-alike species.
Search GBIF species taxonomy, occurrence records, datasets, and publishers.
Search GBIF species taxonomy, occurrence records, datasets, and publishers.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides information about animals at the Taipei Zoo, including their habits, habitats, and distribution across various park areas. It enables users to search for specific animals and browse regional guides using data from the Taipei City Open Data platform.-
- FlicenseNot gradedqualityDmaintenanceProvides tools to get random zoo animals, search by name, and filter by type, returning detailed information including physical characteristics, habitat, diet, and images.-
- AlicenseNot gradedqualityCmaintenanceEnables searching RescueGroups.org for adoptable animals by species, postal-code radius, breed, and traits, and exploring the rescues/shelters that list them, including full details, photos, contact info, and adoption process.MIT
- AlicenseNot gradedqualityBmaintenanceProvides world country data from the REST Countries API, enabling search by name, ISO code, region, language, or currency, with details like capital, population, and languages.138 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.