Skip to main content
Glama
Ajey95

ImmunoGraph MCP

predict_synthetic_binding

Read-onlyIdempotent

Generates deterministic synthetic MHC binding values from candidate peptides and HLA alleles for demos, teaching, and pipeline tests, not for scientific binding evidence.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
runIdYesCaller-chosen identifier linking this call to one research run.
methodYesAlgorithm or provider method selected for this operation; inspect allowed schema values.
allelesYesHLA allele identifiers relevant to the selected MHC class.
candidatesYesCaller-supplied candidate records; required nested fields depend on this operation.
proteinHashYesSHA-256 identity of the protein sequence associated with these candidates.
candidateTypeYesMHC class or candidate category this operation applies to.
methodVersionYesVersion of the selected calculation method.
datasetVersionYesVersion label for the synthetic demonstration dataset.

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. Changed10 schema fields changedv0.2.1
    • addedInput schema / properties / alleles / description
      Added value: +"HLA allele identifiers relevant to the selected MHC class."
    • addedInput schema / properties / candidateType / description
      Added value: +"MHC class or candidate category this operation applies to."
    • addedInput schema / properties / candidates / description
      Added value: +"Caller-supplied candidate records; required nested fields depend on this operation."
    • addedInput schema / properties / candidates / items / properties / candidateType / description
      Added value: +"MHC class or candidate category this operation applies to."
    • addedInput schema / properties / datasetVersion / description
      Added value: +"Version label for the synthetic demonstration dataset."
    • addedInput schema / properties / method / description
      Added value: +"Algorithm or provider method selected for this operation; inspect allowed schema values."
    • addedInput schema / properties / methodVersion / description
      Added value: +"Version of the selected calculation method."
    • addedInput schema / properties / proteinHash / description
      Added value: +"SHA-256 identity of the protein sequence associated with these candidates."
    • addedInput schema / properties / runId / description
      Added value: +"Caller-chosen identifier linking this call to one research run."
    • 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.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description reinforces this with 'deterministic' plus the important caveat that output 'is marked synthetic and must not be treated as binding evidence' — a genuine safety disclosure an agent would not get from the schema. The word 'Create' is not a contradiction because it describes computing values, not persisting state, but the description does not state where output goes beyond the output schema.

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

Conciseness5/5

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

Three short sentences: purpose, routing rule, safety caveat — ordered by importance with zero filler. Every sentence carries distinct information.

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

Completeness5/5

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

With an output schema present, a fully-described 8-parameter schema, and readOnly/idempotent annotations, the remaining burden is purpose, routing and misuse warnings — all of which the description supplies. Nothing an agent needs to call this correctly is missing.

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 description coverage is 100%, so all 8 parameters are already documented in the schema. The description only alludes to 'candidates and alleles' and adds nothing about method/methodVersion/datasetVersion selection, so it sits at the baseline for a fully-documented schema.

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?

Specific verb ('Create'), specific resource ('deterministic synthetic MHC binding values'), and an explicit statement of the domain it applies to ('demos and software tests'). It is immediately distinguishable from predict_mhci/predict_mhcii, which are named in the same breath.

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?

Gives an explicit when ('only when teaching or testing the pipeline') and a when-not with the correct alternatives ('use predict_mhci or predict_mhcii for configured scientific prediction'). No inference required from the agent.

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