MCP Server

Animal Checklist

io.github.ArneFfm/animal-checklist
Science & Engineering Search & Research Public & reachable MCP 2025-11-25

What this MCP does

Searches a multilingual species catalog and retrieves animal names, habitats, countries, observation data, photos, and summaries.

get_animal
Get animal
Read one species: every common name, scientific name, habitats, country observation counts, the full photo credit and the Wikipedia summary.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9]+(-[a-z0-9]+)*$', 'description': 'Species slug from search_animals, for example `red-fox`.'}, 'lang': {'enum': ['en', 'de', 'es', 'fr', 'it', 'nl', 'pt', 'pl'], 'type': 'string', 'default': 'en', 'description': 'Display language.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'title': 'Animal', 'required': ['id', 'name', 'nameEn', 'nameSci', 'categoryId', 'habitats', 'image', 'names', 'wikidataId', 'inatId', 'obs', 'text', 'countries'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9]+(-[a-z0-9]+)*$', 'examples': ['red-fox'], 'description': 'Slug of the species, for example `red-fox`.'}, 'obs': {'type': 'integer', 'description': 'iNaturalist observation count. Drives the ranking.'}, 'name': {'type': 'string', 'description': 'Name in the requested language, English when none exists.'}, 'text': {'type': ['object', 'null'], 'required': ['lang', 'summary', 'sourceUrl'], 'properties': {'lang': {'enum': ['en', 'de', 'es', 'fr', 'it', 'nl', 'pt', 'pl'], 'type': 'string'}, 'summary': {'type': 'string'}, 'sourceUrl': {'type': 'string', 'format': 'uri'}}, 'description': 'Wikipedia extract, CC BY-SA 4.0. Keep the credit and the source link.'}, 'image': {'type': 'object', 'required': ['url', 'sourceUrl', 'license', 'author', 'source'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'author': {'type': 'string', 'description': 'Credited author. Empty when the source gives no name.'}, 'source': {'enum': ['inaturalist', 'commons', 'gbif', 'pexels', 'pixabay'], 'type': 'string', 'examples': ['inaturalist'], 'description': 'Photo source.'}, 'license': {'enum': ['CC0', 'Public domain', 'Pexels License', 'Pixabay Content License'], 'type': 'string'}, 'sourceUrl': {'type': 'string', 'format': 'uri', 'description': 'Page to link when you show it.'}}, 'description': 'Photo credit. Check the licence and source before reuse.'}, 'names': {'type': 'object', 'description': 'Common name per language. A language is absent when no name is known.', 'propertyNames': {'enum': ['en', 'de', 'es', 'fr', 'it', 'nl', 'pt', 'pl']}, 'additionalProperties': {'type': 'string'}}, 'inatId': {'type': ['integer', 'null'], 'description': 'iNaturalist taxon id.'}, 'nameEn': {'type': 'string', 'description': 'English common name.'}, 'nameSci': {'type': 'string', 'examples': ['Vulpes vulpes'], 'description': 'Scientific name.'}, 'habitats': {'type': 'array', 'items': {'enum': ['forest', 'grassland', 'freshwater', 'sea', 'mountains', 'urban', 'farm', 'zoo', 'savanna', 'jungle', 'arctic', 'desert'], 'type': 'string'}}, 'countries': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'obs'], 'properties': {'obs': {'type': 'integer'}, 'code': {'type': 'string', 'pattern': '^[A-Z]{2}$', 'description': 'ISO 3166-1 alpha-2.'}}}, 'description': 'Up to twelve countries with the most observations.'}, 'categoryId': {'enum': ['mammals', 'birds', 'reptiles', 'amphibians', 'fish', 'insects', 'other'], 'type': 'string'}, 'wikidataId': {'type': ['string', 'null'], 'examples': ['Q8332']}}, 'description': 'One species with every name, the full photo credit, a summary and country counts.'}
list_categories
List categories
List the seven species groups with the label in the requested language and the species count. Call first to learn the valid `category` values.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'lang': {'enum': ['en', 'de', 'es', 'fr', 'it', 'nl', 'pt', 'pl'], 'type': 'string', 'default': 'en', 'description': 'Display language.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['categories'], 'properties': {'categories': {'type': 'array', 'items': {'type': 'object', 'title': 'Category', 'required': ['id', 'name', 'emoji', 'sort', 'total'], 'properties': {'id': {'enum': ['mammals', 'birds', 'reptiles', 'amphibians', 'fish', 'insects', 'other'], 'type': 'string'}, 'name': {'type': 'string', 'description': 'Label in the requested language.'}, 'sort': {'type': 'integer'}, 'emoji': {'type': 'string'}, 'total': {'type': 'integer', 'description': 'Species in this category.'}}}}}}
list_countries
List countries
List every ISO country code that carries observations with its species count.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['countries'], 'properties': {'countries': {'type': 'array', 'items': {'type': 'object', 'title': 'Country', 'required': ['code', 'species'], 'properties': {'code': {'type': 'string', 'pattern': '^[A-Z]{2}$'}, 'species': {'type': 'integer'}}}}}}
search_animals
Search animals
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.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'q': {'type': 'string', 'maxLength': 100, 'description': 'Free text, for example `red fox` or `Vulpes`.'}, 'per': {'type': 'integer', 'default': 20, 'maximum': 120, 'minimum': 1}, 'lang': {'enum': ['en', 'de', 'es', 'fr', 'it', 'nl', 'pt', 'pl'], 'type': 'string', 'default': 'en', 'description': 'Display language.'}, 'page': {'type': 'integer', 'default': 1, 'maximum': 1000, 'minimum': 1}, 'country': {'type': 'string', 'pattern': '^[A-Z]{2}$', 'description': 'ISO 3166-1 alpha-2.'}, 'habitat': {'enum': ['forest', 'grassland', 'freshwater', 'sea', 'mountains', 'urban', 'farm', 'zoo', 'savanna', 'jungle', 'arctic', 'desert'], 'type': 'string'}, 'category': {'enum': ['mammals', 'birds', 'reptiles', 'amphibians', 'fish', 'insects', 'other'], 'type': 'string'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['items', 'total', 'page', 'per'], 'properties': {'per': {'type': 'integer'}, 'page': {'type': 'integer'}, 'items': {'type': 'array', 'items': {'type': 'object', 'title': 'AnimalSummary', 'required': ['id', 'name', 'nameEn', 'nameSci', 'categoryId', 'habitats', 'image'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9]+(-[a-z0-9]+)*$', 'examples': ['red-fox'], 'description': 'Slug of the species, for example `red-fox`.'}, 'name': {'type': 'string', 'description': 'Name in the requested language, English when none exists.'}, 'image': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}}}, 'nameEn': {'type': 'string', 'description': 'English common name.'}, 'nameSci': {'type': 'string', 'examples': ['Vulpes vulpes'], 'description': 'Scientific name.'}, 'habitats': {'type': 'array', 'items': {'enum': ['forest', 'grassland', 'freshwater', 'sea', 'mountains', 'urban', 'farm', 'zoo', 'savanna', 'jungle', 'arctic', 'desert'], 'type': 'string'}}, 'categoryId': {'enum': ['mammals', 'birds', 'reptiles', 'amphibians', 'fish', 'insects', 'other'], 'type': 'string'}}, 'description': 'Card-sized species record used by list and search answers.'}}, 'total': {'type': 'integer'}}}
Added
list_countries
Sept. 27, 2026, 2:40 a.m.
Added
get_animal
Sept. 27, 2026, 2:40 a.m.
Added
search_animals
Sept. 27, 2026, 2:40 a.m.
Added
list_categories
Sept. 27, 2026, 2:40 a.m.