InterPro MCP (EBI) — protein family / domain / functional-site classification. Wraps the keyless InterPro REST API at https://www.ebi.ac.uk/interpro/api. InterPro integrates protein signatures from member databases (Pfam, PROSITE, SMART, CDD, PANTHER, ...) into families, domains, repeats and sites.
Three well-named, read-only tools with clear descriptions (150 - 250 chars each) and complete input schemas. All parameters are typed and described. Tool names follow verb_noun pattern (search_entries, get_entry, entries_for_protein). Descriptions explain WHAT each tool does and WHEN to use it. However, output schemas are not documented, LLMs cannot predict response structure. Error handling is basic (generic error wrapping). No parameter constraints (enums, ranges) despite opportunities (e.g., limit should be capped 1 - 100). Missing idempotency hints and dependency guidance.
List all InterPro entries (families, domains, sites) found on a given UniProt protein, by UniProt accession (e.g. "P12345"). Returns each matching InterPro signature with accession, name and type. Useful to functionally annotate a protein. Complements UniProt/AlphaFold. Keyless.
Get full details for a single InterPro entry by accession (e.g. "IPR000001"). Returns the entry name, type, a plain-text description, member-signature/protein counters, and associated GO terms (molecular function / biological process / cellular component). Use after search_entries or entries_for_protein to learn what a family/domain actually is. Keyless.
Search InterPro for protein families, domains, repeats and functional sites by keyword (text search over entry names/accessions). InterPro is EBI's integrated protein-signature classification (Pfam, PROSITE, SMART, CDD, PANTHER, ...). Returns matching entries with accession (IPRxxxxxx), name, type (family|domain|repeat|site|...), and the member databases the signature is built from. Keyless.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). Forces trial-and-error parsing and wastes tokens on clarification.
Parameter 'limit' in search_entries lacks range constraint. Description says 'default 20, max 100' but no JSON Schema minumum/maximum. LLMs may pass invalid values; validation happens at runtime only.
Error handling is generic. All errors wrapped as {error: string}. No guidance on recovery (e.g., 'entry not found, try search_entries first'). LLMs cannot distinguish retryable from fatal errors.
No dependency hints in descriptions. LLM does not know that entries_for_protein requires a valid UniProt accession (which may need lookup elsewhere) or that get_entry should follow search_entries.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, idempotentHint). All three tools are read-only and idempotent, but this is not declared in the schema. Agents cannot optimize caching or retry logic.