Provides access to biomedical knowledge bases, including protein domains, antibody information, preprints, clinical trials, and other biomedical research data.
BioContextAI Knowledgebase MCP exhibits moderate quality with consistent tool naming, mostly complete parameter schemas, and resource orientation. However, descriptions are generic and lack depth; parameter descriptions are sparse; and output schemas are entirely undocumented. The 6 tools are READ_ONLY with sensible verb-noun naming (get_*, search_*), but lack the LLM optimization and explicit error guidance needed for production deployment. Tool definitions are directly visible in source (explicit @core_mcp.tool() decorators), so no inference penalty applies.
Query AlphaFold database using protein name. First converts protein symbol to UniProt ID, then fetches structure predictions.
Get detailed antibody information by ID. Retrieves catalog number, vendor, clonality, epitope, applications, and more.
Search Antibody Registry for antibodies. Returns catalog numbers, vendors, clonality, applications, and metadata.
Get detailed preprint metadata by DOI. Retrieves title, authors, abstract, date, version, category, license, and publication status.
Get protein domain architecture and InterPro matches. Returns all InterPro domains, functional sites, and domain architecture.
Search bioRxiv/medRxiv preprints by date range or recent count. Specify one search method: date range, days, or recent_count.
Output schemas completely undocumented. No return type definitions, field names, or response structure guidance. LLMs cannot plan downstream calls or extract data reliably.
Tool descriptions lack depth and context. Descriptions like 'Get protein domain architecture and InterPro matches' (68 chars) are factual but do not explain when/why to use the tool versus related tools, prerequisites, or dependencies. Baseline for A+ tools: 50-200 chars with explicit WHAT/WHEN/WHY guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 64 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 56 | - | v1 |
get_antibody_list uses ambiguous 'search' parameter without enum constraints or format guidance. Parameter accepts 'Gene symbol, protein name, or UniProt ID', free-form string invites hallucinated values like 'HUMAN_TRPC6' or 'trpc6-isoform-1'.
No pagination output documented. get_antibody_list and get_recent_biorxiv_preprints accept page/size/cursor parameters but response schemas do not document total_count, next_cursor, or has_more fields. LLMs cannot determine when results are exhausted.
Parameter descriptions are minimal or missing context. 'include_structure_info' returns true/false but response structure (what fields are added) is not documented. 'species_filter' accepts 'Taxonomy ID' but does not specify format, valid range, or examples of common IDs.
No error handling guidance. Tools declare READ_ONLY risk but provide no recovery instructions. If protein_id is invalid, API returns HTTP error, no guidance on whether to retry, search_proteins first, or inform user.
Default parameter values lack safety justification. get_recent_biorxiv_preprints defaults to biorxiv server, max_results=100, cursor=0, reasonable, but no explanation in descriptions of why these defaults were chosen or what happens if both date_range and days are omitted.
Tool-chaining references not documented. get_alphafold_info_by_protein_symbol converts protein_symbol to UniProt ID internally, but response does not document whether UniProt ID is included in output, blocking reuse with get_protein_domains.