Skip to main content
Glama

Interchange (read)

interchange_read
Read-onlyIdempotent

Reads interchange files and state without side effects so you can find IDs and verify results; supports .cube headers, EDL, FCPXML, marker CSV, and OTIO.

Instructions

Read interchange state, no side effects: use it to find ids and check results. op.action (params; * = required):

  • read_cube_lut(path*): Read a .cube header: title, dimension, size, domain and entry count.

  • read_edl(path*): Parse a CMX3600 EDL into events.

  • read_fcpxml(path*): Parse an FCPXML file: assets, clips and markers.

  • read_marker_csv(path*): Read a marker CSV (header names are matched leniently).

  • read_otio(path*): Parse an OpenTimelineIO JSON file: tracks, clips, gaps and markers.

Input Schema

NameRequiredDescriptionDefault
opYes{action, ...params}. Parameters per action: see the description or this server's describe_action tool.

Output Schema

NameRequiredDescriptionDefault
actionYes
resultYes
channelYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so 'no side effects' adds little. The description earns credit elsewhere by disclosing what each parse yields (events, assets/clips/markers, tracks/gaps/markers) and the non-obvious trait that read_marker_csv matches header names leniently. It stays silent on failure behavior for malformed or missing files.

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?

A single front-loaded line establishes purpose and safety, followed by a compact action list where every bullet adds a distinct parse target. No filler sentences and no repetition of schema detail.

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?

With an output schema present, the description rightly omits return-value documentation and focuses on action selection, which is the real complexity here (one nested op object dispatching to five behaviors). Remaining gaps are error and path-resolution semantics, which matter for a file-parsing tool but are secondary.

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?

The schema is 100% described but only at the wrapper level ('{action, ...params}') and explicitly defers to the description or describe_action, so the description is what actually documents that each action takes a single required path*. That per-action required-param listing is real added value. It does not explain what a path is relative to, or any format constraints on it.

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?

The description gives a specific verb and resource (read/parse interchange files) and then enumerates all five actions with concrete objects: .cube header, CMX3600 EDL, FCPXML, marker CSV, OTIO JSON. An agent knows exactly what it is invoking. It never names interchange_write, so the read/write split is only implied by 'no side effects' rather than stated.

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

Usage Guidelines3/5

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

'use it to find ids and check results' gives one concrete use case, which orients an agent toward inspection workflows. There is no when-not guidance, no exclusion for large or malformed files, and no explicit routing to the sibling interchange_write or to describe_action for richer param help.

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