Skip to main content
Glama
yairhdz24

flipper-mcp

by yairhdz24

flipper-mcp 🐬

Control your Flipper Zero from Claude (or any MCP client) over USB — no COM port needed. Screenshots, RF / NFC / IR / GPIO, and build & deploy your own apps (FAPs) — all over USB. Works on macOS, Linux, and Windows.

PyPI Python License: MIT CI

flipper-mcp demo


Why it's different

Most Flipper MCP servers just wrap the serial CLI. flipper-mcp goes further:

  • 🔌 Works with no COM port. On Windows, when the USB serial interface is bound to WinUSB (Google's ADB driver) and no COMx exists, it talks to the Flipper directly over the raw USB bulk endpoints via pyusb/libusb — no admin, no driver change. On macOS/Linux it uses the native serial device automatically. Transport is auto-selected: real serial port first, raw USB fallback.

  • 🛠️ Build & deploy your own apps (FAPs) over USB. Scaffold → build with ufbtupload to the SD card and launch — all over USB, no COM port required.

  • 📸 Screenshots + reliable virtual buttons. Capture the 128×64 framebuffer as a PNG, and send PRESS → SHORT/LONG → RELEASE button sequences that actually register.

  • 🧰 35 tools covering device info, power telemetry, SD-card storage (md5-verified binary transfer), Sub-GHz, NFC, RFID, Infrared (+ universal remotes), GPIO, I²C, iButton, LED, vibro, app control, and a raw CLI passthrough for everything else.

Built and verified live against a real Flipper Zero (firmware 1.4.3) on macOS and Windows.

Related MCP server: Flipper Zero MCP Server

Install (30 seconds)

# Run instantly, no install (recommended, once published to PyPI):
uvx flipper-mcp

# or with pip:
pip install flipper-mcp

Register with Claude Code

After pip install flipper-mcp (or using uvx), register the server once at user scope.

macOS / Linux:

claude mcp add --transport stdio --scope user \
  --env FLIPPER_TRANSPORT=auto \
  flipper -- flipper-mcp

Windows (PowerShell):

claude mcp add --transport stdio --scope user `
  --env FLIPPER_TRANSPORT=auto `
  flipper -- flipper-mcp

Then check /mcp inside Claude Code. Environment overrides:

Variable

Values

Meaning

FLIPPER_TRANSPORT

auto (default), serial, usb

Force a transport, or auto-select serial → raw USB

FLIPPER_COM_PORT

e.g. COM5, /dev/tty.usbmodemflip_xxxx

Force a specific serial port

macOS/Linux: the Flipper appears automatically as /dev/tty.usbmodemflip_* (macOS) or /dev/ttyACM* (Linux). Close qFlipper first — only one program can hold the port at a time. Windows: if no COMx exists, the raw WinUSB transport is used automatically. See docs/setup.md for the full per-OS guide.

Tools (35)

Domain

Tools

Connection

flipper_status, flipper_connect, flipper_disconnect

System / info

flipper_device_info, flipper_power_info, flipper_uptime, flipper_ping, flipper_reboot, flipper_find_my_flipper

CLI

flipper_cli, flipper_cli_stream

Storage (SD / flash)

flipper_list_dir, flipper_stat, flipper_storage_space, flipper_read_file, flipper_write_file, flipper_upload_file, flipper_mkdir, flipper_delete, flipper_rename

GUI

flipper_screenshot, flipper_press

Radio / subsystems

flipper_led, flipper_vibro, flipper_gpio, flipper_ir_send, flipper_ir_universal, flipper_subghz_tx_file, flipper_subghz_rx

Apps

flipper_list_apps, flipper_app_start, flipper_app_exit

FAP development

fap_scaffold, fap_build, fap_deploy

Build your own app (FAP)

fap_scaffold("my_app")   # ufbt create -> apps/my_app/
# edit apps/my_app/my_app.c + application.fam
fap_deploy("my_app")     # ufbt build -> upload to /ext/apps/<category>/ -> launch

ufbt (the build) needs no device; deploying goes over USB via the protobuf RPC storage upload, so no COM port is required. A worked example lives in examples/mcp_demo/ — a small counter app built and launched on-device during development.

How it works

flipper-mcp drives the Flipper's text serial CLI and its protobuf RPC over a single USB byte stream. It auto-selects the transport (real serial port → raw WinUSB), decodes the column-major framebuffer into PNGs, and chains length-delimited RPC frames for binary-safe, md5-verified file transfer. Verified protocol notes live in docs/research/.

Safety & legality

⚠️ Radio-transmit tools (flipper_subghz_tx_file, flipper_ir_send, flipper_ir_universal) affect real RF hardware and spectrum. Only transmit on frequencies and hardware you are legally authorized to use. You are responsible for complying with your local regulations.

Author

Made by Yair Hernández (@yairhdz24).

Licensed under the MIT License © 2026 Yair Hernández.

Contributions welcome — see CONTRIBUTING.md.

Available Tools

35 tools
fap_buildA

Build a FAP in apps/ with ufbt. Returns build success, log tail, and the produced .fap path.

ParametersJSON Schema
NameRequiredDescriptionDefault
appidYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It mentions the return values (build success, log tail, path) and the use of ufbt, but it does not disclose side effects such as file creation/overwriting, required permissions, or failure behavior. This is a significant gap for a mutation-like build tool.

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, concise sentence that front-loads the core action ('Build a FAP in apps/<appid> with ufbt') and includes the expected return values. Every word earns its place; there is no redundant or vague phrasing.

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 single-parameter tool with no annotations or output schema, the description covers the primary purpose and return values, making it reasonably complete. However, it omits important operational details such as prerequisite conditions (e.g., ufbt installed, app existing) and error scenarios, which would be valuable for an agent.

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?

The schema provides only the parameter name 'appid' with no description. The description adds meaning by embedding appid in the path 'apps/<appid>', indicating it is the app identifier or directory name. However, it does not explain constraints, defaults, or whether the app directory must exist, leaving some ambiguity.

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 clearly states the tool's function: building a FAP for a given app ID using ufbt, with a specific path pattern 'apps/<appid>'. It distinguishes itself from sibling tools like fap_scaffold and fap_deploy by focusing on the build step and explicitly mentions the output contents.

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?

The description implies usage for building a FAP, but it does not explicitly state when to choose this tool over alternatives, such as fap_scaffold or fap_deploy, or provide exclusion criteria. The context signals and sibling names suggest a build step, but explicit guidance is missing.

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

fap_deployA

Build a FAP and deploy it to the Flipper over USB (upload to /ext/apps// and launch it). No COM port required.

ParametersJSON Schema
NameRequiredDescriptionDefault
appidYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries full responsibility for disclosing behavior. It covers key actions (build, upload, launch) and the target path, but omits potential side effects (e.g., overwriting existing files), prerequisites, or error cases. It provides useful context but is not exhaustive.

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, front-loaded sentence that efficiently conveys the core actions and the key non-requirement (No COM port). Every word adds value without redundancy.

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?

For a tool with one parameter and no output schema, the description covers the main workflow but leaves the parameter semantics undefined and lacks details about preconditions or failure modes. It is minimally viable but not fully self-sufficient.

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

Parameters2/5

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

The schema's sole parameter 'appid' has no description, and the tool description does not explain what 'appid' represents, how it is used in the build/deploy process, or what valid values look like. This is a significant gap given the 0% schema coverage.

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 clearly states the tool's function: it builds a FAP, uploads it to /ext/apps/<category>/, and launches it. This specific verb+resource combination distinguishes it from siblings like fap_build (which only builds) and flipper_upload_file (which only uploads).

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?

The description gives some context by mentioning 'No COM port required', implying this tool works without a serial connection. However, it does not explicitly state when to prefer this over alternatives like fap_build or flipper_upload_file, nor does it provide exclusion criteria.

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

fap_scaffoldA

Scaffold a new Flipper app (FAP) with ufbt into the project's apps/ folder. appid must be lowercase letters/digits/underscore.

ParametersJSON Schema
NameRequiredDescriptionDefault
appidYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only mentions the appid format constraint and the destination folder. It does not disclose side effects (e.g., files created, potential overwrite), prerequisites (e.g., ufbt must be installed), or failure modes. For a scaffolding tool that creates files, this is a significant gap.

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 two sentences long, front-loaded with the primary action, and every word adds value. There is no fluff or redundancy.

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?

This is a relatively simple tool with one parameter, and the description covers the essential purpose and a key constraint. However, without an output schema or annotations, it should also specify what the tool returns or confirms after scaffolding, and any side effects. These gaps make it adequate but not fully complete.

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?

The schema provides only the appid property name with no description (0% coverage). The description adds the crucial format constraint ('lowercase letters/digits/underscore'), which is helpful. However, it does not explain the full purpose of appid or how it affects the scaffolded app, so it only partially compensates for the schema's lack of detail.

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 clearly states the tool scaffolds a new Flipper app using ufbt into the apps/ folder. The verb 'scaffold' is specific, and the resource ('new Flipper app') distinguishes this from sibling tools like fap_build and fap_deploy, which cover building and deploying.

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 clearly implies when to use this tool: when creating a new Flipper app. It gives a clear context but does not explicitly mention alternatives or exclusions (e.g., 'use fap_build for compiling'). This is slightly below the explicit when/when-not guidance of a 5.

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

flipper_app_exitA

Ask the currently running app to exit, returning to the desktop.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It clearly states the action and outcome, but does not mention edge cases (e.g., no app running, exit failure) or any side effects. This is adequate for a simple action but leaves some uncertainty.

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, front-loaded sentence that directly states the tool's purpose and effect. Every word earns its place, with no filler or redundant information.

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, simple action with an output schema available, the description sufficiently covers the essential context: what the tool does and the expected outcome. It could mention preconditions (like an app needing to be running) but overall it is complete for its simplicity.

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 input schema has zero parameters, so parameter semantics are not applicable. Per the rubric, a no-parameter tool gets a baseline of 4 because no additional parameter documentation is needed.

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 uses a specific verb ('exit') and identifies the exact resource ('the currently running app'), with a clear outcome ('returning to the desktop'). It distinguishes itself from sibling tools like flipper_app_start and flipper_reboot by describing a targeted app-level exit rather than a system reboot.

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?

Usage is implied: use when you want the currently running app to exit and return to the desktop. However, the description does not explicitly mention when not to use it (e.g., if no app is running) or compare it to alternatives like reboot, though the context makes the primary scenario clear.

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

flipper_app_startA

Launch an app by name (e.g. 'Sub-GHz', 'NFC', 'Storage') or by full .fap path. args is optional (e.g. a file to open).

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavioral traits. It only states 'Launch an app' and that args is optional, but does not mention side effects, prerequisites (like connection state), return behavior, or what happens if the app doesn't exist. This is insufficient for an agent to anticipate the tool's effects.

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 two sentences long, front-loaded with the primary action and examples, and contains no fluff. Every word contributes to understanding the tool's purpose and usage.

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?

The description covers the core purpose and parameter semantics, and an output schema exists (reducing need to describe returns). However, it lacks context about device connection requirements, error handling, and the effect on the currently running app. Given the tool's simplicity, it is minimally viable but not fully complete without annotations.

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 input schema provides no descriptions (0% coverage), but the description adds meaning by explaining that 'name' can be an app name or full .fap path, and 'args' is optional and can be a file to open. This compensates for the schema gap, though it could further clarify the expected format of 'name' or the exact behavior of 'args'.

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 uses the specific verb 'Launch' and identifies the resource as an app, with clear examples ('Sub-GHz', 'NFC', 'Storage') and optional full .fap path. This distinctly separates it from sibling tools like flipper_app_exit (exit app) and flipper_list_apps (list apps), making the purpose unambiguous.

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 clearly frames when to use this tool: to launch an app by name or file path. It gives contextual examples for the 'name' and 'args' parameters, implying the common use case. However, it does not explicitly state alternatives or exclusions (e.g., 'use flipper_app_exit to close an app'), so it lacks explicit when-not-to-use guidance.

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

flipper_cliA

Run any Flipper CLI command and return its text output.

Examples: "help", "info device", "top", "free", "loader list", "storage list /ext", "gpio read PC0", "led g 255". Streaming commands (log, subghz rx, ir rx) will be cut off at the timeout — use flipper_cli_stream for those instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses a key behavioral trait: streaming commands will be cut off at the timeout, and that output is text-based. However, it does not warn about potentially destructive commands that could be run via 'any' CLI command, which is a notable omission for a generic command executor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear first sentence, useful examples, and a critical caveat. It is slightly longer than necessary due to the list of examples, but every element adds value. The information is front-loaded with the main purpose and then the important exclusion.

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?

As a generic tool with no annotations and no visible output schema, the description does a good job covering the main behavior, output format, timeout caveat, and relationship to a key sibling. It does not mention connection prerequisites or error handling, but given the tool's broad scope and the presence of dedicated sibling tools for many specific functions, this is a minor gap. The description is complete enough for effective tool selection.

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?

The input schema has 0% description coverage, so the description must compensate. It adds meaning to the 'command' parameter through numerous examples, but the 'timeout_seconds' parameter is only implied via the phrase 'cut off at the timeout' and is never explicitly explained in terms of units, effect, or configuration. The schema's default and title help, but the description leaves the timeout parameter's semantics partially inferred.

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 clearly states the tool's function with a specific verb+resource: 'Run any Flipper CLI command and return its text output.' It also distinguishes itself from sibling tools by naming flipper_cli_stream as the alternative for streaming commands, and provides concrete examples that illustrate the range of commands it can execute.

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?

The description gives explicit usage guidance: it provides multiple examples of appropriate commands, and explicitly states when not to use the tool ('Streaming commands ... use flipper_cli_stream for those instead'). This is a clear when/when-not with a named alternative, satisfying the highest bar.

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

flipper_cli_streamA

Run a streaming CLI command for a fixed duration, then stop it (Ctrl+C) and return what it printed.

Use for commands that stream until interrupted: "log", "subghz rx 433920000 0", "ir rx", "input dump".

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

The description discloses the core behavioral traits: it runs for a fixed duration, sends Ctrl+C, and returns printed output. This is sufficient given no annotations are present. It could add details about timeout limits or stderr handling, but the main behavior is transparent.

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 two sentences long: the first states the core function, the second provides usage examples. Every word earns its place, and information is front-loaded.

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 tool with two parameters and an output schema, the description covers the essential aspects: purpose, behavior, and example commands. It doesn't specify edge cases like what happens if the command exits early, but the description is sufficiently complete for selection and 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?

With schema description coverage at 0%, the description compensates by defining 'command' as a streaming CLI command and offering examples that show the expected format. 'seconds' is implied as the 'fixed duration', and the schema shows its default. The description adds meaningful context beyond the raw 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?

The description clearly states the tool's function: 'Run a streaming CLI command for a fixed duration, then stop it (Ctrl+C) and return what it printed.' It uses a specific verb and resource, and distinguishes itself from sibling tools like flipper_cli by focusing on streaming commands interrupted after a duration.

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 states when to use this tool: 'Use for commands that stream until interrupted' and provides concrete examples like 'log', 'subghz rx 433920000 0', 'ir rx', 'input dump'. This clearly signals the intended use case and implies alternatives like flipper_cli for non-streaming commands.

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

flipper_connectA

Open the connection to the Flipper (auto-selects a serial/COM port on any OS, or the raw WinUSB path on Windows when no port exists). Returns connection status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses port selection logic and return status, but does not mention whether the tool is idempotent, whether it fails if already connected, or any side effects on existing connections.

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 concise sentences, front-loaded with the core action and enriched with useful port selection detail. No wasted words.

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 simple connect operation, the description covers the key behavior and return status. It could mention that it is a prerequisite for other tools, but the description is sufficient for invoking the tool successfully.

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 has zero parameters, and the schema is empty with 100% coverage vacuously. The description adds no parameter details, but none are needed, so the baseline of 4 applies.

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 clearly states the action ('Open the connection') and the resource ('Flipper'), with additional detail on port auto-selection. It is distinguishable from siblings like flipper_disconnect and flipper_status.

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 provides contextual behavior (auto-selecting serial/COM port, WinUSB fallback) but does not explicitly name alternatives or when not to use the tool. It is clear that this is the connection setup tool, but lacks explicit exclusions.

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

flipper_deleteA

Delete a file or directory on the Flipper. Use recursive=true for non-empty directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
recursiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only discloses the recursive requirement for non-empty directories, but omits details about irreversibility, error handling, permissions, or whether the action is destructive. This is minimal behavioral disclosure for a delete operation.

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 two concise sentences with no redundant information, front-loading the primary action and then providing a necessary usage tip.

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 simple two-parameter delete tool with an output schema, the description covers the core behavior and the key parameter nuance. It lacks details about error cases and return behavior, but the output schema presumably handles return values. Overall, it is sufficient for selection and basic invocation.

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?

The schema has 0% description coverage. The description adds meaning to the recursive parameter by specifying when it's needed ('for non-empty directories'), but does not describe the path parameter beyond its obvious role. This partially compensates for the schema gap.

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 uses the specific verb 'Delete' and identifies the resource as 'a file or directory on the Flipper', clearly distinguishing it from sibling tools like flipper_read_file, flipper_write_file, and flipper_rename.

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?

The description provides a parameter-specific instruction ('Use recursive=true for non-empty directories') but does not explicitly discuss when to use this tool versus alternatives or any exclusions. The usage context is implied by the tool's purpose.

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

flipper_device_infoA

Get hardware/firmware details (model, name, region, firmware version, radio stack, BLE MAC, ...).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. The verb 'Get' clearly indicates a read-only operation, satisfying the core safety concern. However, it does not mention requirements like device connection, output format, or potential limitations, leaving some gaps.

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 sentence with no unnecessary words. It efficiently communicates purpose and examples without redundancy.

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?

Given that the tool is parameterless, has no output schema, and is a simple information getter, the description is sufficiently complete. It enumerates the expected content (model, firmware, etc.) so an agent knows what to anticipate.

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 has zero parameters, so the baseline is 4. The description adds value by listing example return fields, but there is nothing to explain about parameter meaning beyond the empty 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?

The description clearly states the tool's function with a specific verb ('Get') and resource ('hardware/firmware details'), listing representative fields. This distinguishes it from siblings like flipper_status or flipper_power_info, which focus on different aspects.

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?

The description implies use when hardware/firmware information is needed, but it does not explicitly contrast with alternatives (e.g., flipper_status) or provide when-not-to-use guidance. No exclusions or alternative tool references are given.

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

flipper_disconnectA

Close the connection to the Flipper, releasing the USB/serial handle.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the disclosure burden. It discloses the primary behavioral effect (closing the connection and releasing the handle) but does not mention potential side effects, idempotency, or behavior when not connected. This is adequate for a simple tool but lacks depth.

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, concise sentence that directly states the action and its effect. No filler or redundant information, making it easy to parse quickly.

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?

Given the tool's simplicity (no parameters, simple operation), the description is largely complete. It doesn't mention preconditions like 'must be connected', but the presence of an output schema and the straightforward nature of the action make this a minor gap. Overall, sufficient for the tool's complexity.

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 has zero parameters, and the schema has no properties, so the description does not need to explain parameter meaning. The baseline for zero-parameter tools is 4, and the description adds no unnecessary parameter information.

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 clearly specifies the action ('Close the connection') and the resource ('the Flipper'), and it distinguishes itself from siblings like flipper_connect by being the inverse operation. The addition of 'releasing the USB/serial handle' provides clarity on what the disconnect entails.

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?

The description implies usage by being the direct counterpart to flipper_connect, but it does not explicitly state when to use it (e.g., 'after you are done') or when not to use it. No alternative tools are mentioned, though the sibling context makes the usage reasonably inferable.

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

flipper_find_my_flipperA

Play an audiovisual alert (sound + backlight + vibro) to locate the device.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explicitly lists the three output modalities (sound, backlight, vibro), providing a transparent view of what occurs. It does not mention duration or termination behavior, but for such a simple tool, disclosing the core effect is adequate.

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, compact sentence that communicates the action, the method, and the purpose without any redundant words. It is perfectly concise.

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?

The tool is simple (no parameters, clear output), and the description fully covers what it does and why. The presence of an output schema handles the return value documentation. The description also differentiates from siblings by combining modalities, making it contextually complete.

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?

This tool has zero parameters, so the description is not required to add parameter semantics. According to the rubric, the baseline for 0 params is 4. The description doesn't attempt to document parameters, which is appropriate.

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 clearly states the tool's purpose: 'Play an audiovisual alert (sound + backlight + vibro) to locate the device.' It uses a specific verb ('play') and resource (the device), and the combined modalities differentiate it from sibling tools like flipper_led and flipper_vibro, which each handle a single output.

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 implies the tool is for locating a lost or misplaced device, which is a clear context. It doesn't explicitly name alternatives or exclusions, but the combination of sound, backlight, and vibro naturally indicates it's the all-in-one option compared to single-mode siblings. This is sufficient for a simple command.

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

flipper_gpioA

Control a GPIO pin. action: mode|set|read. pin: e.g. PC0, PC1, PC3, PB2, PB3, PA4, PA6, PA7. For mode/set, value 0/1.

ParametersJSON Schema
NameRequiredDescriptionDefault
pinYes
valueNo
actionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only lists action names and pin examples without explaining what each action does (e.g., whether mode sets direction, what read returns) or any side effects/risks of toggling pins. This is a significant gap for a hardware control tool.

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 extremely compact, with all sentences contributing useful information. There is no fluff, and the most critical information (action types, pin examples, value range) is front-loaded.

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

Completeness2/5

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

Despite an output schema existing, the tool is complex enough (hardware interaction) that the description should explain the semantics of each action and any prerequisites or side effects. The current description leaves the 'mode' action undefined, making it incomplete for safe autonomous invocation.

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?

The description adds meaning beyond the bare schema by specifying valid action values and giving concrete pin examples, as well as indicating that value is 0/1 for mode/set. However, it doesn't clarify the exact meaning of 'mode' or what value should be for 'read', leaving some ambiguity.

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 uses the specific verb 'Control' with the resource 'GPIO pin' and enumerates the valid actions (mode, set, read) along with concrete pin examples. This clearly distinguishes the tool from all sibling tools, none of which handle GPIO.

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?

No explicit alternatives are mentioned, but among the sibling list no other tool targets GPIO, so the usage context is implicitly clear. The description provides operational guidance by listing valid action values and clarifying that value 0/1 applies to mode/set, which helps the agent know when to supply that parameter.

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

flipper_ir_sendB

Transmit an infrared signal. protocol e.g. NEC, NECext, Samsung32, RC5, RC6, SIRC. address and command are hex (e.g. 0x04, 0x08).

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes
commandYes
protocolYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It only says 'Transmit an infrared signal,' which implies an action but does not explain side effects, whether the Flipper must be connected, potential blocking behavior, or any other operational details. This is a significant gap.

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 two sentences, front-loaded with the primary action, and every part adds value. It efficiently packs key parameter semantics without unnecessary words.

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?

The tool is simple with three parameters and an output schema is present, so return values need not be explained. However, the description lacks usage context and behavioral transparency, making it only minimally complete for an AI agent to invoke confidently.

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 0%, so the description must compensate. It does so effectively by giving concrete protocol examples (NEC, NECext, Samsung32, RC5, RC6, SIRC) and explicitly stating that address and command are hex values with examples (0x04, 0x08). This adds meaning beyond the bare schema types.

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 action (transmit) and the resource (infrared signal), and it specifically names the protocol and parameter format. However, it does not differentiate from the sibling tool flipper_ir_universal, which may also transmit IR, so it loses a point for lack of distinction.

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?

No guidance is provided on when to use this tool versus alternatives like flipper_ir_universal. There is no mention of prerequisites, typical scenarios, or exclusions. The description only gives parameter examples, not usage context.

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

flipper_ir_universalA

Send a signal from a built-in universal IR remote. remote: tv, ac, audio, projector. Use flipper_cli('ir universal list tv') to list signals (e.g. Power, Vol_up, Mute).

ParametersJSON Schema
NameRequiredDescriptionDefault
remoteYes
signalYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It discloses only that it sends a signal, with no mention of side effects, prerequisites (e.g., connection), or failure behavior. The tip to use flipper_cli for listing signals is useful but does not compensate for missing behavioral details.

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 two sentences, front-loaded with the core action, and every word earns its place. It includes parameter hints and a practical listing command without unnecessary fluff.

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 simple 2-parameter action tool, the description is adequate: it states what it does, explains both params, and offers a way to discover valid signals. Output schema exists so return values aren't needed. Minor gap: no mention of whether the IR blast requires line-of-sight or if the device must be connected, but these are not critical for a basic send action.

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

Parameters5/5

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

The schema has 0% parameter descriptions, but the description adds rich meaning: it explains the 'remote' parameter with example values (tv, ac, audio, projector) and the 'signal' parameter with examples (Power, Vol_up, Mute), and provides a command to enumerate valid signals. This fully compensates for the empty 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?

The description clearly states the tool sends a signal from a built-in universal IR remote, with a specific verb ('send') and resource ('built-in universal IR remote'). It distinguishes from the sibling flipper_ir_send by emphasizing 'built-in universal' and listing remote categories (tv, ac, audio, projector).

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?

The description implies usage for sending universal IR signals but does not explicitly contrast with alternatives like flipper_ir_send. It does provide helpful usage guidance via the flipper_cli command to list signals, but lacks a clear 'when to use vs when not to use' statement.

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

flipper_ledA

Set an onboard LED channel. channel: r, g, b (RGB) or bl (display backlight). value: 0-255.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes
channelYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose important behavioral traits such as side effects, persistence of settings, prerequisites, or potential risks. It only states the basic operation, leaving the agent without enough context for a mutation-like tool.

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 extremely concise, consisting of two short sentences that communicate the action and all parameter details without any redundancy or filler. It is appropriately front-loaded and achieves maximum clarity with minimal text.

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 simple tool with only two parameters and an output schema, the description sufficiently covers the operation and inputs. It does not elaborate on the return value, but for a setter this is typically inferable. Minor gap: no mention of error handling or edge cases, but overall it is nearly complete.

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

Parameters5/5

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

The schema lists parameters without descriptions, giving 0% schema description coverage. The description fully compensates by explaining the 'channel' parameter with valid values (r, g, b, bl) and the 'value' parameter with a range (0-255), adding complete meaning beyond 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?

The description clearly states the tool's action ('Set an onboard LED channel') and resource, making its purpose unambiguous. It also specifies valid channel values and value range, distinguishing it from unrelated sibling tools like flipper_screenshot or flipper_status.

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?

The usage is implied by the tool's description and name; it is the obvious choice for controlling the onboard LED. However, it does not explicitly mention when to use it versus alternatives or exclude specific conditions, so it meets the baseline for implied usage without offering additional guidance.

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

flipper_list_appsA

List apps available to the loader (installed FAPs and built-in settings apps).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the transparency burden. It clarifies that the tool lists 'installed FAPs and built-in settings apps' and implicitly indicates a read-only operation. While it doesn't explicitly say 'does not modify anything', the verb 'list' and the non-destructive resource context are sufficient for this simple read operation.

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, 13 words, front-loaded with the verb 'List' and immediately specifies the resource and scope. Every word adds value, and it avoids unnecessary detail or repetition.

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?

The tool is simple with no parameters and has an output schema. The description is sufficient to understand what will be listed and what qualifies. It could have added a note about requiring a connection, but that is likely implied by the tool family and sibling context.

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 has zero parameters, so the baseline for this dimension is 4. The description adds no parameter details, but no parameters exist, so the schema covers everything. The description's clarification of what counts as an app complements the empty 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?

The description uses a specific verb 'List' and identifies the resource as 'apps available to the loader', further clarifying with 'installed FAPs and built-in settings apps'. This clearly distinguishes it from siblings like flipper_list_dir (files) and flipper_app_start (running apps).

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 provides clear context on what the tool lists and the scope ('available to the loader'), which effectively implies when to use it (e.g., to enumerate FAPs vs. files or directories). It does not explicitly mention alternatives or exclusions, but the specificity makes the intended use evident.

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

flipper_list_dirA

List files and directories at a path (use /ext for SD card, /int for internal flash).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo/ext
include_md5No

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It states the core listing behavior and path aliases, but it does not disclose behavior around the optional include_md5 flag, whether the listing is recursive, or error handling. This is adequate but not rich.

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, front-loaded sentence with no filler. It states the action and immediately provides the most important path conventions, earning every word.

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?

For a simple listing tool with two optional parameters and no output schema, the description gives enough orientation but leaves gaps: no mention of include_md5, return format, or path edge cases. It is minimally viable but not fully complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It adds useful meaning for the path parameter via /ext and /int examples, but it completely ignores include_md5, leaving its semantics and implications undocumented.

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 clearly states the action ('List') and the resource ('files and directories at a path'), and the path examples make the tool's scope concrete. This distinguishes it from siblings like flipper_read_file or flipper_stat.

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 parenthetical gives clear context on path usage (/ext for SD card, /int for internal flash), which helps the agent know what values to provide. It does not explicitly mention alternatives or exclusions, but the guidance is sufficient for a straightforward listing tool.

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

flipper_mkdirC

Create a directory on the Flipper.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior1/5

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

No annotations are provided, so the description must disclose behaviors. It only states 'Create a directory' without explaining effects like overwriting, path validation, or return values. This is insufficient for an agent to anticipate side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, front-loaded and free of unnecessary detail. It is concise but arguably too sparse to provide full value.

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

Completeness2/5

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

For a simple tool, the description is incomplete: it does not mention behavior when the directory exists, whether parent paths are created, or what the output schema represents. With no annotations and minimal description, the agent has insufficient context.

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

Parameters2/5

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

The schema has a single 'path' parameter with 0% description coverage, and the description adds no semantics beyond its name. While the parameter is self-evident as the directory path, no format or constraints are given.

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 tool creates a directory on the Flipper, using a specific verb and resource. It distinguishes from sibling tools like flipper_delete or flipper_write_file. However, it does not mention the path parameter explicitly.

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?

No guidance is provided on when to use this tool versus alternatives, prerequisites, or whether parent directories are created. The description solely states the function without context.

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

flipper_pingA

Round-trip liveness check over protobuf RPC. Returns the echoed payload.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It clearly discloses that this is a round-trip check and that the payload is echoed back, which is the core behavioral contract. It does not mention failure modes or timeout behavior, but these are not critical for a simple ping.

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 concise sentence with no filler. It front-loads the purpose and immediately states the return behavior.

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?

Given the tool's simplicity (no parameters, has output schema, no nested objects), the description is fully sufficient. It covers purpose, mechanism, and return value without unnecessary detail.

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 has zero parameters, so schema coverage is trivially 100%. The description adds meaningful context about the echoed payload, which is the only semantic content needed.

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 clearly states a specific verb ('Round-trip liveness check') and resource ('protobuf RPC'), and distinguishes it from sibling tools like flipper_status or flipper_device_info by focusing on the ping/echo behavior.

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?

Usage context is implied: it is a liveness check, so an agent would use it to verify connectivity. However, there is no explicit guidance on when to choose this over alternatives such as flipper_status or flipper_connect.

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

flipper_power_infoA

Get battery/charging telemetry: charge level %, voltage, current, temperature, health, capacity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Get', which hints at a read-only operation, but does not explicitly state that it is non-destructive, whether it requires the device to be connected, or what side effects (if any) may occur. It lacks any context about safety, errors, or requirements, leaving the agent with incomplete behavioral information.

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 main action and resource, followed by a concise list of telemetry fields. Every word adds value, with no redundancy or filler. It is appropriately sized for a simple parameterless 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?

The tool has no output schema, so the description must convey what the return values look like. It lists the data fields, which provides a general sense of the return content, but it does not specify the format, units beyond percentages, or any error/edge-case behavior. For a simple telemetry tool, this is adequate but leaves room for clarification.

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 has zero parameters, and the schema coverage is 100% by default. The description correctly omits any parameter details. According to the rubric, 0 parameters sets a baseline of 4, and the description does not need to add parameter meaning since none exist.

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 clearly states the tool's function with a specific verb ('Get') and resource ('battery/charging telemetry'), and lists the exact data points (charge level %, voltage, current, temperature, health, capacity). This unambiguously distinguishes it from sibling tools like flipper_status or flipper_device_info, which cover broader or different aspects.

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?

The description implies usage when battery/charging telemetry is needed, but does not explicitly mention when to use this tool over alternatives or provide exclusions. There is no mention of prerequisites such as requiring an active connection, so the guidance is only implied through the tool's clear purpose.

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

flipper_pressA

Send a virtual button press. key: UP, DOWN, LEFT, RIGHT, OK, BACK. type: SHORT, LONG, PRESS, RELEASE.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
typeNoSHORT

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are present, so the description bears full responsibility for behavioral disclosure. It only states that a virtual button press is sent, without explaining any side effects, device state changes, or requirements (e.g., connection). This is minimal transparency.

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, front-loaded sentence that packs all essential information — action and allowed parameter values — with no redundant words.

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 simple two-parameter action tool, the description provides sufficient information to invoke it correctly, especially given the output schema exists and parameter values are enumerated. It lacks broader context, but the tool's low complexity keeps it adequately complete.

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 0%, but the description compensates by listing all valid values for 'key' (UP, DOWN, etc.) and 'type' (SHORT, LONG, PRESS, RELEASE). This adds meaning beyond the schema's bare 'string' type, though it does not elaborate on the semantic difference between type values.

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 clearly states the tool's action — 'Send a virtual button press' — and enumerates the specific keys and press types, making its purpose unambiguous and distinct from sibling tools like flipper_led or flipper_gpio.

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?

Usage context is implied: the tool is for sending button presses to the Flipper device. However, there is no explicit guidance on when to prefer this tool over alternatives, nor mention of prerequisites like an active connection.

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

flipper_read_fileA

Read a file from the Flipper. Text is returned decoded; set binary=true to get base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
binaryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description adds valuable behavioral context by explaining that text is decoded by default and binary=true returns base64. It does not disclose error behavior or explicitly confirm read-only safety, but the core behavior is clearly conveyed.

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 entire description is a single, front-loaded sentence that avoids redundancy. Every word earns its place, efficiently conveying the tool's purpose and the key binary option.

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 simple 2-parameter tool with an output schema, the description provides sufficient context for basic usage. It does not mention potential errors or path conventions, but the low complexity and presence of an output schema reduce the need for extra detail.

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 0%, but the description compensates by explaining the binary parameter's effect (base64 output) and implicitly clarifies path as the file location. It does not elaborate on path format or constraints, but the essential semantics are covered.

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 clearly states the action (Read) and the resource (a file from the Flipper), with an additional behavior detail about decoded text vs. base64 binary. It distinguishes itself from sibling tools like flipper_list_dir and flipper_stat by focusing on file content retrieval.

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?

The description implies usage for reading file contents, but does not explicitly mention when to use it versus alternatives (e.g., flipper_stat for metadata) or state any exclusions. The binary flag guidance is parameter-focused rather than providing contextual when-to-use advice.

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

flipper_rebootA

Reboot the Flipper. mode: OS (normal), DFU (bootloader), UPDATE. The connection will drop.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoOS

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the critical side effect that the connection will drop, which is essential for an AI agent to anticipate. It also explains the mode values and their meanings, adding behavioral context beyond the action itself.

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 two concise sentences. The first sentence front-loads the purpose, and the second packs mode definitions and the connection-drop warning with zero padding. Every word earns its place.

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?

For a simple reboot tool with one parameter and an output schema present, the description covers all necessary aspects: what it does, parameter values, and a key behavioral side effect. No annotations exist, but the description alone is sufficient for an agent to invoke it correctly.

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

Parameters5/5

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

The input schema's 'mode' property has no description and no enum values. The description compensates fully by listing the valid values (OS, DFU, UPDATE) and explaining each: 'OS (normal), DFU (bootloader), UPDATE.' This provides complete semantic meaning beyond the bare 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?

The description opens with a specific verb and resource: 'Reboot the Flipper.' It clearly distinguishes the tool from all siblings, none of which perform rebooting. The additional mode list adds specificity without confusion.

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?

While no explicit alternatives or exclusions are stated, the tool's purpose is self-evident and no sibling tool overlaps. The warning 'The connection will drop' implicitly advises when to use this tool (when disconnection is acceptable). However, it lacks an explicit 'use when...' statement.

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

flipper_renameB

Rename or move a file/directory on the Flipper.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_pathYes
old_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for disclosing behavior. It does not mention whether overwriting occurs, path constraints, failure modes, or side effects, leaving critical behaviors undisclosed.

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, direct sentence with no filler or redundancy. It is perfectly concise for its low complexity.

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

Completeness2/5

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

Despite having an output schema, the description omits important contextual details such as error conditions, overwrite behavior, and whether the operation is atomic. The tool supports both files and directories but gives no further guidance, making it incomplete for a rename/move operation.

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

Parameters2/5

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

Schema coverage is 0% with only titles 'Old Path' and 'New Path'. The description adds the concept of renaming/moving a file/directory, which implies old-to-new mapping, but it does not clarify path formats, constraints, or relationships between the two parameters beyond their names.

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 clearly states the action ('Rename or move') and the resource ('a file/directory on the Flipper'), distinguishing it from sibling file operations like read, write, delete, or list.

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?

There is no guidance on when to use this tool versus alternatives, no prerequisites mentioned, and no exclusions or conditions. The intended use is implied but not explicitly stated.

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

flipper_screenshotA

Capture the Flipper's current screen (128x64) as a PNG image.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It states the output is a PNG image but does not clarify whether the image is returned in the response, saved to a file, or if any side effects exist. The lack of an output schema and absence of details about the delivery mechanism leaves significant ambiguity.

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 sentence that conveys all essential information (action, target, resolution, output format) with zero redundancy. Perfectly concise and well-structured.

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?

The tool is simple, but with no output schema, the description should specify what the caller receives or where the image goes. Saying 'as a PNG image' implies the result format but not whether it's a file path, binary data, or something else. This ambiguity leaves the description slightly incomplete for a low-complexity tool.

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 has zero parameters and an empty schema with 100% coverage. The baseline for 0 params is 4, and there is nothing to add beyond the schema. The description correctly avoids irrelevant parameter details.

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 clearly states the action ('Capture'), resource ('Flipper's current screen'), format ('PNG image'), and resolution ('128x64'). This is specific and distinguishes it from all sibling tools, which cover connection, files, CLI, and other functions.

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?

The description implies usage: you use this tool when you need to capture the Flipper's screen as an image. However, it provides no explicit context about when to use it versus alternatives, nor any exclusions or prerequisites. For a simple standalone tool, this is adequate but lacks explicit guidance.

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

flipper_statA

Get type and size of a file or directory on the Flipper.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool returns type and size, and the verb 'Get' implies a read-only operation. However, it does not mention error behavior, path format requirements, or any side effects, which is a gap for a tool with no 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 description is a single concise sentence that conveys the tool's purpose without unnecessary words. It is front-loaded with the verb and resource, and every word adds value.

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?

The tool is simple (one parameter, no output schema), and the description covers the core purpose. However, given the lack of annotations and output schema, the description could have been more complete by mentioning how the size is reported (e.g., bytes) or what happens for nonexistent paths. It is adequate but has clear gaps.

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

Parameters2/5

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

Schema description coverage is 0%, and there is only one parameter 'path'. The description implies the path refers to a file or directory on the Flipper, but it does not specify whether the path must be absolute, relative, or how to format it. This is only minimal compensation for the lack of schema-level documentation.

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 specifies exactly what the tool does: it gets the type and size of a file or directory on the Flipper. This distinguishes it from sibling tools like flipper_list_dir (which lists contents) and flipper_read_file (which reads content), making it clear this is for metadata.

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?

The description implies usage (when you need to know the type or size of a path on the Flipper) but does not explicitly state when to prefer this tool over alternatives. It does not mention exclusions or alternative tools, so it provides only implicit guidance.

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

flipper_statusA

Report how the Flipper can be reached (serial ports on macOS/Linux/Windows, plus the WinUSB fallback) and whether it is connected. Does not open a connection.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavior disclosure. It clearly states the tool is non-connecting and lists what it reports (serial ports on macOS/Linux/Windows, WinUSB fallback, and connected status). It does not describe the output format, but for a read-only status check, this is adequate transparency.

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 two sentences long and front-loaded with the core action ('Report how the Flipper can be reached'). The second sentence adds the key non-behavior ('Does not open a connection'), which is essential for differentiating from sibling tools. Every word earns its place; no fluff.

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?

For a zero-parameter, no-output-schema tool, the description is complete. It explains the full scope of what is reported (serial ports, WinUSB fallback, connection status) and clarifies a critical behavioral boundary (no connection). This gives an agent all the context needed to select and invoke the tool appropriately.

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 has zero parameters, so the baseline score is 4. The description adds no parameter-specific information because none are needed. The schema is empty, and the description fully explains the tool's scope without requiring parameter details.

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 clearly states the tool's purpose with a specific verb ('Report') and resource ('how the Flipper can be reached' and connection status). It also distinguishes itself from siblings by explicitly mentioning serial ports, WinUSB fallback, and stating 'Does not open a connection,' which differentiates it from flipper_connect.

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 provides clear context for when to use the tool: to check reachability and connection status without actually connecting. The exclusion 'Does not open a connection' implies a contrast with flipper_connect, though it does not name alternatives explicitly. This is sufficient for a simple status checks.

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

flipper_storage_spaceA

Get total and free bytes for the /ext (SD) or /int (flash) filesystem.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo/ext

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that this is a read operation ('Get') and indicates the returned data type (bytes), which is useful. However, it does not detail error handling, exact return structure, or behavior for invalid paths, though these are relatively minor for a simple query tool.

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 that is front-loaded with the action and resource, containing no filler or redundant details. It immediately states what the tool does and for which filesystems, making it maximally efficient.

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?

Given its simplicity—one parameter, no output schema, no annotations—the description covers the essential aspects: purpose, valid inputs, and output type (total/free bytes). It lacks details on exact return fields or error conditions, but the tool is cross-referenced among many siblings and its behavior is straightforward, so the description 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.

Parameters5/5

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

The schema has one parameter 'path' with 0% description coverage. The description compensates fully by explaining valid values: '/ext (SD)' and '/int (flash)'. This gives the agent the necessary meaning to pass the correct path, exceeding the schema's bare/default information.

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 clearly states the tool's purpose with a specific verb ('Get') and resource ('total and free bytes' for the '/ext' or '/int' filesystem). It distinguishes itself from siblings like flipper_stat or flipper_list_dir by focusing on storage capacity rather than file details.

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 provides clear context by specifying the target filesystems (/ext or /int) and the metric retrieved (total/free bytes), making the use case obvious. It does not mention explicit alternatives or exclusions, but no direct sibling serves the same purpose, so the guidance is adequate.

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

flipper_subghz_rxA

Listen for Sub-GHz signals on a frequency (Hz) for a few seconds and return decoded output. Common: 433920000, 315000000, 868350000.

ParametersJSON Schema
NameRequiredDescriptionDefault
secondsNo
frequencyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does convey a read-only, non-destructive nature via the word 'listen' and the context of returning decoded output. However, it lacks details on timeout behavior, what happens if no signal is detected, or whether the operation blocks. It is sufficient but not rich.

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 two sentences long, front-loaded with the primary action, and includes only relevant information. No superfluous words or repetition of schema fields. It earns its place.

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 simple receive tool with an output schema, the description is largely complete. It states the purpose, gives common frequencies, and implies a temporal scope. The output schema covers return values, so no further detail is needed there. However, it lacks explicit statements about no-signal results or operational prerequisites, which would round out the context.

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 0%, so the description must compensate. It adds meaningful context by listing common frequency values (433920000, 315000000, 868350000) and specifying the unit (Hz). However, it does not explain the 'seconds' parameter beyond 'a few seconds', nor does it mention default values or acceptable ranges. The description adds some value but not comprehensive parameter guidance.

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 clearly states the tool's function: 'Listen for Sub-GHz signals on a frequency (Hz) for a few seconds and return decoded output.' It uses a specific verb ('listen') and identifies the resource (Sub-GHz signals) and the action (return decoded output). This distinguishes it from sibling tools like flipper_subghz_tx_file, which transmits rather than receives.

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 provides no explicit guidance on when to use this tool versus alternatives. It does not mention flipper_subghz_tx_file for transmitting, nor any exclusions or prerequisites. The intended use case is implied but not stated explicitly, so the agent receives no direct support for tool selection.

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

flipper_subghz_tx_fileA

Transmit a saved Sub-GHz capture (.sub file on the SD card). WARNING: transmits on real RF — only use legal frequencies you are authorized to transmit on.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
repeatNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses a critical behavioral trait: transmitting on real RF with a legal warning. However, it does not describe repeat behavior, blocking vs async operation, or error outcomes, leaving gaps in transparency.

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 sentences: the first states the action, the second is a warning. Every word earns its place; it is compact, front-loaded, and free of filler.

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?

The output schema exists, so return values are covered. However, with no annotations and minimal parameter explanation, the description leaves questions about repeat behavior and operational side effects. The legal warning is present, but the tool's full behavior is not sufficiently specified.

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

Parameters2/5

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

Schema description coverage is 0%. The description only hints at path via 'saved Sub-GHz capture (.sub file on SD card)', but does not explain the path argument format or the repeat parameter's meaning. This fails to compensate for the low schema coverage.

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 clearly states 'Transmit a saved Sub-GHz capture (.sub file on the SD card)', using a specific verb (transmit) and resource (a .sub file). This distinguishes it from sibling tools like flipper_subghz_rx (receive) and flipper_ir_send (IR).

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?

The description implies usage for transmitting saved captures but does not explicitly state when to use this tool over alternatives like flipper_subghz_rx. There are no exclusions or alternative tool references; the only additional guidance is the legal-frequency warning, which is more about authorization than tool selection.

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

flipper_upload_fileA

Upload a local file from this computer to a path on the Flipper's SD card; verifies md5.

ParametersJSON Schema
NameRequiredDescriptionDefault
dest_pathYes
local_pathYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It mentions md5 verification and specifies source/destination, which adds value. However, it does not state whether the operation overwrites existing files, requires a connection, or any error handling details, leaving gaps for a mutation tool.

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 sentence effectively communicates the action, source, destination, and a key behavioral detail (md5 verification). Every phrase is purposeful and front-loaded, with no wasted words.

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 simple tool with two parameters and no output schema, the description covers the core functionality and parameter semantics. It falls short only in not mentioning prerequisites like device connection or behavior on existing files, but overall it is reasonably complete.

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 provides only parameter names and types with no descriptions. The description clarifies that local_path refers to a file on this computer and dest_path is a path on the Flipper's SD card, giving essential meaning that the schema lacks.

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 clearly states the tool uploads a local file to a path on the Flipper's SD card, with a specific verb and resource. It distinguishes from sibling tools like flipper_write_file by emphasizing the local-to-device transfer and the md5 verification step.

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?

The description implies usage for transferring a file from this computer to the Flipper, but it does not explicitly mention alternatives or when not to use it. Sibling tools like flipper_write_file suggest a similar yet distinct purpose, but no direct comparison is provided.

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

flipper_uptimeB

Get the Flipper's uptime since last boot.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full behavioral disclosure. The description simply states the read-only get operation but does not disclose connection requirements, error behavior, or side effects (even though it is a safe read). This lack of additional context warrants a 2.

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, clear sentence with no filler. It is appropriately sized for such a simple tool and earns a 5 for conciseness.

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?

Given the simplicity of the tool (no parameters, likely straightforward output covered by the output schema), the description is nearly complete. However, it lacks any hint about when to use this versus other status tools, so a 4 is more appropriate than 5.

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 has zero parameters, and per the baseline guidance, a 0-parameter tool scores 4 by default. The description correctly does not attempt to describe non-existent parameters.

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 action ('Get') and the specific resource ('the Flipper's uptime since last boot'), making it unambiguous. However, it does not explicitly distinguish this from similar tools like flipper_status or flipper_power_info, so it earns a 4, not a 5.

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 provides no guidance on when to use this tool or how it compares to alternatives such as flipper_status or flipper_reboot. There is no mention of prerequisites (e.g., requiring a connection) or context, so this dimension is poorly covered.

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

flipper_vibroA

Turn the vibration motor on or off.

ParametersJSON Schema
NameRequiredDescriptionDefault
onYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does state the core behavior (turning the motor on or off), which is transparent for a simple toggle, but it does not mention any side effects, state persistence, or device connection requirements.

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, front-loaded sentence with no filler. Every word contributes to clarifying the tool's purpose and parameter meaning.

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?

Although the tool is simple with one parameter and an output schema exists, the description provides the essential action without needing to explain return values. It is complete for typical usage, though it could mention prerequisites like device connectivity, which are implied by sibling tools.

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 only defines a boolean 'on' parameter with 0% description coverage. The description effectively explains the semantics: 'on or off' clearly maps the parameter value to the motor's state, adding value beyond the raw 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?

The description uses a specific verb and resource: 'Turn the vibration motor on or off.' It clearly states the action and the target, distinguishing it from sibling tools like flipper_led or flipper_gpio which control different hardware.

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?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The description only states what it does, leaving the agent to infer usage context from the name and siblings.

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

flipper_write_fileA

Write content to a file on the Flipper (overwrites). Returns the device-side md5. Set is_base64=true for binary content.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
is_base64No

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden of disclosure. It reveals that the operation overwrites existing content (a destructive behavior), returns the device-side md5 checksum, and requires is_base64=true for binary content. This covers key behavioral aspects beyond the basic write action, though it does not address permissions or error scenarios.

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 concise: two sentences that front-load the main purpose and then provide necessary details (overwrite behavior, return value, base64 flag). No filler or redundant information is present.

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?

Given the tool's simplicity and the lack of annotations, the description covers the essential usage context: what it does, side effects (overwrite), return value (md5), and a parameter-specific tip. It does not mention preconditions like device connection, but this is arguably common to sibling Flipper tools and could be inferable from the tool family.

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?

The schema provides no descriptions (0% coverage), so the description must clarify parameters. It explicitly explains is_base64 ('Set is_base64=true for binary content'), but does not elaborate on the format of 'path' or the expected encoding of 'content'. Since the names are somewhat self-explanatory but not fully specified, the description adds moderate value.

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 action: 'Write content to a file on the Flipper (overwrites).' This clearly identifies the tool's function and distinguishes it from siblings like flipper_read_file and flipper_delete by naming the write operation and its overwriting behavior.

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?

The description implies usage (write content to a file) but does not explicitly state when to prefer this over alternatives like flipper_upload_file. It mentions a special case (is_base64=true for binary) but lacks explicit context or exclusions, such as prerequisites (device connection) or size limits.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 35 tool updatesv0.1.0
    • First observedfap_build
    • First observedfap_deploy
    • First observedfap_scaffold
    • First observedflipper_app_exit
    • First observedflipper_app_start
    • First observedflipper_cli
    • First observedflipper_cli_stream
    • First observedflipper_connect
    • First observedflipper_delete
    • First observedflipper_device_info
    • First observedflipper_disconnect
    • First observedflipper_find_my_flipper
    • First observedflipper_gpio
    • First observedflipper_ir_send
    • First observedflipper_ir_universal
    • First observedflipper_led
    • First observedflipper_list_apps
    • First observedflipper_list_dir
    • First observedflipper_mkdir
    • First observedflipper_ping
    • First observedflipper_power_info
    • First observedflipper_press
    • First observedflipper_read_file
    • First observedflipper_reboot
    • First observedflipper_rename
    • First observedflipper_screenshot
    • First observedflipper_stat
    • First observedflipper_status
    • First observedflipper_storage_space
    • First observedflipper_subghz_rx
    • First observedflipper_subghz_tx_file
    • First observedflipper_upload_file
    • First observedflipper_uptime
    • First observedflipper_vibro
    • First observedflipper_write_file

TDQS

B3.4/5.0
Disambiguation5/5

Each tool targets a distinct capability: connection, status, info, CLI, file operations, UI control, hardware, RF, and app management are clearly separated. Even flipper_cli and flipper_cli_stream are well-differentiated by their streaming vs. non-streaming behavior.

Naming Consistency4/5

All tools use snake_case and are mostly descriptive with a verb_noun pattern (e.g., flipper_list_dir, flipper_read_file). However, the fap_* prefix for development tools deviates from the general flipper_* prefix, and a few names are nouns rather than verbs (e.g., flipper_led, flipper_vibro).

Tool Count2/5

At 35 tools, the server is over-scoped for an MCP server. Many granular tools (e.g., flipper_led, flipper_vibro, flipper_gpio) could be consolidated, and the count exceeds the typical range for a focused integration.

Completeness4/5

The tool set covers a broad range of Flipper Zero operations: connection, system info, filesystem management, CLI access, UI control, hardware peripherals, RF operations, app lifecycle, and FAP development. Minor gaps like file copy or NFC-specific operations are workarounds via flipper_cli.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that exposes a USB-connected Flipper Zero device as tools for controlling infrared devices. It enables listing, parsing, and transmitting IR signals from saved files and built-in universal remotes.
    10
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Modular MCP server for interacting with a Flipper Zero from MCP-capable clients (including Claude Desktop). Supports system info, BadUSB scripts, and music playback over USB or WiFi.
    30
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for controlling MicroPython devices (ESP32, RP2040, etc.) via USB Serial or WebREPL, enabling code execution, file operations, and device management from MCP clients.
    9
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yairhdz24/flipper-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server