protein-tools-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PROTEIN_TOOLS_HOME | No | Overrides the per-user directory where run state lives (registry DB, premium cache). Defaults to %APPDATA%\protein-tools on Windows and ~/.protein-tools elsewhere. | |
| PROTEIN_TOOLS_API_KEY | No | API key for premium tools. Premium tools are gated by this environment variable; without it they raise or return a PermissionError/structured error explaining how to get a key. | |
| PROTEIN_TOOLS_RELAY_URL | No | URL of the hosted relay for premium mode. Set alongside PROTEIN_TOOLS_API_KEY to serve premium lookups from the hosted relay instead of direct upstream calls and the local index DB. Without it the server runs fully locally. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| validate_pdbA | Validate a PDB or mmCIF structure file (AlphaFold 3 / RCSB) for downstream use (MD prep, docking, analysis). Reports atom/residue/chain counts, fixed-column format errors, non-standard residues, altLocs, chain gaps, duplicate atom names, insertion-code residues, and multi-model (NMR) notes. Always run this before feeding a structure into a pipeline. |
| metal_geometryB | Analyze metal-binding sites in a PDB file. Finds all atoms of the given metal element (e.g. FE, ZN, MN, MG), lists coordinating ligand atoms (N/O/S donors) with distances and donor types, computes ligand-metal-ligand angles fitted to ideal geometries (octahedral, tetrahedral, ...), and flags bidentate carboxylate chelates. |
| structure_statsA | General structure summary: atoms, residues, chains, gaps, altLocs. Accepts PDB or mmCIF (auto-detected). Free; local compute. |
| sequence_from_pdbA | Extract one-letter amino-acid sequences per chain from a PDB file (handles MD protonation variants; for multi-model files uses model 1). |
| plddt_summaryA | Summarize AlphaFold-style pLDDT confidence from B-factor columns. Reports mean, confidence bands (>90/70-90/50-70/<50), and low-confidence regions. Refuses to interpret experimental-structure B-factors as pLDDT. |
| xvg_summaryA | Summarize any GROMACS .xvg file (RMSD, energies, temperature, SASA...): per-column min/max/mean/stdev/first/last plus title and axis labels. |
| rmsd_summaryA | Assess equilibration from a GROMACS RMSD .xvg file: drift between the first and last 10% of frames, plateau detection, and an equilibrated / not-equilibrated verdict. |
| rmsf_peaksA | Extract the most flexible residues/atoms from a GROMACS RMSF .xvg file: top-N highest values and contiguous flexible segments (above mean + 1 stdev). |
| conservation_hintA | Conservation / functional hint for a UniProt entry: feature table. Reuses the premium UniProt fetch (same key + relay/local path as uniprot_entry): feature types grouped (Metal binding / Active site / Binding site / Disulfide bond / Mutagenesis / Natural variant) with 1-based canonical positions. Align your PDB sequence first (sequence_from_pdb + read_fasta) before mapping positions. |
| uniprot_entryA | Fetch a UniProtKB entry: protein name, organism, function, length, sequence, and metal-binding annotations. Premium tool (API key required). Results are disk-cached for 24 h; refresh=True forces a live fetch. |
| alphafold_plddtA | Fetch the AlphaFold DB model for a UniProt accession and summarize its pLDDT confidence profile. Premium tool (API key required). Disk-cached for 24 h; refresh=True forces a live fetch. |
| rcsb_entryA | Fetch RCSB PDB entry metadata: title, experimental method, resolution, deposit date. Premium tool (API key required). Disk-cached for 24 h; refresh=True forces a live fetch. |
| check_metal_paramsA | Scan a GROMACS force-field directory or .itp/.ff file for metal atomtypes (e.g. ZN, FE) and report sigma/epsilon or MISSING entries. Run this BEFORE pdb2gmx on any metalloprotein - a missing metal atomtype will kill the topology build. |
| md_preflightA | MD pre-flight gate for a structure: PDB/mmCIF validation + metal-site detection + force-field metal parameter check. Returns GO or NO-GO with blocking issues. Treat NO-GO as a hard stop before any GPU/MD launch. |
| propka_summaryA | Parse a PROPKA .pka output: pI, per-residue-type counts, pKa extremes, and protonation-state concerns (HIS near pH 7, raised acids, CYS 99.99 disulfide markers) - exactly the decisions pdb2gmx protonation needs. |
| log_runA | Record a run/event in the persistent project registry (cross-session memory). kind: e.g. 'md_report', 'prep', 'hypothesis'. metrics/paths accept JSON strings or plain text. Returns the registry id. |
| list_runsA | List recent registry entries (newest first), optionally filtered by kind. Use this at session start to recall project history. |
| run_detailsC | Full record for one registry entry, by numeric id or run_id. |
| md_run_reportA | Analyze a GROMACS run directory: RMSD verdicts, other .xvg inventory, md.log crash scan, artifact presence, and an overall verdict (GO / FINISHED / INCOMPLETE / CRASHED). Optionally logs to the registry. |
| compare_runsC | Side-by-side RMSD verdicts for two run directories (e.g. apo vs holo): plateau status, late-run means, drift, and relative difference. |
| cache_infoA | Inspect (or with clear=True, empty) the local response cache used by the premium lookup tools (UniProt / AlphaFold DB / RCSB). |
| query_metal_sitesA | Search the PDB-wide metal-site index (premium: requires the hosted relay — set PROTEIN_TOOLS_RELAY_URL + PROTEIN_TOOLS_API_KEY). Filter by metal, geometry class, coordination-number range. Defaults exclude CN-0 isolated-ion artifacts and CN-1; set min_cn=1 to see unusual CN-1 chemistry, include_artifacts=True to also return CN-0 rows. Examples: tetrahedral Cys4 zinc fingers (metal='ZN', geometry='tetrahedral'), catalytic zinc (metal='ZN', min_cn=4, max_cn=6). |
| index_statsB | Corpus-level stats for the PDB-wide metal-site index (premium: requires the hosted relay): entry/site counts, per-metal and per-geometry distributions, artifact volume. |
| aa_compositionA | Protein physicochemistry: MW, aa composition, charge, GRAVY, pI estimate. Parses a FASTA file or raw text (record |
| fasta_statsB | Multi-FASTA summary: N50, length stats, per-type counts, GC%. GC% is computed over DNA records only (null with a note when none). Free; local compute. |
| detect_sequence_typeA | Detect whether a FASTA sequence is protein, DNA, RNA, ambiguous, or unknown. Accepts a FASTA file path (is_file=True) or raw FASTA text (is_file=False). Returns the type classification with confidence and detailed notes. |
| read_fastaB | Read one or more sequences from a FASTA file or text. Accepts a FASTA file path (is_file=True) or raw FASTA text (is_file=False). Returns the full parsed records including sequences, types, and metadata. |
| pdb_by_idB | Get info about a PDB entry by its 4-character PDB ID. Checks if a local PDB/mmCIF file exists for the ID, and if so returns local structure info (validation, sequence, metal sites). Also fetches RCSB metadata if an API key is set (premium tool). |
| find_pdb_by_sequenceA | Find PDB structures matching a protein, DNA, or RNA sequence. Parses the FASTA, maps the detected type to the RCSB sequence search (protein→blastp, dna/rna→blastn), and returns matching PDB IDs. Ambiguous/unknown sequences are rejected with a structured error. Requires an API key (premium tool). |
| plot_xvgB | Plot every series of a GROMACS .xvg file against column 0 into a PNG (large series are decimated to <=5000 points). Returns the output path. |
| compare_plotB | Overlay the value column of several .xvg files (comma-separated paths, e.g. apo vs holo RMSD) into one comparison PNG. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 31 tools
Most tools target distinct tasks (validation, metal geometry, xvg parsing, registry, premium lookups), but a few overlap: pdb_by_id and rcsb_entry both retrieve PDB metadata, while structure_stats overlaps with validate_pdb on basic counts. Aggregate tools like md_preflight also partially duplicate their component checks, though descriptions clarify their gate role.
All names use snake_case, which is good, but the verb style is inconsistent: some are verb_noun (list_runs, validate_pdb, plot_xvg), while many are noun_noun (run_details, structure_stats, plddt_summary). This mixed convention is readable but not a predictable single pattern.
With 31 tools, the surface is far above the typical 3-15 range and even above the 25+ 'too many' threshold. While the domain is broad (structure, MD, sequence, registry, premium DB), the sheer number increases selection burden and suggests the server should be split or consolidated.
The set covers many structure/MD analyses, but there are notable gaps: no sequence alignment tool despite conservation_hint instructing users to align PDB and UniProt sequences, no PDB coordinate download (validate_pdb requires a local file), and the registry lacks update/delete operations. These gaps force agents to use external tools or work around stated workflows.