Skip to main content
Glama
synopsys0

PostFader V10 — FL Studio MCP Server

fl_set_song_position

Destructive

Set a stopped FL Studio transport's playhead to a specific normalized position, enabling precise song navigation before playback.

Instructions

Set a stopped transport's absolute normalized playhead position.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toleranceNoMaximum normalized readback error.
expected_beforeNoOptional expected current normalized position.
position_normalizedYesAbsolute normalized playhead position.
session_fingerprintNoOptional bridge/project-session fingerprint from a recent read. The write refuses after bridge reload or a reported project load. This is a concurrency guard, not authentication or a durable project identity.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
verifiedYes
warningsNo
toleranceYes
applied_atYes
project_savedNo
bridge_commandNotransport.set_song_position
schema_versionNo1.0
undo_point_createdNo
verification_basisNoreadback_on_a_later_fl_idle_tick
session_fingerprintNo
verification_summaryYes
expected_before_appliedNo
session_precondition_appliedNo
after_song_position_normalizedNo
before_song_position_normalizedNo
requested_song_position_normalizedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv10.0.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds the critical precondition that the transport must be stopped and clarifies that the position is absolute and normalized. This goes beyond the annotations by specifying a behavioral constraint (stopped) and the exact positioning semantics, which is valuable for correct invocation.

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 description is a single sentence, front-loaded with the key action and constraints. There is no wasted verbiage, and every word contributes to the meaning. It is appropriately concise for the complexity of the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (4 parameters, one with a nested object), the schema covers parameter semantics thoroughly, and annotations cover the destructive/non-idempotent nature. The description adds the key 'stopped' precondition and 'absolute normalized' semantics. However, it does not mention the session_fingerprint concurrency guard (though that is in the schema) or any failure modes, and it lacks explicit usage guidance. It is adequate but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter already having a detailed description (e.g., position_normalized as 'Absolute normalized playhead position', session_fingerprint with its concurrency guard semantics). The tool description adds no additional parameter information, so it does not improve on the schema. Per the rubric, the baseline of 3 applies when schema covers all parameters.

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?

The description states a specific verb ('Set'), a clear resource ('transport's playhead position'), and two qualifying attributes ('stopped' and 'absolute normalized'). This clearly distinguishes the tool from siblings like fl_set_playing or fl_stop, and conveys exactly what action it performs without ambiguity.

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

Usage Guidelines2/5

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

The description only implies usage by mentioning 'stopped transport', but provides no explicit guidance on when to use this tool versus alternatives (e.g., fl_set_playing, fl_stop, fl_set_loop_mode). It does not state when not to use it or mention any exclusions, leaving the agent to infer from the name and description.

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

Deploy Server

Other Tools