Skip to main content
Glama
Ajey95

ImmunoGraph MCP

export_research_package

Read-onlyIdempotent

Build a checksummed research ZIP from a supplied snapshot and selected sections for handoff after reports and artifacts are ready. Serializes evidence and metadata; does not run predictors or docking.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
runIdYesCaller-chosen identifier linking this call to one research run.
idempotencyKeyYesCaller-supplied stable key for repeatable export identity.
includeDockingYesWhether to include supplied docking artifacts in the package.
packageSnapshotNoComplete caller-supplied research snapshot to serialize into the ZIP.
includeChemistryYesWhether to include supplied chemistry artifacts in the package.
includeStructureYesWhether to include supplied structure artifacts in the package.
includeAgentTraceYesWhether to include supplied agent trace data in the package.

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. Changed13 schema fields changedv0.2.1
    • addedInput schema / properties / idempotencyKey / description
      Added value: +"Caller-supplied stable key for repeatable export identity."
    • addedInput schema / properties / includeAgentTrace / description
      Added value: +"Whether to include supplied agent trace data in the package."
    • addedInput schema / properties / includeChemistry / description
      Added value: +"Whether to include supplied chemistry artifacts in the package."
    • addedInput schema / properties / includeDocking / description
      Added value: +"Whether to include supplied docking artifacts in the package."
    • addedInput schema / properties / includeStructure / description
      Added value: +"Whether to include supplied structure artifacts in the package."
    • addedInput schema / properties / packageSnapshot / description
      Added value: +"Complete caller-supplied research snapshot to serialize into the ZIP."
    • addedInput schema / properties / packageSnapshot / properties / candidates / description
      Added value: +"Caller-supplied candidate records; required nested fields depend on this operation."
    • addedInput schema / properties / packageSnapshot / properties / compounds / description
      Added value: +"Compound records to compare by canonical chemical identity."
    • addedInput schema / properties / packageSnapshot / properties / compounds / properties / compounds / description
      Added value: +"Compound records to compare by canonical chemical identity."
    • addedInput schema / properties / packageSnapshot / properties / construct / properties / fasta / description
      Added value: +"One protein FASTA record with header and amino-acid sequence."
    • addedInput schema / properties / packageSnapshot / properties / predictions / description
      Added value: +"Predicted values to calibrate or score using the selected method."
    • 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.2/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 real context beyond that: the output is checksummed, and the tool serializes supplied data rather than deriving it ('serializes supplied evidence and metadata rather than launching predictors or docking') – an important expectation that a missing section cannot be regenerated. It says nothing about failure modes when required sections are absent, which keeps it below 5.

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, front-loaded with what the tool produces, then when to use it, then a scope boundary. No filler and nothing repeated from structured fields.

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?

For a 7-parameter tool with deep nested objects, the description covers purpose, timing, the sibling alternative, and the non-computing nature; an output schema exists so return values need no explanation, and the schema documents every field. The remaining gap is behavior when the supplied snapshot is missing a section flagged by an include* boolean, which cannot be inferred from either structured field.

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%, including per-flag text ('Whether to include supplied ... artifacts'), so the schema carries the parameter burden and baseline 3 applies. The phrase 'selected sections' hints that the include* booleans gate package contents, but it adds no format, default, or interaction detail beyond what the schema already documents.

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 and artifact ('Build a checksummed research ZIP') plus the inputs it consumes ('supplied package snapshot and selected sections'). The closing clause explicitly separates it from compute tools ('rather than launching predictors or docking') and from generate_report, so an agent can place it without opening the schema.

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

Usage Guidelines4/5

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

'Use after reports and artifacts are ready for handoff' gives a clear precondition, and 'generate_report exports individual report files' names the nearest alternative with the distinction that selects between them. It does not cover the other export siblings (export_candidates, export_workflow_trace), so the when-not guidance is incomplete rather than absent.

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