Skip to main content
Glama

Read graph values and text from a page region

get_figure_data
Read-onlyIdempotent

Returns what a region of a document page (a datasheet, or a computed sheet in related_documents) draws as PDF vectors and text. For graphs drawn with vector paths: per-plot axis calibration from printed tick labels, curve points in data units, y at requested x_values and x at requested y_values (reverse lookup); values are withheld when the axes are not certain. For any region (graphs, package drawings, pinouts, schematics): region_text, the PDF text-layer items with positions. region takes the page and bbox_rel of a get_datasheet_map figure, widened by about 10% of the page. Curve names and which text labels what are not identified; get_page_image shows them. No OCR, fitting to models or unit conversion.

Input Schema

NameRequiredDescriptionDefault
pageYes
regionNonormalized x/y/width/height on the rotation-applied page (top-left origin); default whole page
x_valuesNox positions in the graph's own units (e.g. 0.001 for 1 ms on a seconds axis); each curve reports y or why not
y_valuesNoy positions in the graph's own units for reverse lookup (e.g. collector current on an Ic–VCE graph); each curve reports x (inverse_samples) or why not. x_values + y_values ≤ 20
doc_sha256Yes
include_text_layoutNoadd text baselines and baseline-aligned row candidates (text_id references) to region_text — for small tables inside figures; meaning of rows is not interpreted
max_points_per_curveNodefault 200; points are simplified (0.1 pt) and capped, samples use the full geometry
include_annotation_geometryNoadd per plot the thin/short lines excluded from curves (label leader lines, legend swatch candidates) with the texts and curves near their ends — geometry only; which label belongs to which curve is not decided

Output Schema

NameRequiredDescriptionDefault
noteNo
pageNo
plotsNo
reasonNo
regionNo
statusYes
messageNo
omittedNo
extractorNo
page_sizeNo
pdf_bytesNo
retryableNo
doc_sha256No
page_countNo
request_idNo
point_basisNo
region_textNo
citation_urlNo
region_basisNo
retry_after_msNo
sample_summaryNo
schema_versionNo
withdrawn_noteNo
withdrawn_documents_omittedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare the safe read-only/idempotent profile, and the description adds substantial non-obvious behavior: values are withheld when axis calibration is uncertain, region is auto-widened ~10%, no OCR/model-fitting/unit conversion, and label-to-curve association is not resolved. These limitations are exactly what an agent needs to trust or distrust the output.

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?

Purpose is front-loaded in the first clause, and the dense sentences carry distinct caveats rather than filler. It is long and clause-heavy for a single paragraph, but for an 8-parameter tool with real behavioral limits, nearly every sentence earns its place.

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?

For a high-complexity extraction tool, the description covers inputs, output modes, calibration failure behavior, geometry-vs-sample semantics, and sibling handoffs. An output schema exists so return values need not be restated, and the remaining gaps are marginal.

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?

With 75% schema coverage, the description still adds real meaning: x_values/y_values are in the graph's own units, y_values drives reverse lookup (inverse_samples), max_points_per_curve defaults to 200 with 0.1pt simplification, and include_text_layout/include_annotation_geometry have explicit caveats. page and doc_sha256 remain undocumented but are self-evident.

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: returns what a page region draws, both as vector-calibrated data (curve points in data units, y at x_values, x at y_values) and as text-layer items. It also distinguishes itself from get_page_image (which identifies curve names and labels), so an agent can differentiate it from siblings without opening schemas.

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?

Clear context is given: call it for datasheets/computed sheets, use get_datasheet_map to obtain the region's bbox_rel, and fall back to get_page_image when you need to know which label names which curve. It does not explicitly state when NOT to use it versus siblings like get_page_blocks or compare_points, so it falls short of full 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.

Resources