FastMCP wrappers for life sciences APIs - enabling AI agents to query biological databases for drug discovery and repurposing
Scoring was not performed
Output schemas are completely undocumented across all 25 tools. LLMs cannot plan subsequent tool calls or extract specific fields without trial and error. Pattern requirement: 'Document the output schema. LLMs need to know what fields to expect so they can plan downstream tool calls.' All tools returning complex objects (genes, proteins, pathways, trials) need explicit output schemas.
Search tools lack pagination guidance in descriptions and parameters. Pattern: 'Tools returning lists should accept page/offset and limit parameters and return a total count or next_cursor.' While tools like hgnc_search_genes, uniprot_search_proteins, chembl_search_compounds accept page_size and cursor, descriptions do not explain pagination behavior, result limits, or cursor semantics. Agents cannot predict if results are truncated.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 26 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 47 | - | v1 |
Parameter type definitions are incomplete in visible schemas. For example, 'page_size' lacks explicit bounds (e.g., '1-100'). 'slim' is boolean but descriptions do not explain what 'minimal' means in token count or field count. Patterns require: 'Specify minimum and maximum for numeric parameters... When a parameter has a regex pattern, length limit, or character restriction, state it in the description.' Current approach relies on parameter examples (anti-pattern) rather than constraints.
No cross-tool chaining optimization. Many tools return IDs that should feed into downstream tools (e.g., hgnc_search_genes returns HGNC IDs → hgnc_get_gene needs HGNC ID), but response field naming and completeness is not documented. Pattern: 'Ensure tool A's output contains the IDs and references tool B needs.' No explicit guarantee that every search response includes the ID needed for the corresponding get_ call.
Error handling is not documented. No description of what errors these tools can raise, whether they are retryable, or what recovery steps apply. Pattern: 'Error responses must tell the LLM what to do next.' Example: if a gene is not found in HGNC, can the agent fall back to Entrez? Current definitions provide no guidance.
Organism/species parameter naming is inconsistent across tools. 'organism' in uniprot_search_proteins vs 'organism' in string_search_proteins but using NCBI taxonomy ID instead of name. Parameter format varies: 'Homo sapiens' vs integer 9606. Pattern: 'Accept human-friendly identifiers (email, username) alongside system IDs' should apply uniformly across all organism-filtered tools.