Skip to main content
Glama
Ajey95

ImmunoGraph MCP

map_epitopes_to_structure

Read-onlyIdempotent

Aligns candidate sequence positions to PDB residue coordinates so you can map epitope evidence onto a structural model; supports direct coordinate mapping or exact fixture replay.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
runIdYesCaller-chosen identifier linking this call to one research run.
candidatesYesCaller-supplied candidate records; required nested fields depend on this operation.
mappingModeYesDIRECT_COORDINATE uses supplied PDB and reference sequence; FIXTURE replays an exact case.
structureIdYesStable identifier of the supplied or retrieved structure.
referenceSequenceNoProtein sequence whose positions are aligned to PDB residues.
structurePdbBase64NoBase64-encoded protein PDB coordinate bytes for direct computation.

Output Schema

NameRequiredDescriptionDefault
okYesWhether execution completed successfully.
dataNoTool-specific result fields on success.
metaYesRun identifiers, timings, and input/output hashes.
errorNoStructured failure on unsuccessful execution.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv0.2.1
    • addedInput schema / properties / candidates / description
      Added value: +"Caller-supplied candidate records; required nested fields depend on this operation."
    • addedInput schema / properties / mappingMode / description
      Added value: +"DIRECT_COORDINATE uses supplied PDB and reference sequence; FIXTURE replays an exact case."
    • addedInput schema / properties / referenceSequence / description
      Added value: +"Protein sequence whose positions are aligned to PDB residues."
    • addedInput schema / properties / runId / description
      Added value: +"Caller-chosen identifier linking this call to one research run."
    • addedInput schema / properties / structureId / description
      Added value: +"Stable identifier of the supplied or retrieved structure."
    • addedInput schema / properties / structurePdbBase64 / description
      Added value: +"Base64-encoded protein PDB coordinate bytes for direct computation."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "data": {
      +      "additionalProperties": {},
      +      "description": "Tool-specific result fields on success.",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "error": {
      +      "additionalProperties": false,
      +      "description": "Structured failure on unsuccessful execution.",
      +      "properties": {
      +        "category": {
      +          "type": "string"
      +        },
      +        "code": {
      +          "type": "string"
      +        },
      +        "details": {
      +          "additionalProperties": {},
      +          "properties": {},
      +          "type": "object"
      +        },
      +        "message": {
      +          "type": "string"
      +        },
      +        "retryable": {
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "category",
      +        "message",
      +        "retryable"
      +      ],
      +      "type": "object"
      +    },
      +    "meta": {
      +      "additionalProperties": {},
      +      "description": "Run identifiers, timings, and input/output hashes.",
      +      "properties": {
      +        "completedAt": {
      +          "type": "string"
      +        },
      +        "durationMs": {
      +          "type": "number"
      +        },
      +        "inputHash": {
      +          "type": "string"
      +        },
      +        "outputHash": {
      +          "type": "string"
      +        },
      +        "requestId": {
      +          "type": "string"
      +        },
      +        "runId": {
      +          "type": "string"
      +        },
      +        "startedAt": {
      +          "type": "string"
      +        },
      +        "toolName": {
      +          "type": "string"
      +        },
      +        "toolVersion": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "requestId",
      +        "runId",
      +        "toolName",
      +        "toolVersion",
      +        "startedAt",
      +        "inputHash"
      +      ],
      +      "type": "object"
      +    },
      +    "ok": {
      +      "description": "Whether execution completed successfully.",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "ok",
      +    "meta"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.2.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered; the description adds mode-dependent input requirements (direct-coordinate mode needs reference sequence and PDB bytes) and notes that fixture mode replays an exact case. It stops short of saying what happens on misalignment or when a mode's required inputs are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with what the tool does, then usage, then input requirements. "Returns mapped positions" is minor filler given an output schema exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With six parameters, an output schema, and read-only annotations, the description covers the mode split and prerequisites an agent needs. It leaves unstated how candidates' start/end/chainId are interpreted and whether structureId is required in both modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the mappingMode enum description already states that DIRECT_COORDINATE uses the supplied PDB and reference sequence, so the description's mode/parameter coupling largely restates the schema. It adds no detail on candidate start/end/chainId semantics or how structureId is used in fixture mode.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: aligning candidate sequence positions to residue coordinates in a PDB structure, plus the alternate fixture-replay mode. It is distinguishable from siblings like validate_structure and calculate_surface_accessibility without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly places the tool in a workflow ("Use after validate_structure when mapping sequence evidence onto a model") and routes the agent elsewhere for the adjacent task ("use calculate_surface_accessibility for solvent exposure"). Both the trigger condition and the alternative are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.