Skip to main content
Glama

fl_probe

Idempotent

Verify the live FL Studio connection by returning API and Python versions, process ID, and pipe handle, or explaining what is missing. Launches loopMIDI and FL if needed before live tools run.

Instructions

Check the live link to FL: returns FL's scripting API version, its embedded Python version, FL's pid and the pipe handle it holds, or an error saying what is missing. Call it first when a live tool (fl_exec, fl_call, fl_transport, project_write with open) fails, and after fl_install. Launches loopMIDI and FL when they are not running (launched_fl_seconds says how long FL took). Reads nothing from the project. Windows with FL Studio only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.6/5.0
Behavior4/5

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

It goes well beyond the annotations by disclosing the real side effect (launches loopMIDI and FL when they are not running, with launched_fl_seconds reporting FL's startup time), which explains why readOnlyHint=false despite the tool not touching the project. It also promises a self-describing error rather than a silent failure. It stops short of covering timeouts, blocking duration, or what happens if a launch fails, which is why it is not a 5.

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?

Front-loaded with the return values an agent needs to interpret the result, then the invocation triggers, then the side effects and platform caveats. Every clause carries information; nothing is redundant with the name or schema.

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 zero-parameter, no-output-schema diagnostic whose behavior is environment-dependent, the description covers returns, side effects, triggers, and platform limits. Minor gaps remain around how long the call may block when it has to launch FL, or what the error states look like beyond 'an error saying what 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?

The tool takes zero parameters, so per the rubric the baseline is 4. The description correctly implies a no-argument call and adds no confusing parameter talk.

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 names a specific operation (probe the live FL link) and enumerates exactly what it returns: FL's scripting API version, embedded Python version, pid, pipe handle, or a descriptive error. It is immediately distinguishable from siblings like fl_exec, fl_call, and fl_transport, which act on the link rather than diagnose it.

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?

It gives explicit triggers: call it first when a live tool (fl_exec, fl_call, fl_transport, project_write with open) fails, and after fl_install. It also names the platform precondition (Windows with FL Studio only) and states it reads nothing from the project, implicitly excluding it from data-retrieval workflows.

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