Skip to main content
Glama
btdt

famistudio-mcp

Official
by btdt

Read a .fms file

read_fms
Read-onlyIdempotent

Decode FamiStudio .fms projects into structured JSON with songs, channels, patterns, notes, and instrument envelopes. Use includeNotes=false to get a structural overview of large projects.

Instructions

Decode a FamiStudio project file into structured JSON: songs, channels, patterns and notes, plus instrument envelope contents. Set includeNotes=false for a structural overview of large projects. Only version 19 files (FamiStudio 4.5.x) can be read; older files must be re-saved by FamiStudio.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the .fms file.
includeNotesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already convey readOnly, idempotent, and non-destructive. The description adds a critical behavioral restriction: version 19 only, with failure/re-save implications for older files. It also explains the structural-overview mode via includeNotes. This goes beyond the annotation baseline.

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?

Two tight sentences: the first front-loads the purpose and the content of the output, the second gives a parameter tip and a version constraint. Every sentence adds new information and there is no filler.

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 read-only tool with no output schema, the description covers the primary output content, the only optional parameter's behavior, and the version limitation. It does not mention error handling or default values, but given the simple 2-parameter surface and strong annotation coverage, it is sufficiently complete for correct invocation.

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 description coverage is 50% (path only). The description compensates for the undocumented includeNotes parameter by explaining its effect: setting it to false yields a structural overview for large projects. It also clarifies that the tool returns structured JSON content, which gives meaning to both parameters in context.

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 clearly states the verb ('Decode') and resource ('.fms file') and enumerates the output content (songs, channels, patterns, notes, instrument envelopes). It is specific enough to distinguish the tool from create_fms or export_audio, but it does not name any sibling tool explicitly, so it misses the top tier for differentiation.

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 description gives explicit guidance about when to set includeNotes=false for large projects and places a hard constraint: only version 19 files (FamiStudio 4.5.x) can be read, with a clear instruction that older files must be re-saved. This is useful context, though it does not explicitly compare against alternatives like summarize_fms or famistudio_info.

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