Skip to main content
Glama

get_schema

Read-onlyIdempotent

Describes the field names and types in a JSON document or selected JSONPath subtree, merging matches, so you can identify valid paths for querying without reading values.

Instructions

Field names and types of the document — never values. With no path, describes the whole document; with a path, describes just what it selects, merged across matches (so $.tasks[*] describes an element, not the first element). Array shapes are inferred from up to 30 elements; use profile for exact coverage/counts. Start here: it is how you learn which paths run_query can use. For one question, pass filePath directly; it opens the file and returns a reusable docId in the same call. A path that matches nothing returns an error naming that path.

Input Schema

NameRequiredDescriptionDefault
pathNoOptional query selecting the subtree to describe, e.g. $.tasks[*].
docIdNoA docId returned by load_doc.
filePathNoFile to open now instead of supplying docId.

Output Schema

NameRequiredDescriptionDefault
okYes
hintNo
toolYes
errorNo
evictedNo
structuredTruncatedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds real behavioral detail beyond them: array shapes are inferred from at most 30 elements (a sampling limitation), results are merged across all matches rather than taking the first, and an unmatched path returns an error naming that path. These are exactly the operational traits an agent cannot get from the annotations.

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?

The most important claim (fields/types, never values) is front-loaded, followed by scoping, limitations, and routing in that order. Every clause carries distinct information — the merge behavior and 30-element cap are not restated elsewhere, so nothing is padding.

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?

An output schema exists, so return structure need not be described, and the description instead fills the gaps that matter for a 3-param discovery tool: entry-point ordering, path merge semantics, sampling limits, and error behavior on no match. Nothing an agent needs to call it correctly 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 100%, so the baseline is 3, and the description genuinely adds semantics: path results are 'merged across matches (so $.tasks[*] describes an element, not the first element)', and filePath both opens the file and returns a reusable docId in the same call. It stops short of documenting any path syntax beyond the single example already present in the 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?

Opens with a specific, differentiating statement of what it returns ('field names and types of the document — never values'), which immediately separates schema discovery from value-returning siblings like run_query or sample. It also names the scoped variants (whole document vs. path subtree), so an agent knows exactly what the resource is.

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 routes the agent: 'Start here: it is how you learn which paths run_query can use' establishes ordering relative to run_query, and 'use profile for exact coverage/counts' names the alternative and the condition that selects it. 'For one question, pass filePath directly' resolves the docId-vs-filePath choice concretely.

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