Kyoto Encyclopedia of Genes and Genomes REST API MCP server. Authoritative bioinformatics database for searching compounds, drugs, diseases, pathways, genes, and enzymes by name; fetching full flat-file entries with formula, pathways, and cross-references; listing database contents. Keyless access.
Three well-named tools with complete input schemas and solid descriptions. All tools follow verb_noun naming (find, get_entry, list_database). Descriptions are 150 - 250 chars, within the 10 - 1024 baseline. Parameters have types and descriptions. However, output schemas are not formally documented, only inferred from code. Error handling returns structured objects but lacks recovery guidance. No tool annotations (readOnlyHint, idempotentHint). Missing parameter constraints (e.g., database enum, query length limits). No pagination support for list_database despite potentially large result sets.
Search KEGG by keyword. KEGG is the authoritative bioinformatics database for compounds, drugs, diseases, metabolic pathways, genes, and enzymes. Pick a database (compound|drug|disease|pathway|genes|enzyme|glycan|module|ko) and pass a query like "glucose", "aspirin", or "diabetes". Returns matching KEGG IDs with descriptions. Keyless.
Fetch a full KEGG flat-file entry by ID and return it as parsed fields plus raw text. IDs look like "C00031" (compound), "hsa00010" (pathway), "D00009" (drug), "K00844" (KO/ortholog), or "ec:1.1.1.1" (enzyme). Parsed fields include ENTRY, NAME, FORMULA, CLASS, PATHWAY, DESCRIPTION, cross-references, and more. Use find first to discover IDs. Keyless.
List all entries in a KEGG database (id + description). Useful for enumerating things like KEGG pathways ("pathway"), drugs ("drug"), or supported organisms ("organism"). Results are capped at 100 with a truncated flag. Keyless.
Output schemas not formally documented. LLMs cannot plan downstream calls or extract fields reliably. Code shows results are capped (FIND_CAP=50, LIST_CAP=100) but this is not declared in tool descriptions.
Missing enum constraint on 'database' parameter. find() validates against FIND_DATABASES array in code, but schema declares it as free-form string. LLMs will hallucinate invalid database names.
Error responses lack recovery guidance. doFind() returns {error, valid} but description does not explain what to do on invalid database. doGetEntry() returns {error, id} on 404 but does not suggest alternatives.
No tool annotations. All three tools are read-only and idempotent, but lack readOnlyHint and idempotentHint in schema. Agents cannot infer safety properties.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
list_database() returns up to 100 entries with truncated flag but no pagination support (no offset/limit params). Large databases will be silently truncated without agent awareness of how to fetch remaining entries.