MCP server that wraps core features of biotite library for structural bioinformatics
Biotite MCP server has 20 tools with generally good naming and moderate descriptions. All tools follow verb_noun naming convention (biotite_load_structure, biotite_calculate_distances, etc.). Most tools have descriptions between 100-250 characters, which is within the 10-1024 character baseline, though some are quite detailed with embedded examples. Input schemas are present and properly typed for all tools. However, output schemas are not documented in the source code provided, tool descriptions don't specify what fields are returned, which violates the 'document output schema' critical check. Several tools lack parameter descriptions or have minimal ones. Error handling guidance is not evident in the code samples provided. Tool composition is good, each tool has a single responsibility. The server includes tools for reading, writing, and database access, with appropriate risk annotations.
Perform BLAST search against NCBI databases via web interface. This tool searches for homologous sequences using NCBI's BLAST web service. It's ideal for finding similar sequences, identifying proteins, and discovering evolutionary relationships without requiring local BLAST installation.
Calculate angles between atoms in a protein structure (e.g., bond angles, dihedral angles).
Calculate dihedral angles (phi, psi, chi) in protein structures.
Calculate distances between atoms or atom sets in a protein structure.
Calculate Root Mean Square Deviation (RMSD) between two structures for structural comparison and superposition quality assessment.
Fetch molecular sequences from NCBI Entrez databases.
Output schemas not documented. Tool descriptions do not specify what fields are returned or the structure of responses. This violates the critical check 'Document the output schema', LLMs cannot plan downstream tool calls or extract the right data without knowing the response structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Download and analyze protein structures from the RCSB Protein Data Bank. This tool fetches experimental protein structures directly from the RCSB PDB database and provides comprehensive structural analysis. It supports multiple file formats and can save structures locally for further analysis.
Filter atoms from a structure based on various criteria (atom type, residue type, chain, coordinate range, etc.).
Extract detailed structural information from a protein structure file without loading entire structure into memory.
Load sequences from a file.
Load a protein structure from a file and return comprehensive structural information. This tool loads molecular structures from various file formats using biotite's robust parsing capabilities. It automatically detects file formats and handles different structure types including proteins, nucleic acids, and small molecules.
Perform multiple sequence alignment using clustalo or muscle algorithms.
Perform optimal pairwise sequence alignment using dynamic programming. This tool performs high-quality pairwise sequence alignments using biotite's optimal alignment algorithms. It supports both global (Needleman-Wunsch) and local (Smith-Waterman) alignments for protein and nucleotide sequences.
Generate Ramachandran plot data (phi/psi angles) to assess protein structure quality.
Calculate reverse complement of a DNA/RNA sequence.
Save sequences to a file in various formats.
Save a protein structure to a file, optionally converting between formats. This tool loads a structure from one format and saves it in another format, enabling format conversion and structure manipulation workflows. It preserves all structural information supported by the target format.
Assign and analyze secondary structure elements (alpha-helices, beta-sheets, coils) in protein structures.
Superimpose two protein structures using optimal rotation and translation to minimize RMSD.
Translate DNA/RNA sequence to protein sequence.
Many parameter descriptions are minimal or missing detail. Examples: biotite_calculate_distances 'atoms1' and 'atoms2' are described only as 'First set of atom indices or residue selection' without explaining valid formats, ranges, or examples. biotite_filter_atoms 'criteria' is an object with no details about expected keys. Per the rubric, 'Describe the expected format, range, and allowed values directly in the parameter description.'
No documented error handling or recovery guidance. The tool descriptions and visible code do not indicate how failures are handled, what errors might occur, or how to recover. Per the critical check, 'Error responses must tell the LLM what to do next.' Example: if biotite_load_structure fails because a file is not found or in an unsupported format, the agent has no guidance on recovery.
Parameter 'criteria' in biotite_filter_atoms is defined as a bare object type with minimal documentation. Per the rubric, when parameters have complex structures, they should be decomposed into named properties with types and descriptions, or clearly documented as a JSON object with specific expected keys. The current definition leaves LLMs guessing what keys are valid.
Some tool descriptions contain embedded examples that may lead to literal reuse. The blast_search tool includes detailed example outputs with example hit IDs like 'sp|P01013|OVAX_CHICK' and sequences. Per the rubric, 'Do not put example values in the description. LLMs tend to reuse example values literally rather than adapting to the actual context.'
Parameter 'atom_indices' in biotite_calculate_angles and biotite_calculate_dihedrals is described minimally: 'Indices of atoms defining the angle' and 'Indices of four atoms defining the dihedral' without specifying the expected format (array of integers?), valid range, or minimum/maximum length. Per the rubric, numeric parameters should include min/max constraints.