Skip to main content
Glama
systemsomicslab

ms-data-parser

arf_plot_volcano

Read-only

Renders a two-group volcano plot from a completed differential analysis as an in-chat PNG, or returns JSON payload for client-side charts. Run differential analysis first.

Instructions

Show the latest two-group volcano — as a PNG image by default.

Run arf_differential (two-group) first. Read-only; writes no file.

output="image" (the default) renders the plot server-side and returns it as an image block plus a one-line caption, so the figure appears directly in the chat. output="payload" instead returns the client-neutral lipidmix.volcano.v1 JSON for a client that draws its own interactive chart (Use-LLLM's Plotly view); the deployment default can be flipped with the LIPIDMIX_PLOT_OUTPUT environment variable.

Prefer the image: the coordinate payload costs tens of thousands of tokens and an LLM cannot read a point cloud usefully — the numbers you should reason about (counts, top hits, caveats) are in arf_differential's own result. In payload mode, up/down points are always kept in full and only ns points are thinned to fit max_points; every count is reported in selection. The image always draws every feature.

Call save_figure(kind="volcano") only when the user wants the PNG written to disk.

Input Schema

NameRequiredDescriptionDefault
titleNo
outputNo
max_pointsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond readOnlyHint=true: declares that it writes no file, describes server-side rendering and the image-block-plus-caption return shape, the alternative JSON payload contract (lipidmix.volcano.v1), the LIPIDMIX_PLOT_OUTPUT env override, and a token-cost warning. It also discloses the thinning rule and that counts are reported in `selection`, which is exactly the kind of behavioral caveat annotations cannot express.

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?

Front-loaded with the core action and the prerequisite, then structured mode-by-mode. Dense but nearly every clause carries decision-relevant information; the payload-mode paragraph is long and the parenthetical "Use-LLLM's Plotly view" is incidental, keeping it just short of fully economical.

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?

No output schema exists, yet the description covers return shapes for both modes, the prerequisite step, the cost tradeoff, the disk-write alternative, and the deployment-level default. For a plot tool with three params and no annotations beyond read-only, nothing an agent needs in order to call it correctly or choose a mode is missing.

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 0%, so the description must carry the parameters, and it does explain `output` ("image" vs "payload" plus default and env override) and `max_points` (only ns points are thinned; up/down always kept; image always draws every feature). The third parameter, `title`, is never mentioned, leaving one small gap.

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 resource ("Show the latest two-group volcano"), names the default rendering medium (PNG image), and implicitly distinguishes itself from arf_plot_species and the separate save_figure writer. An agent can tell what it produces and in what form 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 Guidelines5/5

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

Explicitly states the prerequisite ("Run arf_differential (two-group) first"), states a preference ("Prefer the image"), gives a rationale, and routes the disk-writing case to save_figure(kind="volcano"). When-to-use and when-to-use-something-else are both spelled out.

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