PDBe (Protein Data Bank in Europe, EBI) MCP. Wraps the keyless EBI PDBe REST API. PDBe = experimentally-determined macromolecular structures with rich EBI annotations. The EBI counterpart to RCSB PDB, with curated SIFTS cross-database mappings.
Three tools with clear verb-noun naming (get_*, uniprot_mappings) and complete input schemas. Descriptions are domain-specific and informative (120-180 chars), exceeding the 10-char minimum but falling short of LLM-optimized 50-200 char range. All parameters have type and description. However, output schemas are not documented, LLMs cannot predict response structure. No error handling guidance (e.g., 'PDB entry not found' returns bare error object without recovery hints). No parameter constraints (e.g., pdb_id format validation, length limits). Tool composition is sound (each does one thing), but responses lack pagination support and chaining IDs for multi-step workflows.
PDBe (EBI): list the molecules/entities in a PDB structure — proteins, nucleic acids, and ligands, each with entity_id, molecule_type, name, and chain length. Keyless. Pass a 4-char PDB id like "1cbs".
PDBe (Protein Data Bank in Europe, EBI): get a PDB entry summary — title, experimental method, release date, source organism, and entity counts (polypeptide/ligand/water/...). Keyless. The EBI counterpart to RCSB PDB. Pass a 4-char PDB id like "1cbs".
PDBe (EBI): SIFTS cross-database mapping of a PDB structure to UniProt — for each UniProt accession, the matching chains and residue range. Curated cross-database mappings unique to EBI. Keyless. Pass a 4-char PDB id like "1cbs".
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). Responses include pdb_id, title, experimental_method, etc., but this is inferred from code, not declared in tool definitions.
Error responses lack recovery guidance. When 'PDB entry not found' is returned, LLM has no hint to retry, search alternatives, or validate input. Errors should state: 'PDB ID not found. Ensure it is a valid 4-char code (e.g., 1cbs).'
Parameter pdb_id lacks format constraint. Description says '4-char PDB id' but no regex pattern, minLength, or maxLength in schema. Code validates at runtime (reqId function), but schema does not enforce it, allowing LLMs to pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No pagination support. If PDBe returns large molecule lists or UniProt mappings, responses are unbounded. LLMs cannot request subsets, risking context window exhaustion. Tools should accept limit and offset parameters.
No tool annotations (readOnlyHint, idempotentHint). All three tools are read-only and idempotent, but this is not declared. Agents cannot infer safety properties without explicit hints.