ImmunoGraph MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Host binding for the HTTP deployment (e.g. 0.0.0.0 for a remote endpoint). Used when serving Streamable HTTP. | |
| PLIP_ENABLED | No | Enables PLIP contact analysis. Requires installed runtimes and valid coordinate inputs. | |
| VINA_ENABLED | No | Enables AutoDock Vina docking. Requires installed runtimes and valid coordinate inputs. | |
| PUBCHEM_ENABLED | No | Enables live PubChem retrieval. Requires provider network access. | |
| RCSB_PDB_ENABLED | No | Enables live RCSB PDB retrieval. Requires provider network access. | |
| IEDB_LIVE_ENABLED | No | Enables live IEDB MHC-I/II predictors. Requires access to the relevant IEDB APIs. | |
| IEDB_BCELL_ENABLED | No | Enables BepiPred-3.0 live B-cell prediction. Requires access to the relevant IEDB APIs. | |
| IMMUNOGRAPH_API_KEY | No | A long API key required for remote HTTP deployment security. | |
| ALPHAFOLD_DB_ENABLED | No | Enables live AlphaFold DB retrieval. Requires provider network access. | |
| IMMUNOGRAPH_ALLOWED_HOSTS | No | Exact allowed hosts for the guarded Streamable HTTP endpoint. | |
| IMMUNOGRAPH_ALLOWED_ORIGINS | No | Exact allowed origins for the guarded Streamable HTTP endpoint. | |
| IEDB_POPULATION_COVERAGE_ENABLED | No | Enables live IEDB population coverage. Requires access to the relevant IEDB APIs. |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| validate_sequenceA | Validate one protein FASTA record and return its normalized sequence, length, header, and SHA-256 identity. Use before peptide generation or prediction; this checks sequence syntax, not structure or biological activity. Invalid input returns a structured validation error. |
| generate_candidate_peptidesA | Enumerate one-based peptide windows from a supplied protein sequence for MHC-I or MHC-II exploration. Use after validate_sequence and before prediction; this creates candidates, not binding scores. Returns each window with peptide, start, end, and length. |
| predict_mhciA | Get MHC-I peptide-binding observations for supplied class-I alleles and peptide lengths through the configured IEDB connector or an allowed exact fixture. Use for class-I evidence, not MHC-II or B-cell evidence. LIVE_ONLY requires the live connector; results include method and source provenance, and unavailable sources return a structured failure. |
| predict_mhciiA | Get MHC-II peptide-binding observations for supplied class-II alleles and peptide lengths through the configured IEDB connector or an allowed exact fixture. Use for class-II evidence rather than predict_mhci or predict_bcell. LIVE_ONLY requires the live connector; results include method and source provenance, and unavailable sources return a structured failure. |
| predict_bcellA | Score linear B-cell sequence positions using configured live IEDB BepiPred-3.0, local Parker hydrophilicity, or an exact GraphBepi fixture. Choose the method explicitly: Parker is a physicochemical proxy and GraphBepi is fixture-only in this release. Returns residue scores, regions, and provenance; live IEDB access may fail or time out. |
| predict_synthetic_bindingA | Create deterministic synthetic MHC binding values for demos and software tests from supplied candidates and alleles. Use only when teaching or testing the pipeline; use predict_mhci or predict_mhcii for configured scientific prediction. Output is marked synthetic and must not be treated as binding evidence. |
| normalize_scoresA | Transform supplied raw observations into comparable unit-interval values using a named versioned normalization registry. Use after evidence collection and before consensus or ranking; this does not fetch predictors or improve source quality. Returns normalized observations and records the applied transformation. |
| compute_consensusA | Combine one candidate group of normalized observations into weighted consensus, agreement, and completeness. Use after normalize_scores when the group and required weight are known; use compute_consensus_batch for several independent groups. It calculates from caller-supplied evidence and does not make a new prediction. |
| compute_consensus_batchA | Compute weighted consensus separately for multiple candidate groups in one call. Use instead of repeated compute_consensus calls when groups are already assembled; groups are not pooled together. Returns one result per supplied group, based only on its input observations. |
| calculate_population_coverageA | Estimate HLA population coverage for supplied peptide-allele associations using a configured authoritative IEDB service or an explicitly allowed exact fixture. Use when the allele restrictions and population IDs are known; use calculate_synthetic_population_coverage only for demonstrations. LIVE_ONLY requires the live service and the result carries source provenance. |
| calculate_synthetic_population_coverageA | Calculate deterministic demonstration coverage from synthetic HLA-frequency inputs. Use for teaching or testing the coverage pipeline, never as a population estimate; use calculate_population_coverage for a configured authoritative source. The output remains synthetic regardless of its numeric values. |
| rank_candidatesA | Calculate preliminary candidate scores or final stable ranks from supplied evidence snapshots and completion flags. Use PRELIMINARY before final constraints and FINAL only after base and final constraints are complete; this does not call predictors. Returns ranked candidates and applies the versioned ranking profile to the supplied values. |
| optimize_shortlist_coverageA | Select a deterministic T-cell shortlist from eligible ranked candidates using supplied population coverage and construct constraints. Use after final ranking when shortlist size or coverage is the decision; use optimize_construct_genetic for seeded construct search. The result depends on the supplied coverage matrix and is not an independently measured population outcome. |
| optimize_construct_geneticA | Run seeded genetic-style search over supplied candidates to balance construct size, coverage, redundancy, and manufacturability terms. Use after final ranking when searching construct arrangements; use optimize_shortlist_coverage for simpler deterministic shortlist selection. Returns a computed proposal, not a validated vaccine construct. |
| calibrate_confidenceA | Fit Platt or isotonic calibration on labeled samples and evaluate on separate labeled outcomes, or emit rule-based confidence. Use fitted modes only with real calibration and evaluation labels; rule-based mode has no measured reliability. Returns calibrated probabilities and metrics only where the input labels support them. |
| detect_overlapping_epitopesA | Find positional overlap competitors and connected components among candidate intervals. Use before apply_constraint_rules when overlaps need review; this tool does not choose a winner or deduplicate identities. Returns interval relationships from caller-supplied coordinates. |
| remove_duplicate_candidatesA | Group candidates with identical positional identity and choose canonical records. Use before apply_constraint_rules to remove true duplicates; identical peptide strings at different coordinates remain separate. Returns canonical and duplicate relationships without changing source evidence. |
| validate_thresholdsA | Evaluate the versioned hard biological threshold profile against supplied candidates. Use before categorization or final constraint application; this reports rule outcomes rather than ranking candidates. Missing evidence is represented in the rule results instead of invented as a pass. |
| categorize_candidatesA | Assign provisional decision categories and blocking conditions from supplied scores, rules, and thresholds. Use after scoring and rule evaluation; use rank_candidates for numeric ordering, not category assignment. Returns deterministic categories that retain the input evidence boundaries. |
| apply_constraint_rulesA | Apply base, duplicate, and overlap rules to one immutable candidate snapshot and return final rule outcomes. Use after validate_thresholds, remove_duplicate_candidates, and detect_overlapping_epitopes when their inputs are ready. The snapshot hash binds the decision to supplied evidence; this tool does not fetch new evidence. |
| fetch_structureA | Retrieve PDB coordinates from RCSB or an AlphaFold model from the configured provider, or replay an exact fixture. Use when a structure accession is known and before coordinate-based analyses; this is not sequence prediction. LIVE_ONLY requires network access and returns source provenance plus coordinate artifact bytes. |
| validate_structureA | Check supplied structure metadata and, when PDB bytes are provided, parse actual atoms, chains, and residues. Use before mapping, accessibility, or docking preparation; this does not evaluate model confidence or binding. Mismatched metadata returns a structured failure. |
| map_epitopes_to_structureA | Align supplied candidate sequence positions to residue coordinates in a PDB structure, or replay an exact fixture. Use after validate_structure when mapping sequence evidence onto a model; use calculate_surface_accessibility for solvent exposure. Direct-coordinate mode requires reference sequence and PDB bytes and returns mapped positions. |
| calculate_surface_accessibilityA | Calculate relative solvent accessibility for mapped residues with FreeSASA on supplied PDB coordinates, or replay an exact fixture. Use after map_epitopes_to_structure when asking whether residues are exposed; use calculate_structure_confidence for model pLDDT instead. Live computation requires FreeSASA and PDB bytes; output is computed accessibility, not epitope probability. |
| calculate_structure_confidenceA | Extract per-residue AlphaFold pLDDT from supplied AlphaFold PDB bytes or summarize supplied confidence metrics. Use to inspect local model confidence, not solvent exposure or epitope probability; experimental PDB B-factors are not accepted as pLDDT. Returns residue scores or a metric summary with source context. |
| detect_binding_pocketsA | Run fpocket on supplied PDB coordinates to identify geometric binding pockets, or replay an exact fixture. Use after structure validation for pocket exploration; use run_docking to score a prepared receptor-ligand pair. Live mode needs the fpocket binary and PDB bytes; pocket scores are computational descriptors. |
| create_molstar_viewA | Package supplied protein and optional ligand PDB coordinates into an interactive Mol* HTML viewer, or return an exact fixture reference. Use when a client needs a 3D visualization after structure or docking work; this does not calculate a new pose. Returns HTML bytes whose viewer loads its library from a CDN. |
| fetch_compoundA | Retrieve compound identity and SMILES from configured PubChem access or replay an exact fixture. Use with a known compound reference before validation or ligand preparation; this does not calculate descriptors. LIVE_ONLY requires PubChem access and returns source provenance. |
| validate_compoundA | Parse and canonicalize supplied SMILES with RDKit for live-sourced compounds, or validate an explicit fixture record. Use before deduplication, descriptors, or ligand preparation; this checks chemical syntax and identity, not biological activity. RDKit unavailability returns a structured failure for the live path. |
| deduplicate_compoundsA | Compare supplied compounds by RDKit canonical isomeric SMILES and InChIKey when live chemistry is requested. Use after validate_compound to collapse chemical identity duplicates; this is distinct from remove_duplicate_candidates, which handles epitope positions. Returns canonical groups and preserves input provenance. |
| calculate_molecular_descriptorsA | Calculate molecular descriptor values for a supplied SMILES using the selected RDKit or lightweight method. Use after validate_compound for chemistry features; this does not predict binding or prepare 3D ligand coordinates. RDKit mode requires its runtime, while lightweight estimates are explicitly identified as such. |
| prepare_ligandA | Generate a 3D SDF and Meeko PDBQT from supplied SMILES using configured RDKit and Meeko, or return an exact fixture reference. Use before run_docking for a ligand; calculate_molecular_descriptors does not produce docking coordinates. Live preparation returns artifact bytes and hashes and fails if a required runtime is absent. |
| prepare_receptorA | Convert supplied protein PDB coordinates and selected chains into receptor PDBQT with Meeko, or return an exact fixture reference. Use before run_docking for the receptor; validate_structure checks coordinates but does not prepare charges or PDBQT. Live preparation requires the Meeko runtime and returns artifact bytes. |
| validate_docking_boxA | Validate the center and size of a proposed docking search box and calculate its volume. Use before run_docking to catch invalid box geometry; this does not run Vina or establish a binding site. Returns validated dimensions or a structured validation failure. |
| run_dockingA | Run configured AutoDock Vina on receptor and ligand PDBQT bytes inside a supplied box, or replay an exact fixture. Use after prepare_receptor, prepare_ligand, and validate_docking_box; LIVE_ONLY requires Vina and never silently substitutes a fixture. Returns scored coordinate poses, viewer HTML, and ZIP bytes; runtime can be substantial and scores are computational estimates. |
| cluster_docking_posesA | Group supplied Vina ligand poses by coordinate RMSD using DBSCAN or hierarchical clustering, or replay an exact fixture. Use after run_docking to summarize pose diversity; this does not redock or measure affinity. Direct mode requires matching pose records and PDBQT bytes and returns cluster assignments. |
| extract_interactionsA | Run PLIP on a supplied protein-ligand complex PDB to identify computed contact geometry, or replay an exact fixture. Use after run_docking when a representative pose has been exported; this does not experimentally measure binding. Live mode requires PLIP and returns structured contacts plus the original XML artifact. |
| generate_reportA | Render the supplied approved report snapshot into requested JSON, Markdown, or CSV artifacts. Use after evidence review when a report is needed; export_candidates is for candidate rows and export_research_package is for a ZIP. Returns inline file bytes with lengths and SHA-256 hashes; it does not independently fetch evidence. |
| export_candidatesA | Serialize supplied candidate records into JSON or CSV with raw and normalized scores kept separate. Use after candidate review for a table export; generate_report produces a broader report. Returns file bytes and checksum metadata, not new scientific scores. |
| visualize_resultsA | Build a deterministic visualization view model from supplied evidence for the selected chart or graph type. Use when a UI will render results; create_molstar_view is for coordinate-based 3D HTML. Returns view-model data, not a PNG or an independent scientific analysis. |
| explain_candidateA | Explain a fixed candidate category and score from supplied component scores, rule outcomes, and provenance. Use after ranking and constraints when a researcher needs a decision rationale; this cannot change scientific values. Deterministic mode uses only supplied evidence; optional LLM paraphrase needs its configured runtime. |
| export_workflow_traceA | Serialize supplied ordered workflow events into a redacted JSON trace artifact. Use for audit or reproducibility after a workflow; generate_report is for the scientific summary. Returns inline bytes and SHA-256 metadata while omitting secrets and private reasoning. |
| describe_agentic_workflowA | Describe the bounded workflow manifest, stage permissions, and approval gates without running tools. Use to inspect orchestration before run_agentic_workflow; this is a description, not a live scientific call. Returns the declared stages and tool permissions. |
| run_agentic_workflowA | Execute caller-supplied approved typed toolCalls in bounded stage order, or return a plan if no calls are supplied. Use when the client has already selected inputs and allowed tools; describe_agentic_workflow only inspects the manifest. The tool does not autonomously invent calls, and approval gates pause rather than self-approve. |
| chat_with_research_agentA | Answer a researcher question from the supplied evidence summary under the bounded agent policy. Use for an explanation after evidence has been assembled; this tool does not independently retrieve papers, predict epitopes, or run the workflow. Deterministic mode cites supplied evidence; LLM mode requires configured model access. |
| export_research_packageA | Build a checksummed research ZIP from a supplied package snapshot and selected sections. Use after reports and artifacts are ready for handoff; generate_report exports individual report files. It serializes supplied evidence and metadata rather than launching predictors or docking. |
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 46 tools
Despite 46 tools, descriptions consistently state scope boundaries and name explicit alternatives (predict_mhci vs predict_mhcii vs predict_bcell, compute_consensus vs compute_consensus_batch, remove_duplicate_candidates vs deduplicate_compounds, generate_report vs export_candidates). A few near-neighbors remain easy to confuse at a glance—the synthetic vs authoritative pairs, and create_molstar_view vs visualize_results vs generate_report—but the prose resolves them. No two tools appear to do the same thing.
Every tool is snake_case with a verb-first, object-second pattern (validate_sequence, calculate_surface_accessibility, prepare_ligand, run_docking, export_workflow_trace). Suffix modifiers like _batch and prefixes like compute_/calculate_ are used consistently within their families. Minor quirks (predict_mhci without a separator before the numeral) do not break predictability.
The 46 tools map onto genuinely distinct pipeline stages—sequence, prediction, consensus, constraints, structure, chemistry, docking, reporting, and orchestration—so most earn their place rather than being padding. Still, 46 is heavy for a single MCP surface and forces an agent to plan across many stages, with several parallel 'synthetic/demo' twins adding surface area.
The surface covers the full lifecycle from sequence validation through prediction, normalization, consensus, ranking, constraints, structure mapping, docking, interaction analysis, and reporting/orchestration export. Gaps are minor: no allele/population listing or lookup tools, no async job status or artifact retrieval, and no cleanup or cache management operations.