Skip to main content
Glama

Plot Dataset

plots.dataset
Idempotent

Figure over an EEG data source — the visual companion to data.inspect_dataset. kind=psd (Welch, channel mean bold), kind=bandpower (channel × band dB heatmap), kind=topomap (band-power scalp map), kind=spectrogram (time-frequency for one channel). Sources are the same ones inspect uses: MOABB packs, uploads, local files.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "kind": "<kind>",
      "source": "<source>"
    },
    "name": "plots.dataset"
  }
}

Input Schema

NameRequiredDescriptionDefault
bandNoBand for kind=topomap: delta|theta|alpha|beta|gamma (default alpha).alpha
kindYesFigure type: psd | topomap | bandpower | spectrogram.
modeNoPack split to load: training | evaluation | all (source=dataset).all
pathNoUpload path (source=upload) or absolute local path (source=local).
saveNoLocal/stdio: also write the PNG to NIMBUS_EXPORT_DIR/plots/ and return its path. Ignored on the hosted gateway (the image is returned inline).
sourceYes"dataset" (MOABB pack), "upload" (path from data.upload), or "local" (absolute path, local backend only).
datasetNoMOABB dataset id, e.g. "BNCI2014_001" (source=dataset).
subjectNoSubject id, e.g. "S01" (source=dataset).
channel_idxNo0-based channel for kind=spectrogram (default 0).

Output Schema

NameRequiredDescriptionDefault
okYes
metaNoFigure sidecar. foundation.compare includes results/best/skipped (also as a JSON text content block).
titleNo
mimeTypeNo
savedPathNoSet when save=true.
sizeBytesNoSet when save=true.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / band / enum
      Added value: +[
      +  "delta",
      +  "theta",
      +  "alpha",
      +  "beta",
      +  "gamma"
      +]
    • addedInput schema / properties / kind / enum
      Added value: +[
      +  "psd",
      +  "topomap",
      +  "bandpower",
      +  "spectrogram"
      +]
    • addedInput schema / properties / mode / enum
      Added value: +[
      +  "training",
      +  "evaluation",
      +  "all"
      +]
    • changedInput schema / properties / save / description
      Previous value: -"Also write the PNG to NIMBUS_EXPORT_DIR/plots/ and return its path."New value: +"Local/stdio: also write the PNG to NIMBUS_EXPORT_DIR/plots/ and return\nits path. Ignored on the hosted gateway (the image is returned inline)."
    • addedInput schema / properties / source / enum
      Added value: +[
      +  "dataset",
      +  "upload",
      +  "local"
      +]
  2. Changed1 schema field changed
    • addedOutput schema / properties / meta / description
      Added value: +"Figure sidecar. foundation.compare includes results/best/skipped (also as a JSON text content block)."
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "meta": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "mimeType": {
      +      "type": "string"
      +    },
      +    "ok": {
      +      "type": "boolean"
      +    },
      +    "savedPath": {
      +      "description": "Set when save=true.",
      +      "type": "string"
      +    },
      +    "sizeBytes": {
      +      "description": "Set when save=true.",
      +      "type": "integer"
      +    },
      +    "title": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "ok"
      +  ],
      +  "type": "object"
      +}
  4. Added

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare the key safety profile (destructive=false, idempotent=true, openWorld=true, readOnly=false), and the description mainly restates that it produces figures. It does not add much behavioral detail beyond that, such as side effects of saving or hosted-vs-local differences, though the schema documents save behavior.

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?

One compact paragraph front-loads the purpose, then enumerates kinds and sources without repetition. The 'channel mean bold' phrase is a bit unclear, but overall the description is appropriately sized and structured.

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 9-parameter tool with full schema coverage, an output schema, and annotations, the description is complete enough to identify the tool and its plot variants. It could mention the plot-tool family more explicitly, but the omitted operational parameter details are already in the schema.

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

Parameters4/5

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

Schema coverage is 100%, so the schema carries most parameter documentation; the description still adds useful meaning for kind values (Welch PSD, channel × band heatmap, scalp map, one-channel time-frequency). It does not explain band, channel_idx, mode, or save, but those are covered in the schema, making 3 the baseline and the added kind semantics justify a 4.

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

Purpose4/5

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

States that it produces a figure over an EEG data source and calls itself the visual companion to data.inspect_dataset, then enumerates four plot kinds. It clearly distinguishes from inspect_dataset, but does not contrast with other plot siblings such as plots.erp or plots.confusion.

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?

The 'visual companion to data.inspect_dataset' line and the shared source types give clear context for using this to visualize the same EEG sources. It does not say when to choose it over plots.erp/plots.confusion or give exclusions, so it stops short of explicit alternative routing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.