Skip to main content
Glama
b2dmx

uc-remote-mcp

by b2dmx

UC Remote MCP

MCP server for the Unfolded Circle Remote 3 / Remote Two. Exposes the remote's configuration as conversational tools for Claude — ask questions about your setup, remap buttons, redesign UI pages, and restore from backups, all in plain language.

Requirements

  • An Unfolded Circle Remote 3 or Remote Two on the same LAN as your computer

  • uv (manages Python and dependencies — Python 3.11+ is fetched automatically)

  • An MCP client — the examples below use Claude Desktop

Related MCP server: Jarvis MCP

Quick start (no clone needed)

1. Add the server to Claude Desktop

Add to your Claude Desktop config file (Windows: %APPDATA%\Claude\claude_desktop_config.json, macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "uc-remote": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/b2dmx/uc-remote-mcp@v0.1.0",
        "uc-remote-mcp"
      ]
    }
  }
}

That's the whole install — uvx fetches, builds, and caches the server on first launch. Restart Claude Desktop after saving. (Drop the @v0.1.0 to track the latest code instead of a pinned release.)

git clone https://github.com/b2dmx/uc-remote-mcp.git
cd uc-remote-mcp
uv sync

Then point the config at your working copy instead:

{
  "mcpServers": {
    "uc-remote": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/uc-remote-mcp",
        "run",
        "uc-remote-mcp"
      ]
    }
  }
}

(Windows paths need doubled backslashes: "C:\\path\\to\\uc-remote-mcp".) Run the tests with uv run pytest.

2. Pair with your remote (one time)

You need the remote's Web Configurator PIN: on the remote, go to Settings → Web Configurator and toggle it on — the PIN is shown on the remote's screen.

Then just tell Claude:

Discover my Unfolded Circle remote, then set it up with PIN 1234.

discover_remotes finds the remote via mDNS; setup_remote exchanges the PIN for a long-lived API key stored in %APPDATA%\uc-remote-mcp\config.json (Windows) or ~/.config/uc-remote-mcp/config.json (macOS/Linux, chmod 600). The PIN itself is never stored. After that, every tool works without further auth.

Things to ask once it's running

  • "What's the battery level on my remote?"

  • "List my activities and what's on their UI pages."

  • "What does the volume button do in each activity?"

  • "Map the PLAY button in the TV activity to the Apple TV's play/pause."

  • "Back up my remote's config." / "What changed since that backup?"

Troubleshooting

  • ConnectTimeout / tools suddenly fail — the remote parks its HTTP server in standby. Wake it (lift it or press a button) or keep it docked. This is by far the most common failure mode.

  • Remote not found / timeouts after it worked before — DHCP may have moved its IP. Ask Claude to run discover_remotes again and re-run setup_remote (or give the remote a DHCP reservation in your router).

  • discover_remotes returns nothing — mDNS only works on the same subnet/VLAN, and some firewalls block it. Find the IP on the remote (Settings → About → Network) and call setup_remote with it directly.

  • Wrong PIN — the PIN changes each time the Web Configurator is toggled; read it off the remote's screen, not from memory.

Compatibility

Developed and battle-tested against a Remote 3 (firmware/core 0.69.x, API 0.16). The Remote Two exposes the same Core API and should work identically, but hasn't been tested by the author.

Tools (Phase 1 — read-only + backup)

Tool

Description

setup_remote

First-run PIN auth, creates API key, saves config

discover_remotes

mDNS scan — finds UC remotes on the LAN

get_remote_info

Name, model, firmware, battery, active activities

list_devices

All entities; filter by entity_type (media_player, remote, activity, macro)

get_device

Full entity config: features, simple_commands, attributes

list_device_commands

Commands an entity exposes (features + simple_commands)

list_activities

All activities with included entities

get_activity

Included entities (+their commands), button overrides, UI pages

get_button_mapping

Button→command bindings; scope = activity / remote / device

list_ui_pages

UI pages for an activity or remote (needs scope_id)

get_ui_page

Items on one page: grid, positions, bound commands

backup_config

Full config snapshot to one JSON file (keeps last 50)

Tools (Phase 2 — mutations)

All mutations default to dry_run=True (preview only) and take an automatic config backup before any real write. Set dry_run=false to apply.

Tool

Endpoint

Notes

send_command

PUT /entities/{id}/command

One-off command; {cmd_id, params?}

set_button_mapping

PATCH /{activities|remotes}/{id}/buttons/{BUTTON}

entity_id required for activities, ignored for remotes

bulk_set_button_mapping

same, fanned across activities

Filter by activity_ids/name_contains; invalid activities skipped with reason; one backup per batch

update_ui_page

PATCH /{…}/{id}/ui/pages/{pageId}

{name?, grid?, items?}; omitted = unchanged, empty items clears; items validated

delete_ui_page

DELETE /{…}/{id}/ui/pages/{pageId}

Irrevocable on device; dry-run shows full content being lost

set_default_ui_page

PATCH /{…}/{id}/ui/pages {page_order}

No explicit default-page property — first page wins, so this reorders

update_activity_sequence

PATCH /activities/{id} {options.sequences}

Steps: {type:"command",command:{…}} / {type:"delay",delay:ms}

diff_config

read-only

Live config vs backup file: restore ops + unrestorable differences

restore_config

granular PATCH/DELETE/POST per difference

sha256 token flow: 1st call returns token+plan, 2nd call with token + dry_run=false applies

Command names are validated client-side before a write: for an activity the target entity_id must be one of its included entities and the cmd_id must be in that entity's entity_commands/simple_commands; for a remote the cmd_id must be one of the remote's simple_commands (and remote UI/button commands may NOT carry an entity_id — a remote operates on itself). Invalid names raise before any network call.

restore_config restores the customization layer (names, button mappings, UI pages, sequences of activities/remotes). Entities and integration instances come from integrations and can't be recreated through these endpoints — those differences are reported as not_restorable and left untouched.

Notes on the UC data model (verified against firmware 0.69.x)

  • Auth: POST /api/pub/login with username web-configurator + PIN → session cookie → POST /api/auth/api_keys. All other calls use Authorization: Bearer.

  • Devices are entities. One physical device often spans several entities (the LG TV = a media_player "LG WebOS Apps" + a remote "LG TV").

  • Button mappings & UI pages are embedded, not separate endpoints. They live under options.button_mapping and options.user_interface.pages on each activity (/api/activities/{id}) and remote-entity (/api/remotes/{id}). There is no global profile and no /api/profiles/pages endpoint on this firmware.

  • Button targets use cmd_id. IR remotes (options.kind == "IR") bind to local IR codes with no entity_id; device bindings carry the target entity_id.

  • Battery level isn't a JSON field — it's parsed from /api/system/logs.

Layout

src/uc_remote_mcp/
  server.py            FastMCP app; wraps every tool with @mcp.tool()
  config.py            config load/save (%APPDATA%\uc-remote-mcp\config.json)
  client/rest.py       async httpx REST client (PIN→key auth, Bearer)
  tools/_common.py     get_client(), localized(), button/page normalizers
  tools/*.py           discovery, setup, devices, activities, buttons, ui, backup
  safety/backup.py     collect_config()/create_backup() (reused by Phase 2)

Safety model

  • Mutating tools default to dry_run=True — they show exactly what would change and write nothing until called again with dry_run=false.

  • Every real write is preceded by an automatic full-config backup (%APPDATA%\uc-remote-mcp\backups\, last 50 kept).

  • Command names and target entities are validated client-side before any network write, so typos fail fast instead of half-applying.

Credits

  • Built with Claude — this server was designed, implemented, and live-tested conversationally using Claude Code against a real Remote 3.

  • The conversational-tool design was informed by the ha-mcp Home Assistant MCP server.

  • API reference: the official Unfolded Circle Core API spec.

This project is not affiliated with or endorsed by Unfolded Circle.

License

MIT

Available Tools

21 tools
backup_configA

Dump the entire remote configuration (system, entities, activities, remote-entities, UI pages — full detail) to one JSON file. Defaults to %APPDATA%/uc-remote-mcp/backups/.json, keeping the last 50.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
output_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, description carries full burden. It discloses default file path, retention of last 50 backups, and timestamp naming. It does not mention if the operation is read-only or has side effects, but the term 'dump' implies non-destructive.

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, no filler. All information is front-loaded and directly relevant.

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 two optional parameters and an output schema (not shown), the description covers purpose, default behavior, and retention. Missing host parameter explanation and explicit return info, but overall adequate.

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%, yet description only explains the output_path default implicitly via the default path. The 'host' parameter is completely undocumented, leaving its purpose unclear.

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?

Description clearly states the verb 'dump' and resource 'entire remote configuration', listing specific components (system, entities, etc.). This distinguishes it from sibling tools like restore_config or diff_config.

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?

Context is clear: use for full backups. No explicit when-not-to-use or alternatives, but the sibling list provides implicit differentiation.

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

bulk_set_button_mappingA

Set the same button binding across many activities at once (e.g. route VOLUME_UP on every activity to the AVR). Filter with activity_ids and/or name_contains; no filter = all activities. Invalid activities are skipped with a reason. One backup before the batch. Defaults to dry_run=True (returns the full per-activity plan); set dry_run=false to apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
pressNoshort_press
buttonYes
paramsNo
commandYes
dry_runNo
entity_idYes
activity_idsNo
name_containsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description compensates well. It discloses that invalid activities are skipped (with reason), a backup is created before batch, and the default is dry_run=True. These behavioral traits are crucial for the agent.

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, very concise, front-loaded with the core action, then key details. 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?

Given 9 parameters and batch operation, description covers filtering, safety (backup, dry run), and error handling (skip invalid). It doesn't detail the output schema, but since one exists, the agent can infer return structure. Overall complete for the complexity.

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 coverage is 0%, so description must add meaning. It explains activity_ids and name_contains as filters, button/command/entity_id as the binding, and dry_run. However, it does not describe host, params, or press (default is short_press), leaving gaps for secondary parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Set the same button binding across many activities at once.' It provides an example (routing VOLUME_UP) and distinguishes from sibling set_button_mapping (single activity) through the 'bulk' aspect.

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?

Explicitly mentions filtering options ('Filter with activity_ids and/or name_contains') and the behavior when no filter is applied ('all activities'). It also indicates dry_run default and how to apply. While it doesn't explicitly state when not to use, the sibling context (set_button_mapping for single) is implied.

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

delete_ui_pageA

Delete a UI page from an 'activity' or 'remote'. IRREVOCABLE on the device — the auto-backup taken before the write is the only way back. Dry-run (default) shows the full page content that would be lost.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
scopeYes
dry_runNo
page_idYes
scope_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Discloses key behaviors: irrevocable deletion, auto-backup before write, and dry-run default showing content to be lost. No annotations provided, so description fully covers behavioral traits relevant 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?

Two sentences, front-loaded with key action and resource, no redundant words. Every sentence adds essential 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?

Has output schema (not shown) so return values are covered. Description covers purpose, scope, dry-run, and irreversibility. Lacks details about restoration process from backup, but that is acceptable for a delete tool.

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 coverage is 0%, so description must compensate. It explains scope types and dry_run behavior (shows full content), but does not describe the 'host' parameter. Partially adds value beyond 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?

Clearly states 'Delete a UI page' with specific resource (UI page) and scope types ('activity' or 'remote'), distinguishing it from sibling tools like update_ui_page or get_ui_page.

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?

Provides clear guidance on irreversible nature and dry-run default, telling users to preview before deletion. Does not explicitly list alternatives but the dry-run option serves as cautious usage advice.

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

diff_configA

Show what changed between the current live config and a backup file (read-only). Reports the operations a restore would perform plus differences that cannot be restored.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
against_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 full burden. Explicitly states read-only behavior and outlines output contents (operations a restore would perform plus non-restorable differences). Lacks details on permissions or error handling but sufficient for basic understanding.

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, no wasted words. Front-loaded with the core purpose, then adds specific output detail. Efficiently communicates essential information.

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?

Has output schema so return values are covered elsewhere. Still lacks parameter details and usage context relative to siblings. Adequate but incomplete for fully autonomous agent use.

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 description must compensate. It does not explain any parameters (against_path, host). Leaves agent to infer meaning from parameter names alone, which is insufficient.

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?

Clearly states it shows differences between live config and a backup file, specifying it is read-only. Distinguishes from siblings like backup_config and restore_config by focusing on diff rather than create/restore.

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?

Implies usage for previewing restore operations and identifying unrecoverable differences, but does not explicitly state when to use vs alternatives like restore_config or provide when-not-to-use scenarios.

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

discover_remotesA

Scan the LAN via mDNS for UC remotes. Returns a list of {name, host, port, model, fw, id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeout_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/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 full burden. It states the scanning mechanism and return list, but does not disclose the timeout behavior, potential duration, or network prerequisites. Adequate but not thorough.

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 with no wasted words. The first sentence states the action, the second explains the return value. Excellent structure.

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 one optional parameter and documented output. The missing parameter description is a gap, but overall the description is nearly complete for this simple tool.

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 the description does not mention the 'timeout_s' parameter at all. It fails to add meaning beyond the schema, leaving the agent without guidance on how to use this parameter.

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 'Scan the LAN via mDNS for UC remotes' with a specific verb and resource, and the return structure is explicitly listed. It distinguishes itself from sibling tools as the only discovery-oriented tool.

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?

No explicit when-to-use or alternatives are mentioned. The usage is implied from the action, but no exclusions or prerequisites are provided. For a simple tool, this is adequate but not exemplary.

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

get_activityC

Full activity config: included entities, on/off power sequences, button overrides, and the list of UI pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
activity_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description should disclose behavioral traits. It is likely read-only (get operation), but the description does not explicitly state that, nor does it mention permission requirements, side effects, or rate limits. The response format is also not described, though an output schema exists.

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

Conciseness3/5

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

The description is a single sentence of 14 words with no wasted words. However, it is overly minimal and lacks structure—no bullet points or front-loading of key information. It earns its place but barely adds 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?

Despite having an output schema (which covers return values), the description does not explain the meaning of 'activity_id' or how to obtain it. Given the number of sibling tools, the description should help differentiate, but it leaves ambiguity about what constitutes an 'activity' and when to use this tool.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the parameters (host and activity_id). It does not explain their roles, valid values, or where to obtain activity_id. The description only describes the output, not the input.

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 states it returns 'Full activity config' and lists specific components (included entities, sequences, button overrides, UI pages). It distinguishes from sibling tools like get_button_mapping and get_ui_page by indicating a broader scope. However, 'activity' is not defined and could be ambiguous without domain context.

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 on when to use this tool versus alternatives such as list_activities or get_remote_info. The description does not mention prerequisites, context, or exclusions, leaving the agent to infer usage.

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

get_button_mappingA

Physical-button -> command bindings. scope is 'activity' (needs scope_id=activity_id), 'remote' (needs scope_id=remote entity_id), or 'device' (needs scope_id=target entity_id; returns every binding across all activities and remotes that targets that device).

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
scopeYes
scope_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/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 device scope returns all bindings across activities and remotes for the target device, which adds useful behavioral context. However, it does not mention response format, empty results, or other potential behaviors.

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 packs essential information without redundancy. It is front-loaded with the core purpose and uses parentheses to add detail efficiently.

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 and the presence of an output schema, the description sufficiently covers parameter behavior and scope differentiation. No missing information is critical for correct usage.

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?

With 0% schema description coverage, the description must compensate. It explains the semantics of 'scope' and 'scope_id' well, but the 'host' parameter (optional, default null) is not mentioned at all, leaving a 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 clearly states the tool retrieves bindings between physical buttons and commands, and distinguishes three scope types (activity, remote, device) with specific requirements. This makes the purpose explicit and distinguishes it from sibling tools like set_button_mapping.

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 explicit instructions on how to use each scope type and what scope_id is required, but does not explicitly state when not to use the tool or mention alternatives, though the context is clear.

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

get_deviceB

Full config for one device (entity): features, available commands, current attributes, and options.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It describes what the tool returns (features, commands, attributes, options) but does not disclose whether it is read-only, requires special permissions, or has any side effects. The description is moderately transparent but lacks 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.

Conciseness4/5

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

The description is a single, clear sentence that efficiently conveys the tool's purpose. However, it could be slightly more structured by separating the parameter details or adding usage notes.

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 an output schema, so return values are partially covered. However, the description lacks any context about authentication, prerequisites, or the scope of the returned config (e.g., includes all options or only a subset). It is adequate 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%, and the description provides no elaboration on the 'device_id' or 'host' parameters. The agent must infer meaning solely from parameter names, which is insufficient for a tool with two parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the full configuration for one device, listing the specific components (features, commands, attributes, options). This differentiates it from sibling tools like list_devices (which lists all devices) and other get_* tools (which target different entities).

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 explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, edge cases, or when to avoid using it. The agent must rely on the name and description alone to infer context.

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

get_remote_infoA

Return model, firmware, battery level/status, and currently active activities. Uses the first configured remote if host is not specified.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Discloses default behavior (first configured remote if host not specified) and output fields. No annotations, but description covers key behavioral aspects for a read-only 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?

Two concise sentences, front-loaded with return values; no 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 low complexity, one optional parameter, and an existing output schema, the description fully covers needed 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?

For a single parameter with 0% schema coverage, description adds value by clarifying default behavior (uses first configured remote if host not specified).

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 explicitly states it returns model, firmware, battery level/status, and active activities, which distinguishes it from siblings like get_activity (single activity) and get_device (device info).

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?

Implied usage: when you need general remote info. No explicit when-not-to-use or alternative tool guidance, but siblings are listed; minimal help for selection.

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

get_ui_pageA

Items on one UI page: grid size and each item's position, type, and command. Identify the page by its parent scope ('activity'/'remote'), the scope's entity_id, and the page_id (from list_ui_pages).

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
scopeYes
page_idYes
scope_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/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 burden. It states the output content but omits behavioral details such as safety (read-only), error behavior, permissions, or rate limits. Minimal disclosure beyond what 'get' implies.

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 with no fluff. First sentence front-loads the main purpose; second sentence explains identification. Every sentence is informative.

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?

Sufficient for a simple read tool with output schema. Explains output and input mapping. Missing details on the 'host' parameter and error cases, but overall complete for successful use.

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 coverage is 0%; the description adds meaning for three parameters (scope, scope_id, page_id) by explaining their roles and allowed values. However, the 'host' parameter is not mentioned, leaving a 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 clearly states it retrieves items on one UI page (grid size, position, type, command) and identifies the page by scope, scope_id, and page_id. This distinguishes it from sibling tools like list_ui_pages (which lists pages) and delete_ui_page, update_ui_page.

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?

It implies usage after list_ui_pages by referencing page_id from that tool. It specifies the scope values ('activity'/'remote') but does not explicitly state when not to use or name alternatives.

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

list_activitiesC

List all activities with id, name, state, description, and included entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided, so description must carry full burden. It implies a read operation but does not disclose any side effects, permission requirements, or how the optional 'host' parameter affects behavior. The behavior is partially clear 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.

Conciseness4/5

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

Single sentence, no wasted words. However, it could be structured to front-load the parameter nuance. Still efficient.

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

Completeness1/5

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

With an output schema present (though not shown), the description still omits the crucial parameter 'host' and does not relate to siblings. No annotations exist to fill gaps. Incomplete for a simple list tool.

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

Parameters1/5

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

Schema description coverage is 0%. The description does not mention the 'host' parameter at all, providing no meaning beyond what the schema offers. With 0% coverage, the description fails to compensate.

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 explicitly states the verb 'list', the resource 'activities', and the returned fields: id, name, state, description, and included entities. This clearly differentiates from siblings like get_activity (single item) and other CRUD tools.

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 on when to use this tool vs alternatives such as get_activity for a single activity or list_devices for other resources. No exclusions or prerequisites mentioned.

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

list_device_commandsA

Commands a device exposes, for picking when mapping buttons. Returns {features, simple_commands}.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the return structure ({features, simple_commands}) and that it lists commands, but omits details about potential errors, permissions, or side effects. Adequate but not thorough.

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 exceptionally concise: two sentences with no redundant information. Every word serves a purpose, defining the action and the output structure.

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

Completeness3/5

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

Given the existence of an output schema, the return value description is partially redundant but helpful. However, the complete lack of parameter documentation leaves the tool inadequately specified for an agent. Moderate completeness.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the parameters 'device_id' or 'host'. The agent receives no guidance on what values are valid or how the parameters affect behavior.

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: listing commands that a device exposes, specifically for button mapping. It distinguishes itself from sibling tools like 'send_command' by focusing on listing rather than executing.

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 context on when to use ('for picking when mapping buttons'), implying a preparatory step before setting mappings. However, it does not explicitly state when not to use or list alternatives among siblings.

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

list_devicesA

List all configured devices (entities). Each physical device may appear as several entities (e.g. a TV has both a media_player and a remote entity). Optionally filter by entity_type (media_player, remote, light, switch, sensor). Returns {id, name, type, integration, device_class, state} per entity.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
entity_typeNo

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 full burden. It transparently explains that a physical device may appear as several entities (behavioral nuance) and lists return fields. Does not address rate limits or side effects, but for a read-only list tool, this 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?

Three sentences: purpose, nuance, filter/returns. No redundant information. Every sentence adds value. Front-loaded with core action.

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?

Describes filtering, entity relationship, and return fields (though output schema exists). Missing explanation of the host parameter and any pagination or limits. Overall fairly complete for a list tool.

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 description must add meaning. It adds value for entity_type by listing example values. However, the host parameter is entirely undocumented in the description, leaving its purpose unclear.

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?

Clearly states the tool lists all configured devices, explains that physical devices may appear as multiple entities, and specifies optional filtering by entity_type with examples. Distinguishes itself from sibling tools like get_device (single device) and list_activities.

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?

Implied usage: use when you need to list all devices or filter by entity type. No explicit comparison to alternatives like get_device for retrieving a single device, nor guidance on when not to use this tool.

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

list_ui_pagesA

List UI pages for a scope: 'activity' or 'remote'. scope_id is that entity's id. Returns page ids, names, grids, and item counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
scopeYes
scope_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description must disclose behavior. It states the return includes page ids, names, grids, and item counts, but does not mention if the operation is read-only, has side effects, or requires authentication. Adequate but leaves 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?

Two efficient sentences with no wasted words. Front-loads the action and resource, then details parameters and return fields.

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 output schema exists, return value details are less critical. The description includes return fields. However, without annotations, some behavioral context (e.g., read-only nature) is missing. Still fairly complete for a list 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?

Schema coverage is 0%, so description must explain parameters. It explains 'scope' (values 'activity' or 'remote') and 'scope_id' (the entity's id), but does not mention the optional 'host' parameter. Covers required fields well.

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 verb 'List' and the resource 'UI pages', and specifies the scope ('activity' or 'remote'). This distinguishes it from sibling tools like 'get_ui_page' (single page) and 'update_ui_page' (mutation).

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?

Provides clear context: use for listing pages of a given scope and scope_id. It does not explicitly state when not to use or list alternatives, but the scope clarification inherently differentiates from other tools.

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

restore_configA

Restore activities/remotes customization (names, button mappings, UI pages, sequences) from a backup file. First call returns a confirmation_token + full plan without writing; call again with the token and dry_run=false to apply. Auto-backup of the current state is taken before applying.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
dry_runNo
input_pathYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description bears full responsibility. It discloses the two-phase commit (dry run then apply), the requirement for a confirmation_token, and the auto-backup before applying. Minor gap: does not mention what happens on failure or invalid input.

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 three sentences long, each serving a distinct purpose: state the action, explain the two-step process, and note the auto-backup. No redundant or irrelevant information; it is front-loaded and efficiently conveys the key behavior.

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?

Despite the presence of an output schema (reducing the need to describe return values), the description covers the main workflow, safety mechanisms, and token-based confirmation. Missing details: error handling, file format expectations, and the 'host' parameter. Sibling differentiation is adequate but not explicit.

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?

With 0% schema description coverage, the description compensates for dry_run (implies default true), confirmation_token (explained as token from first call), and input_path (implied as backup file). However, the 'host' parameter is not mentioned at all, leaving its purpose unclear.

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 identifies the tool's action ('Restore activities/remotes customization from a backup file') and specifies the resource scope (activities, remotes, UI pages, etc.). The two-step process distinguishes it from siblings like backup_config and diff_config.

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 outlines the required process (first call with dry_run=true, second with dry_run=false and confirmation_token) but does not explicitly state when to choose this tool over alternatives like backup_config or diff_config. Usage is implied but not compared to siblings.

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

send_commandA

Fire a one-off command at a device (entity). Transient (does not change saved config) but affects the device, so defaults to dry_run=True. Set dry_run=false to actually send. Body: PUT /entities/{id}/command {cmd_id, params?}.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
paramsNo
commandYes
dry_runNo
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/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 the command is transient (does not change saved config) but still affects the device. It also clearly explains the default dry_run behavior and how to override it, providing essential behavioral context for a potentially destructive action.

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 only three sentences, each adding value. The first sentence states the purpose, the second provides behavioral guidance, and the third gives the HTTP method and body structure. No unnecessary 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?

Given that an output schema exists, the description does not need to explain return values. It covers the key aspects: one-off nature, transience, dry_run default, and the API call. However, it fails to mention the 'host' parameter, which is a minor gap. Overall, it is sufficiently complete for a command-sending tool.

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 mentions the device, command, params, and dry_run parameters, and adds context about the API endpoint (PUT /entities/{id}/command). However, it does not describe the 'host' parameter at all, leaving one parameter 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 uses the specific verb 'Fire' and identifies the resource as 'a device (entity)'. It clearly states the action as sending a one-off command, which distinguishes it from sibling tools like 'list_device_commands' that only list commands. The purpose is 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 explains that the tool defaults to dry_run=true for safety and instructs to set dry_run=false to actually send. This provides clear guidance on when to use the dry run vs. actual execution. However, it does not explicitly state when not to use the tool or mention alternatives.

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

set_button_mappingA

Set one physical-button -> command binding on an 'activity' or 'remote'. entity_id is REQUIRED for activities (the command target) and ignored for remotes. Defaults to dry_run=True (shows before/after); auto-backs-up before any real write. Set dry_run=false to apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
pressNoshort_press
scopeYes
buttonYes
paramsNo
commandYes
dry_runNo
scope_idYes
entity_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Without annotations, the description carries the full burden. It discloses that dry_run defaults to true (shows before/after) and that auto-backup occurs before any real write. This gives the agent awareness of safety mechanisms. Missing details on authentication or rate limits, but adequate 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?

Two well-structured sentences, no filler. Every sentence adds value: first defines the operation and key parameter condition, second describes safety defaults. Front-loaded with the core purpose.

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

Completeness3/5

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

Given 9 parameters (4 required) and an output schema (not shown), the description covers the key behavioral aspects and the most critical parameter conditions. However, it omits explanations for many scalar parameters (host, press, params). Moderate completeness.

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 explains the conditional meaning of 'entity_id' and the purpose of 'dry_run'. However, it does not explain 7 other parameters (host, press, params, etc.), leaving significant gaps for an agent.

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 ('Set'), the resource ('physical-button -> command binding'), and the scope ('activity' or 'remote'). It distinguishes from sibling tools like 'bulk_set_button_mapping' (bulk) and 'get_button_mapping' (read).

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 explicit usage context: entity_id is required for activities and ignored for remotes. It also mentions the default dry_run=true for preview, which guides safe usage. However, it does not explicitly state when to avoid this tool in favor of alternatives.

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

set_default_ui_pageA

Make a page the first/default page of an 'activity' or 'remote' UI (the page shown when it opens). Implemented as a page reorder — the API has no explicit default-page property. Defaults to dry_run=True.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
scopeYes
dry_runNo
page_idYes
scope_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

The description reveals that the tool implements a page reorder (not an explicit default property) and defaults to dry_run=True. However, with no annotations, it omits details on side effects, authorization, or reversibility.

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, with two sentences that front-load the core functionality. No unnecessary words or repetition.

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?

The description is incomplete for a 5-parameter tool with no schema descriptions. It lacks explanations for host and scope_id, and provides no guidance on output or errors. The output schema partially compensates for return values, but parameter gaps remain.

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?

With 0% schema coverage, the description should explain all parameters. It clarifies scope, page_id, and dry_run but does not define host or scope_id, leaving a significant 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 clearly states the tool's purpose: to make a page the default/first page of an activity or remote UI. It also explains the mechanism (page reorder) and distinguishes it from siblings like update_ui_page or delete_ui_page.

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 this is the correct tool for setting a default page, but does not explicitly state when to use it over alternatives. It mentions dry_run default but lacks guidance on prerequisites or exclusions.

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

setup_remoteB

First-run setup. Authenticate with admin PIN, create a long-lived API key, and save config. Only needed once per remote.

ParametersJSON Schema
NameRequiredDescriptionDefault
pinYes
hostYes
nameNoUC Remote
portNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/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 burden. It discloses authentication and config saving, but fails to mention potential side effects like overwriting existing config, idempotency, or error conditions (e.g., if already set up).

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 very concise with two sentences, delivering key information without waste. It could be slightly more structured but remains effective.

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?

Given the presence of an output schema, the description does not mention what is returned. It also lacks detail on parameter semantics and behavioral constraints. For a first-run setup tool with 4 parameters and many siblings, the description is insufficiently 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%. The description mentions 'admin PIN' and 'save config', hinting at the pin and host parameters, but does not describe name or port parameters. It adds minimal meaning beyond the schema's field 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 states 'First-run setup. Authenticate with admin PIN, create a long-lived API key, and save config. Only needed once per remote.' It clearly identifies the tool's purpose: performing initial setup on a remote device, with specific actions and constraints.

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 explicitly notes 'Only needed once per remote', providing clear guidance on when to use (first-run) and implying not to use for subsequent operations. However, it does not mention alternatives or when not to use, but the context of sibling tools suggests this is a one-time initialization.

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

update_activity_sequenceA

Replace an activity's on and/or off power sequence. Steps are {"type":"command","command":{"entity_id","cmd_id","params"?}} or {"type":"delay","delay":}. Omitted sequence = unchanged; empty list clears it. Command steps are validated against the activity's included entities. Defaults to dry_run=True; auto-backup before any real write.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
dry_runNo
activity_idYes
on_sequenceNo
off_sequenceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/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 key behaviors: validation against activity entities, dry_run default, and auto-backup before writes. It does not detail error handling, but the presence of an output schema reduces the need for return value explanation.

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 four sentences, front-loading the main action. Every sentence adds unique information: purpose, sequence format, validation, and safety defaults. No unnecessary 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?

Given the tool's complexity (modifying sequences with validation and safety features) and the absence of annotations, the description covers the main behaviors: sequence format, validation, dry run, and backup. It does not address errors or success output, but the output schema exists. Minor gaps prevent a perfect score.

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 coverage is 0%, so the description must compensate. It explains the sequence format (on_sequence, off_sequence) and dry_run default, but does not describe the 'host' parameter at all. Activity_id is implied but not explicitly described. Partial compensation, but a gap remains.

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: 'Replace an activity's on and/or off power sequence.' It uses a specific verb ('Replace') and resource ('activity's power sequence'), and the format description distinguishes it from siblings like 'send_command' which sends single commands.

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 context on usage: it explains that omitted sequences remain unchanged and empty lists clear them, and that dry_run defaults to true with auto-backup. However, it does not explicitly compare to alternative tools or state when not to use it.

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

update_ui_pageA

Update a UI page's name, grid, and/or items on an 'activity' or 'remote'. Omitted fields stay unchanged; an EMPTY items list clears the page. Item commands are validated against the scope before writing. Defaults to dry_run=True; auto-backup before any real write.

ParametersJSON Schema
NameRequiredDescriptionDefault
gridNo
hostNo
nameNo
itemsNo
scopeYes
dry_runNo
page_idYes
scope_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 full burden and provides notable transparency: omitted fields stay unchanged, empty items list clears the page, item commands are validated, defaults to dry_run=True, and auto-backup before real write. It does not cover permissions or failure behavior, but still offers substantial insight.

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, using four sentences to convey the main action and key behaviors. It is front-loaded with the core purpose and avoids redundancy.

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 8 parameters and no annotations, the description provides good context for the core functionality. The existence of an output schema likely covers return values, but the 'host' parameter remains unexplained, and the 'auto-backup' detail lacks elaboration.

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 explains the behavior of 'name', 'grid', 'items', and 'dry_run' parameters, but the 'host' parameter is not mentioned, and 'scope', 'scope_id', 'page_id' are only implied. Given 0% schema coverage, the description partially compensates but leaves some parameters unexplained.

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 verb 'update' and the resource 'UI page', and specifies the scope ('on an activity or remote'). It distinguishes from sibling tools like delete_ui_page, get_ui_page, and list_ui_pages by focusing on modification.

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 modifying existing UI pages but does not explicitly state when to use this tool versus alternatives like create or delete. No prerequisites or exclusions are mentioned, leaving some ambiguity.

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. 21 tool updatesv0.1.0
    • First observedbackup_config
    • First observedbulk_set_button_mapping
    • First observeddelete_ui_page
    • First observeddiff_config
    • First observeddiscover_remotes
    • First observedget_activity
    • First observedget_button_mapping
    • First observedget_device
    • First observedget_remote_info
    • First observedget_ui_page
    • First observedlist_activities
    • First observedlist_device_commands
    • First observedlist_devices
    • First observedlist_ui_pages
    • First observedrestore_config
    • First observedsend_command
    • First observedset_button_mapping
    • First observedset_default_ui_page
    • First observedsetup_remote
    • First observedupdate_activity_sequence
    • First observedupdate_ui_page

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a distinct operation: configuration backup/restore, UI page management, activity/device retrieval, button mapping (single and bulk), discovery, etc. No overlap between tool purposes.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., backup_config, discover_remotes, set_button_mapping). No mixing of styles or cryptic verbs.

Tool Count4/5

21 tools cover a broad scope (activities, devices, UI pages, backups, mappings) but each tool serves a clear purpose. The count is slightly high but still well-scoped for remote configuration management.

Completeness4/5

Core workflows are covered: backup/restore, discovery, setup, activity/device queries, UI manipulation, and button mapping. Missing create/delete for activities/devices, but the surface is sufficient for its intended remote management use case.

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

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/b2dmx/uc-remote-mcp'

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