Skip to main content
Glama

nvidia-MCP

A local MCP server for NVIDIA Shield TV and Kodi. Give an MCP-compatible assistant the tools to inspect a Shield, diagnose Kodi problems, preview add-on folders, adjust settings and apply reversible repairs. It runs on your Mac, Windows PC or Linux computer and connects to your own Shield over your LAN.

Built from real Shield/Kodi troubleshooting: playback interruption guards, separate profile handling, version checks, redacted diagnostics, exact file patches and rollback backups. No cloud account is needed.

Quick start

You need Python 3.11+, Android Platform Tools for ADB features, and a Shield on the same trusted LAN.

  1. Enable network debugging in the Shield's developer options. Connect once with adb connect YOUR_SHIELD_IP:5555 and approve the debugging prompt on the TV.

  2. In Kodi, enable Settings → Services → Control → Allow remote control via HTTP. Set a username/password and note the port (usually 8080). ADB and Kodi HTTP are separate connections.

  3. Install on your computer:

git clone https://github.com/glasgowm148/nvidia-MCP.git
cd nvidia-MCP
python3 -m venv .venv
.venv/bin/python -m pip install -e .

On Windows use py -3 -m venv .venv, then .venv\Scripts\python.exe -m pip install -e .. ADB must be on the MCP client's PATH, or set ADB_PATH to its full executable path.

  1. Add a stdio MCP server to your client. This is the Claude Desktop / Cursor JSON shape; other clients have their own wrapper around the same command, arguments and environment:

{
  "mcpServers": {
    "nvidia-MCP": {
      "command": "/absolute/path/nvidia-MCP/.venv/bin/nvidia-mcp",
      "env": {
        "SHIELD_HOST": "192.168.1.50",
        "KODI_PORT": "8080",
        "KODI_USERNAME": "kodi",
        "KODI_PASSWORD": "YOUR_LOCAL_KODI_PASSWORD"
      }
    }
  }
}

On Windows the command is C:\\absolute\\path\\nvidia-MCP\\.venv\\Scripts\\nvidia-mcp.exe. The server reads environment variables, not .env automatically. Keep filled client configs private. Restart the MCP client/server after changing configuration. See examples.

  1. Ask: “Read the Shield repair playbook and audit Kodi without interrupting anything.”

For a terminal connection check, set the same environment variables and run nvidia-mcp --doctor. This prints redacted Kodi connectivity data and exits. ADB can be unavailable while Kodi HTTP works, and vice versa; kodi_status reports partial failures instead of pretending everything is connected.

Related MCP server: local-mcp-toolbox

Tools

Area

Tools

Needs

Shield diagnostics

status, installed packages, logcat, screenshot, connect

ADB

Kodi diagnostics

version, skin, profile, playback, add-ons, allowlisted RPC

Kodi HTTP

Logs and files

redacted read, log tail, per-file backup list/snapshot

ADB or mounted storage

Controls

explicit remote buttons, Kodi start/stop/restart

ADB, write mode, playback guard

Repairs

exact text patch, restore with checksum, syntax validation

file access, ADB to prove Kodi stopped, write mode

Kodi settings

runtime setting change with backup and readback

Kodi HTTP, file access, write mode

Add-on settings

profile-aware reads; version-checked primitive changes

file access; optional Manager for live writes

Discovery

one page of a real provider/library folder

Kodi HTTP, opt-in plugin browsing, idle Kodi

Bingie

saved layout/sources, preview, apply, rebuild

optional existing Kodi Manager 0.3.9

The nvidia://playbook resource and audit_kodi prompt teach the assistant the lessons behind these tools: account separation, audio hardware, autoplay/progress, source priorities, skin hubs, stale stream URLs and distinguishing installed/enabled/configured/authenticated/used.

Enable changes deliberately

Default operation is read-only. Add these environment variables to your client when needed:

"NVIDIA_MCP_ALLOW_WRITES": "1",
"NVIDIA_MCP_ALLOW_PLUGIN_BROWSE": "1"

Plugin browsing is separate because Files.GetDirectory executes installed add-on code and can make network requests; it is not just reading a static folder. Preview one page at a time. No whole-tree crawls, random remote input, arbitrary shell commands or unrestricted JSON-RPC are exposed.

Disruptive tools refuse active Kodi playback and fail closed if playback state is unknown. Kodi lifecycle changes also inspect the foreground Android app, so an idle Kodi does not imply an idle TV. Offline recovery and interrupting another app require explicit tool flags and permission from the person viewing. Remote button tools cannot infer whether another app is playing; obtain permission. Write mode is a coarse capability switch, not a replacement for your assistant's approval policies.

For source/file repairs: read the original file/checksum, preview exact replacements, stop Kodi, apply, restart and verify. Every write takes a private backup first. Stale checksums and ambiguous anchors are rejected. Unknown add-on versions must be investigated rather than blindly applying a known patch. See repair examples and security/recovery details.

Optional live Bingie / Kodi Manager adapter

If you already run Kodi Manager 0.3.9 (service.kodi.addonadmin), configure:

"KODI_MANAGER_PORT": "8765",
"KODI_MANAGER_TOKEN": "YOUR_EXISTING_LOCAL_MANAGER_TOKEN"

Use its authenticated layout endpoint to read the actual menu/hub mapping, preview a complete section plan, then apply the returned preview ID. The preview expires after 10 minutes and cannot be edited between preview and apply. Manager creates its own backup and checks the expected layout revision. The adapter supports the Manager's reviewed Bingie 2.0.2 / Skin Shortcuts 2.0.3 sources; unknown versions/forks remain view-only. Enable Manager's own write mode for live writes.

Kodi Manager is optional and is not bundled or installed by this repository. Without it, all core Shield/Kodi diagnostics, profile-aware file access, offline repairs/settings and directory previews work. Direct live Bingie layout editing and pipeline inspection require that separate existing service. This initial release does not install APKs/add-ons, manage Trakt/debrid accounts or migrate cloud history. It also does not automatically apply household-specific settings or provider/skin patches.

Configuration

Variable

Default

Meaning

SHIELD_HOST

required

Private LAN IP; one device per server instance

SHIELD_ADB_PORT

5555

Shield network debugging port

ADB_PATH

adb

Platform Tools executable

KODI_PORT

8080

Kodi HTTP port

KODI_USERNAME, KODI_PASSWORD

empty

Kodi HTTP credentials, separate from ADB authorization

KODI_MOUNT

unset

Absolute mounted .kodi path; otherwise ADB files

KODI_REMOTE_ROOT

/sdcard/Android/data/org.xbmc.kodi/files/.kodi

Shared-storage root for ADB

KODI_MANAGER_PORT, KODI_MANAGER_TOKEN

8765, empty

Optional Manager

NVIDIA_MCP_ALLOW_WRITES

0

Explicitly allow mutation tools

NVIDIA_MCP_ALLOW_PLUGIN_BROWSE

0

Explicitly allow executing directory previews

NVIDIA_MCP_STATE_DIR

OS user app-data directory

Private snapshots and value-free audit records

Android scoped storage can deny ADB file access on some firmware. Use a mounted Shield storage share with KODI_MOUNT when available; the server reports failures instead of trying to bypass permissions. Some firmware paths or APK package/activity names may differ; this release targets official org.xbmc.kodi. File access remains constrained to that configured Kodi root.

Development and verification

.venv/bin/python -m pip install -e '.[dev]'
.venv/bin/pytest
.venv/bin/ruff check .
.venv/bin/python -m build

Tests exercise real MCP stdio discovery/calls, HTTP auth/limits, redaction, busy/offline guards, active profile resolution, patch conflict handling, backup integrity/restore and staged layout expiry. CI tests Python 3.11–3.13 on Linux and Windows. Live validation is documented in verification. Alpha release: mock tests do not establish compatibility with every Shield firmware, skin, add-on or MCP client. Contributions should include bounded, reproducible checks and avoid private logs, credentials, screenshots or full Kodi backups.

Built on the official MCP Python SDK v1 maintenance line, Android ADB and Kodi JSON-RPC. MIT licensed. Not affiliated with NVIDIA or Kodi.

Available Tools

25 tools
kodi_addonsB
Read-only

List installed add-on IDs, versions and enabled states; enabled is not proof of use/authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabled_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds a genuinely non-obvious behavioral caveat — that an 'enabled' flag does not imply the add-on is actually used or authenticated — which is real context beyond the structured fields.

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?

One front-loaded sentence that names the returned fields first and appends the caveat last. Nothing redundant or padded.

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?

An output schema exists, so return-value shape need not be described, and annotations cover the safety profile. The one real gap is the undocumented enabled_only filter, which is minor for an otherwise simple list 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 never mentions the single parameter, enabled_only, nor what happens when it is true/false (the default is only in the schema). For a filtering parameter whose behavior defines the result set, this leaves the agent to infer semantics.

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?

States a specific verb ('List') and resource ('installed add-on IDs, versions and enabled states'), which is more precise than the sibling kodi_status or kodi_addon_settings. It does not explicitly contrast itself with those siblings, so it stops short of 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 gives a caveat ('enabled is not proof of use/authentication') but never says when to reach for this tool versus kodi_status, kodi_addon_settings, or kodi_read. No prerequisites, no exclusions, no alternative named.

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

kodi_addon_settingsC
Read-only

Search/page redacted settings in the active profile; Manager includes schema/defaults, otherwise saved XML only.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
startNo
addon_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds two pieces of behavioral context: results are 'redacted' and the payload differs based on a 'Manager' context (schema/defaults vs saved XML only). These are meaningful but stated so tersely that an agent cannot confidently act on them.

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?

It is a single compact sentence with no filler, which is good, but the information density comes at the cost of clarity and it is not front-loaded — the critical scope (active profile, redaction) is buried after a vague verb. It is brief but not efficiently structured.

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?

An output schema exists, so return values need not be described. But four parameters are undocumented in both schema and description, usage is unexplained, and the sibling landscape is not addressed. For a tool in a crowded addon/settings namespace, this leaves an agent without enough to call it correctly.

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 words 'Search/page' loosely imply that query/start/limit exist, but none of the four parameters (query, start, limit, addon_id) is explained in the description, and the required addon_id is never mentioned. With zero schema coverage the description should compensate, and it does not.

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

Purpose3/5

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

The description identifies the resource (settings in the active profile) and gestures at a retrieve/page operation, so an agent can infer it reads addon settings. However, the phrasing 'Search/page redacted settings' is cryptic, and it never clearly distinguishes itself from the closely-named sibling kodi_settings or from kodi_set_addon_setting. The 'Manager includes schema/defaults, otherwise saved XML only' clause muddies rather than sharpens the purpose.

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 when-to-use or when-not-to-use guidance is given, and no alternative sibling is named despite several near-identical tools (kodi_settings, kodi_set_addon_setting, kodi_manager_inspect). The only hint is an implicit reference to a 'Manager' variant, which is not framed as a selection condition. Usage is left entirely to inference.

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

kodi_backup_fileA
Read-only

Save a private local rollback snapshot of one Kodi file. Does not modify the Shield.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely new context: the snapshot is stored privately and locally, and the Shield device itself is not modified, clarifying what the operation does and does not touch.

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 short sentences, front-loaded with the action and immediately followed by the non-destructiveness constraint. No filler, no repetition of the title.

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?

An output schema exists, so return values need not be described, and annotations plus the description cover purpose and safety for a one-parameter tool. The remaining gap is practical: it does not say where the snapshot lands or how it is later retrieved or restored.

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 single 'path' parameter has 0% schema description coverage, so the schema carries no meaning. The description only says it targets 'one Kodi file', leaving unresolved whether the path is device-side, host-side, absolute, or relative — partial but not sufficient compensation.

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?

States a specific verb and resource ('Save a ... rollback snapshot of one Kodi file') and the scope ('one Kodi file'), which separates it from bulk siblings like kodi_backups and from the mutating kodi_patch_file/kodi_restore_file. It never names those siblings explicitly, so the differentiation is inferential rather than stated.

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 when-to-use guidance, no prerequisites, and no mention of alternatives such as kodi_backups (listing) or kodi_restore_file (reverting). The 'rollback snapshot' phrasing hints at a backup-before-change workflow but nothing is made explicit.

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

kodi_backupsA
Read-only

List the latest 50 private per-file snapshots without exposing their contents.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish the safe read-only, non-destructive, closed-world profile, so the bar is lower; against that, the description adds real context: results are capped at the latest 50, they are 'private' per-file snapshots, and contents are deliberately not returned (metadata only). It stops short of describing ordering or pagination behavior.

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 with no filler: the operation, the result limit, and the data-exposure constraint are all front-loaded in one pass. Nothing is repeated from the schema or annotations verbatim.

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?

With an output schema present the return shape need not be explained, and with zero parameters there is no input contract to cover, so the description is nearly sufficient. The privacy and 50-item cap are the key behavioral facts an agent needs and both are stated.

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

Parameters4/5

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

The tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to disambiguate and it correctly avoids inventing parameter talk. The 'latest 50' note usefully defines the implicit result window in the absence of any input control.

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?

States a specific verb ('List') and resource ('private per-file snapshots') plus scope ('latest 50'), so an agent can distinguish it from kodi_backup_file or kodi_restore_file, which mutate backups. The only wobble is vocabulary drift between the tool name ('backups') and the description ('snapshots'), but intent is still unambiguous.

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 only implied: an agent can infer this is how you enumerate available snapshots (presumably before a restore), but the description never says when to choose this over kodi_backup_file or kodi_restore_file, nor states any prerequisite. Adequate minimum, with a clear gap.

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

kodi_browseB

Preview one page of actual provider/library folders; opt-in, idle-only. No recursive loading or playback.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
limitNo
startNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, destructiveHint=false, and the description usefully adds that browsing is single-page and non-recursive with no playback side effects. It does not explain why the operation is flagged non-read-only (live provider queries, timeouts, provider wake-up costs), so meaningful behavioral context is still missing.

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?

Two compact clauses with no filler, and the core scope ('Preview one page of actual provider/library folders') is front-loaded. Brevity is a virtue here, though it borders on under-specification.

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?

An output schema exists, so return values need not be described, and the safety profile is partially covered by annotations. Still, for a tool with an unexplained 'path' required argument and underspecified pagination, the description leaves key operational details (path format, 'idle' definition, opt-in mechanism) unclear.

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 says nothing about the three parameters. 'one page' hints at pagination, but the meaning/format of 'path', and how 'limit' and 'start' interact, are left entirely undocumented in both places.

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?

Specific verb ('Preview'/'browse') plus resource ('provider/library folders') and an explicit scope limit ('one page'). It also rules out related behaviors ('no recursive loading or playback'), which implicitly separates it from kodi_read and playback tools, though no sibling is named directly.

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 clause 'opt-in, idle-only' supplies a precondition for use (must be idle, must be opted in), which is genuine usage context. However, it never says when to choose this over kodi_read, kodi_layout_preview, or other folder-listing siblings, so the guidance is only implied.

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

kodi_layout_applyB
Destructive

Optional Manager: apply the exact staged plan within 10 minutes; Manager backs up and rejects stale revisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
preview_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, and the description adds real context beyond them: the Manager takes a backup before applying and rejects stale revisions, and there is a 10-minute validity window. It does not say exactly which layout state gets overwritten, keeping it short of a 5.

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

Conciseness4/5

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

One tightly packed sentence with the key constraint (10 minutes) and safety behavior front-loaded. The 'Optional Manager:' prefix adds little and is the only wasted token.

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?

An output schema exists so return values need no explanation, and the destructive nature plus backup behavior are covered. However, the essential prerequisite chain (run preview, then apply its id within the window) is only half-stated, which is a meaningful gap for a destructive one-shot 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?

The single required parameter preview_id has 0% schema description coverage, so the description carries the full burden. It refers obliquely to a 'staged plan' but never explains that preview_id comes from kodi_layout_preview or what format it takes.

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?

States a specific verb ('apply') and resource ('the exact staged plan'), which is distinguishable from the sibling kodi_layout_preview that creates the plan. The 'Optional Manager:' prefix is ambiguous phrasing, but the core action is unmistakable.

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 10-minute window and stale-revision rejection imply this must follow a fresh preview, but the description never names kodi_layout_preview as the prerequisite or states when not to use it. Usage is inferable rather than explicit.

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

kodi_layout_previewC

Optional Manager: stage existing section rows with section_id and expected_revision; no layout write.

ParametersJSON Schema
NameRequiredDescriptionDefault
planYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior3/5

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

Annotations mark this as not read-only but non-destructive, and the description usefully clarifies that no layout write occurs, which slightly reframes those hints. It does add that rows are 'staged' with expected_revision, implying a concurrency check, but gives no detail on side effects, state, or failure behavior.

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?

It is a single, terse sentence with no padding, which is good. But the leading 'Optional Manager:' fragment is confusing noise and the front-loaded content is cryptic rather than informative, so brevity comes at the cost of clarity.

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?

An output schema exists, so return values need not be described. However, a nested, undocumented plan object plus a preview operation that is meant to precede apply/rebuild leave significant gaps: the plan contract and the expected workflow are not explained.

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% and the single 'plan' parameter is an open object with additionalProperties true and no field docs. The description names two keys, section_id and expected_revision, giving a partial hint, but does not explain the plan's structure or required shape, so it only marginally compensates for the coverage gap.

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

Purpose3/5

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

The name plus the clause 'no layout write' conveys that this stages a preview of section rows without persisting a layout change, which distinguishes it from kodi_layout_apply. However, the cryptic 'Optional Manager:' prefix and 'stage existing section rows' phrasing are vague about the actual operation, and the distinction from kodi_layout_rebuild or kodi_manager_inspect is left to inference.

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 explicit guidance on when to call this versus kodi_layout_apply or kodi_layout_rebuild. The 'no layout write' note implies it is a safe dry-run step, but the prerequisite relationship to apply/rebuild is only hinted at, not stated.

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

kodi_layout_rebuildA
Destructive

Optional Manager: request one skin-menu rebuild while Kodi is idle. Inspect TV after it finishes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds that the rebuild should happen while idle and that the TV should be inspected afterward, but does not explain what gets destroyed or how disruptive the rebuild is.

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?

Two short sentences with no wasted explanation. The 'Optional Manager:' prefix is slightly odd but does not bloat the description.

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?

An output schema exists, so return values need not be explained. However, the description does not clarify how this rebuild relates to kodi_layout_apply or kodi_layout_preview, leaving the agent to infer which layout tool to use.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to clarify. Baseline for zero-parameter tools is 4.

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 a specific action: request one skin-menu rebuild. However, the prefix 'Optional Manager:' is ambiguous and does not clearly differentiate this from siblings like kodi_layout_apply or kodi_layout_preview.

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?

It provides a condition ('while Kodi is idle') and a post-action instruction ('Inspect TV after it finishes'), but does not say when to use this instead of kodi_layout_apply or kodi_layout_preview.

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

kodi_lifecycleA
Destructive

Start/stop/restart Kodi. Refuses playback; offline recovery/other-app interruption need explicit permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
interrupt_other_appNo
allow_offline_recoveryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds non-obvious behavior beyond the schema: playback refusal and the permission gate on offline recovery / cross-app interruption, which an agent could not infer from the annotations alone.

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?

Two tightly packed clauses, front-loaded with the action set and zero filler. The second clause is slightly telegraphic ('Refuses playback') but earns its place by encoding constraints.

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?

An output schema exists, so return values need not be described, and annotations cover the safety profile. For a destructive lifecycle tool the definition is nearly complete, with the only shortfall being the shallow treatment of the two boolean parameters.

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 carries the full param burden. It partially compensates by tying 'offline recovery' and 'other-app interruption' to the two boolean flags and noting they need explicit permission, but it never explains what these modes actually do or the effect of the action enum.

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 leads with specific verbs (start/stop/restart) applied to a clear resource (Kodi), which is easily distinguished from read-oriented siblings like kodi_status and kodi_read. It does not explicitly name a sibling, but the action set 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?

It states a clear 'when-not' ('Refuses playback') and the governing condition for the advanced flags (offline recovery / interrupting another app require explicit permission). It gives operational context but names no concrete alternative tool for those scenarios.

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

kodi_logsB
Read-only

Inspect redacted Kodi log tail and crash/stream/storage signals; safe while viewing.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNo
previousNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so 'safe while viewing' largely restates what is structured. The word 'redacted' adds genuine value by telling the agent returned log content has secrets stripped, but truncation/tail behavior and what 'previous' does are not disclosed.

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?

A single tight sentence with the action and resource front-loaded and no filler. It is efficient, though the compressed 'crash/stream/storage signals' phrasing is terse to the point of being slightly opaque.

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?

An output schema exists, so return values need no explanation, and the tool is low-complexity with two optional params. Still, the undocumented 'previous' flag and absent sibling routing leave real gaps for an agent choosing between this and shield_logcat / kodi_read.

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%: neither 'lines' nor 'previous' has any schema-level description. The phrase 'log tail' loosely implies the line-count parameter but never names it, and 'previous' (read the rotated/prior log) is entirely undocumented in both schema and description.

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?

States a specific verb ('Inspect') and resource ('redacted Kodi log tail and crash/stream/storage signals'), so an agent knows exactly what is returned. It does not, however, differentiate itself from the near sibling shield_logcat or explain how it relates to kodi_status/kodi_read.

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?

'safe while viewing' is a safety reassurance, not usage guidance. There is no statement of when to pick this tool over shield_logcat or the other kodi readers, and no explanation of the 'previous' scenario (e.g. use when the current log is empty/rotated).

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

kodi_manager_inspectB
Read-only

Optional Kodi Manager 0.3.9: inspect saved Bingie hubs/rows, sources, pipeline, health or fix status.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds only the mild contextual fact that it inspects 'saved' state, and says nothing about auth needs, scope limits, or what a health/fix inspection actually reports. With rich annotations the lower bar applies, so a baseline 3 fits.

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?

A single compact sentence, which is good, but it is front-loaded with noise ('Optional Kodi Manager 0.3.9:') that does not help selection and crowds out the actual scope 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?

An output schema exists so return values need not be described, and there is only one enum parameter. However, for a five-way inspection tool sitting among many kodi_* siblings, an agent still lacks guidance on what each area inspects and when to prefer this over kodi_status or kodi_layout_preview.

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 carry the load. It partially compensates by naming hubs/rows, sources, pipeline, health and fix status, but the mapping to enum values is loose ('fixes' vs 'fix status', 'layout' vs 'Bingie hubs/rows') and no meaning is given for what each area returns or which to choose.

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?

States a specific verb (inspect) and enumerates the resources covered (Bingie hubs/rows, sources, pipeline, health, fix status), which aligns with the area enum. It is clear what the tool does, but it never distinguishes itself from look-alike siblings such as kodi_status or kodi_layout_preview.

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 only hint is the word 'Optional' and an implicit list of areas; there is no statement of when to reach for this tool versus kodi_status, kodi_layout_preview, or kodi_browse, and no prerequisites or exclusions are given.

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

kodi_patch_fileA
Destructive

Preview/apply exact before/after replacements. Writes need Kodi stopped, matching SHA and automatic backup.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
editsYes
dry_runNo
expected_sha256Yes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, so the safety profile is known; the description adds genuinely new behavior: Kodi must be stopped, the SHA must match, and a backup is taken automatically. It omits that dry_run defaults to true, which is the most important operational detail.

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?

Two compact sentences with no filler, and the preview/apply scope is front-loaded ahead of the write constraints. Very dense but readable; no wasted clauses.

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?

Output schema exists so return values need no explanation, and the write hazards are covered. However, with four undocumented parameters, a nested edits array of unexplained shape, and a default-true dry_run never mentioned, an agent lacks enough to call it confidently.

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 carries the full burden. It maps to three params (before/after replacements -> edits, matching SHA -> expected_sha256, preview/apply -> dry_run) but says nothing about path semantics or the shape of the edits array entries.

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?

States a specific verb (patch) and resource (file) plus the mechanism: exact before/after replacements with preview or apply. This distinguishes it from kodi_read_file and kodi_backup_file, though it doesn't explicitly name siblings.

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?

Gives the key precondition for writes (Kodi must be stopped) and implies the preview-vs-apply choice, but never names alternatives (e.g., kodi_restore_file, kodi_backup_file) or states when a patch is preferable to editing via settings tools.

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

kodi_readA
Read-only

Run an allowlisted diagnostic JSON-RPC query. No arbitrary RPC, executebuiltin or playback calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodYes
paramsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint:false and openWorldHint:false, so the safety profile is covered. The description adds material behavioral context beyond that: queries are restricted to an allowlist and arbitrary/execution-style methods are rejected, which tells the agent a rejection is possible for out-of-scope methods.

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

Conciseness5/5

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

Two tight sentences, front-loaded with the positive capability and immediately followed by the constraint. No filler, no repetition of the name.

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?

An output schema exists, so return values need not be described. But with 0% parameter coverage and no list or example of valid allowlisted methods, an agent cannot reliably select a valid 'method' argument — the definition is thin for a two-parameter dispatcher.

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 both 'method' and 'params' are undocumented structurally. The description only implies 'method' is a JSON-RPC method name and does not enumerate allowable methods or explain the params object shape, leaving the agent without the information needed to supply valid inputs.

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?

States a specific verb and resource: 'Run an allowlisted diagnostic JSON-RPC query,' with a stated scope (allowlisted, diagnostic). This distinguishes it from generic RPC execution, though it does not differentiate it from siblings like kodi_status, kodi_logs, or kodi_browse that also read diagnostics.

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 second sentence gives negative guidance — 'No arbitrary RPC, executebuiltin or playback calls' — which tells the agent the tool's boundaries, a partial form of when-not-to-use. However, there is no positive when-to-use context and no pointer to which sibling handles the excluded operations.

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

kodi_read_fileB
Read-only

Read a Kodi-relative text file (600 KB max) with redaction and original SHA-256.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

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?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds real behavioral detail (600 KB size cap, redaction applied, SHA-256 of the original returned), but leaves opaque what redaction actually removes and what happens when a file exceeds the cap.

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 zero filler; the verb and resource come first and the constraints follow.

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?

An output schema exists, so return values need not be spelled out. For a simple read tool the description is largely adequate, but it omits failure behavior (oversized files, missing files, non-text targets) and does not disambiguate from the many sibling reader tools.

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% and the single 'path' parameter has no schema description, so the description must compensate. 'Kodi-relative text file' usefully conveys that the path is relative to the Kodi installation and must point at a text file, but gives no syntax, extension, or error-handling detail.

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?

States a specific verb (Read) and resource (Kodi-relative text file) plus notable constraints: 600 KB max, redaction, SHA-256. It is clear what the tool does, though it never differentiates itself from close siblings like kodi_read, kodi_logs, or kodi_browse.

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 when-to-use guidance at all. With siblings such as kodi_read, kodi_browse, and kodi_logs present, the agent gets no signal about when this file reader is the right choice versus those alternatives.

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

kodi_restore_fileA
Destructive

Restore one snapshot while Kodi is stopped; rejects stale checksums and creates an undo snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
backup_idYes
expected_current_sha256Yes

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?

Annotations already declare destructiveHint=true and readOnlyHint=false, so safety is covered. The description adds real value beyond that: a required precondition (Kodi stopped), a validation behavior (stale checksums rejected), and a mitigating side effect (undo snapshot created). It stops short of noting auth requirements or irreversibility of the undo snapshot.

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?

One dense sentence, front-loaded with the operation, then precondition, validation, and side effect in order of importance. 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 destructive mutation with an output schema present, the description covers precondition, validation, and rollback safety. The only gap is that backup_id's expected form is never clarified.

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. 'Rejects stale checksums' does explain the role of expected_current_sha256 as a concurrency guard, but backup_id is left undefined (id format, where it comes from), so compensation is only partial.

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?

States a specific verb (restore) and resource (one snapshot), and its scope ('one') cleanly separates it from kodi_backups and kodi_backup_file. An agent can identify the operation without opening the schema.

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?

Gives a clear precondition ('while Kodi is stopped') that tells the agent when the call is valid, but names no alternatives (e.g., when to back up instead of restore) or exclusions beyond the stale-checksum rejection.

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

kodi_set_addon_settingB
Destructive

Change a non-credential setting on a verified add-on version; backed up. Without Manager, stop Kodi first.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes
settingYes
addon_idYes
expected_versionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: the change is 'backed up' (mitigating the destructiveHint), restricted to non-credential settings, gated on a 'verified' version, and requires Kodi to be stopped when no Manager is present. The backup and stop-first facts are not derivable from the structured fields. It stops short of describing reversibility or what the output reports.

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?

Two compact clauses, front-loaded with the core action. 'backed up' is a fragment that reads telegraphically, but no sentence is wasted.

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?

Output schema exists so return values need no explanation, and the description covers backup, scope, and the stop-Kodi prerequisite. The significant gap is the 0%-documented parameter set, which leaves the definition incomplete for a mutation tool with four required arguments.

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% across 4 required parameters, so the description must carry the load. It only hints at expected_version ('verified ... version') and setting ('non-credential'); addon_id and value formats are left entirely unexplained, so the agent gets little help with the arguments.

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?

States a specific verb+resource ('Change a ... setting on ... add-on') with meaningful scope qualifiers ('non-credential', 'verified add-on version'). It is distinguishable from the sibling kodi_set_setting, though the description never names that sibling explicitly, so differentiation is implicit rather than stated.

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?

Provides one conditional prerequisite ('Without Manager, stop Kodi first') that tells the agent when extra steps are needed. However, it never states when to choose this over kodi_set_setting or kodi_addon_settings, and there are no exclusions beyond 'non-credential'.

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

kodi_set_settingA
Destructive

Change one non-credential Kodi setting through its runtime API, with a guisettings.xml rollback snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes
settingYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation nature is covered. The description adds valuable behavioral context beyond annotations: it performs the change via a runtime API, creates a guisettings.xml rollback snapshot, and is limited to non-credential settings. This meaningfully helps the agent understand the operation's safety profile and scope.

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 the essential action, scope, and behavioral note without any wasted words. It is appropriately sized for the tool's complexity.

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?

An output schema exists, so return values need not be explained, and annotations already cover the safety profile. The description adds key operational context (runtime API, rollback snapshot, non-credential scope), but it leaves a significant gap around parameter semantics since the schema provides no parameter descriptions. An agent still lacks guidance on how to supply valid 'setting' and 'value' inputs.

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 for parameter semantics. It only implies that 'setting' must be a non-credential Kodi setting and that 'value' is whatever is being changed, but it gives no format guidance, examples, or constraints for either parameter. The agent cannot infer valid setting names or value types from the description.

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 a specific verb ('Change') and resource ('Kodi setting'), and adds scoping details like 'non-credential' and 'runtime API' that separate it from sibling tools such as kodi_set_addon_setting and kodi_patch_file. However, it does not explicitly name or compare against an alternative sibling, so it falls short of the top score.

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 context by specifying that it is for 'non-credential' Kodi settings through the 'runtime API,' which helps an agent understand when it might apply. But it gives no explicit when-to-use guidance, no exclusions, and no named alternatives for cases where a different tool would be better.

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

kodi_settingsB
Read-only

Search/page Kodi's expert settings with current/default values, avoiding a whole-schema dump.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
startNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that results carry current and default values, which is genuine behavioral context, but says nothing about pagination behavior, query semantics, or result size limits.

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?

A single front-loaded sentence with no filler; the purpose comes first and the rationale trails. It is slightly terse for a tool with three undocumented parameters, but nothing is wasted.

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?

An output schema exists, so return-value explanation is not required, and the read-only annotations cover safety. Still, for a 3-parameter search tool at 0% schema coverage, the description leaves query and paging semantics under-specified.

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 carry the load. 'Search/page' does map meaningfully onto the three params (query = search term, limit/start = paging), giving partial compensation, but it never clarifies query matching syntax, limit bounds, or start offset semantics.

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?

States a specific verb (search/page) and resource (Kodi's expert settings) plus what is returned (current/default values). The phrase 'expert settings' implicitly distinguishes it from the sibling kodi_addon_settings / kodi_set_setting, though it never names an alternative explicitly.

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 clause 'avoiding a whole-schema dump' implies this is the lightweight, filtered alternative to reading the full schema, which is useful implied usage guidance. However, no explicit when-to-use condition or named alternative tool is given, so the agent must infer the routing.

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

kodi_statusA
Read-only

Inspect Kodi version, skin, current profile/window and active players; no playback changes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds value by enumerating what is inspected (version, skin, profile/window, active players) and explicitly ruling out playback changes, which goes beyond the annotations. It stops short of describing return format or latency, but the output schema exists to cover that.

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 names the verb, the inspected fields, and the key constraint. Every clause earns its place with no filler.

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

Completeness4/5

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

For a zero-parameter, read-only status tool with a rich output schema and full annotations, the description is nearly complete. It covers purpose, exclusions, and inspection targets. A minor gap is the absence of explicit routing to sibling read tools, but the core call requirements are met.

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?

There are zero parameters, so the baseline is 4. The description correctly focuses on the return scope rather than parameters, which is appropriate. No parameter semantics are needed or missing.

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?

Clear verb ('Inspect') and resource (Kodi state: version, skin, profile/window, active players). It is distinguishable from siblings like kodi_manager_inspect and kodi_lifecycle, though it does not explicitly name those alternatives. The scope is specific enough that an agent can tell what it returns without opening the schema.

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 phrase 'no playback changes' implies a read-only, non-mutating context, which hints at when to use it versus mutating siblings (kodi_playback controls, kodi_settings). However, it does not explicitly state when to choose this over similar read tools like kodi_manager_inspect or kodi_read. Usage is implied, not spelled out.

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

shield_appsA
Read-only

List installed Android package names (no app/account data).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description still adds a real disclosure beyond them: it returns only package names and explicitly excludes app/account data, which is useful scope information for an agent deciding what data it can rely on.

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, front-loaded with the action and resource, with the scope qualifier in parentheses. Nothing is wasted and nothing is buried.

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 read tool with an output schema, the description covers purpose and data scope adequately; return-value detail is legitimately left to the output schema. The only omission is whether a connected device is required.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. The description correctly implies no input is needed, and there are no parameter semantics to explain.

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 gives a specific verb and resource ('List installed Android package names'), which is immediately distinguishable from sibling read tools like shield_status or shield_screenshot. The parenthetical scope note further narrows intent, though it does not explicitly name a sibling it should be preferred over.

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 call this versus alternatives such as shield_status or shield_connect, nor any prerequisite (e.g., an active device connection). The agent must infer the usage context entirely.

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

shield_connectA

Connect ADB to the configured Shield only. Accept its debugging prompt on the TV.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the mutation and open-world profile is covered. The description adds genuinely useful context not in the annotations: it requires physically accepting a debugging prompt on the TV. It does not mention state changes, failure modes, or prerequisites like ADB availability.

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 short sentences, no redundancy, with the core action front-loaded and the TV-side prerequisite immediately after. Every sentence 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?

With an output schema present, return values need not be described, and annotations cover the safety profile. The description supplies the key operational prerequisite (accepting the TV debugging prompt), leaving only minor gaps such as what happens on connection failure or whether an existing session is reused.

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

Parameters4/5

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

The tool takes zero parameters, so per the rubric the baseline is 4. Schema coverage is 100% and there is nothing further the description could clarify about inputs.

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?

States a specific verb ('Connect ADB') and resource ('the configured Shield') plus a scoping constraint ('only'), so it is easily distinguished from read-oriented siblings like shield_status or shield_remote. It stops short of naming an alternative or contrasting with the other shield_* tools.

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?

'Only' hints that this is the sole connection path, and the TV-prompt sentence implies a first-run/precondition context. There is no explicit when-to-use vs. when-not guidance or reference to a sibling for a related task, so usage is only implied.

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

shield_logcatA
Read-only

Read a bounded Android log tail for native crashes. Redaction is best effort.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare the safe read-only profile, and the description adds two pieces of genuinely useful context: output is 'bounded' (limited tail) and 'Redaction is best effort', warning the agent that sensitive data may not be fully masked. It stops short of stating the actual bound or whether truncation is signalled.

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 short sentences with no filler; the core purpose is front-loaded and the caveat follows. Nothing could be removed without losing 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?

An output schema exists, so return values need no explanation, and the annotation covers the safety profile. The remaining gap is the undocumented 'lines' parameter and any connection precondition, which a one-param read tool should still address.

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 single 'lines' parameter (default 150) is documented only by its title and default. The description's 'bounded log tail' implies a line-count limit but never ties it to the parameter or explains the tail direction or maximum allowed value.

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?

Specific verb (Read) plus resource (Android log tail) and scope qualifier (bounded), with a stated use case (native crashes). It is distinguishable from the kodi_* log/read siblings by naming the Android platform, though it does not explicitly contrast with them.

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 phrase 'for native crashes' implies a narrow use case, but there is no explicit when-to-use guidance, no mention of alternatives (e.g. shield_status for general diagnostics), and no prerequisites such as needing an active connection.

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

shield_remoteB
Destructive

Send one explicit remote button. Playback controls require permission and write mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
buttonYes
allow_during_playbackNo

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?

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds a genuine behavioral constraint beyond structured data — playback buttons are gated on permission and write mode — but does not explain what is destroyed, whether allow_during_playback bypasses the gate, or any rate/confirmation behavior.

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

Conciseness5/5

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

Two tight sentences, zero filler, with the action front-loaded and the precondition second. Every clause earns its place.

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 presence of an output schema removes any need to describe return values. Still, for a destructive, permission-gated remote-control tool with zero parameter documentation, the definition leaves key operational details (the allow_during_playback flag, what the destructive hint applies to) unaddressed.

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 carries the full burden for two parameters. The button enum self-documents its values, but 'allow_during_playback' is never mentioned, and the description's 'write mode' wording does not clarify how that flag interacts with the gating rule.

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 a specific verb and resource ('Send one explicit remote button'), making the action unambiguous. It does not differentiate itself from the many shield_*/kodi_* siblings, but the purpose itself is clear without opening the schema.

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?

'Send one explicit remote button' implies single-action usage, and 'Playback controls require permission and write mode' gives a real precondition. However, it never says when to prefer this tool over alternatives such as shield_status or the kodi_* controls, leaving routing to inference.

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

shield_screenshotA
Read-only

Capture the current TV screen without navigation. Screens can contain private information.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely new context beyond that: it does not navigate or change device state, and screens may expose private information, which is a real operational caveat for an agent deciding whether to capture and surface the image.

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 short sentences, zero filler, with the core action front-loaded and the privacy caveat right behind it. Nothing could be cut without losing meaning.

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 zero-param read tool with full annotation coverage this is close to complete, but there is no output schema, so the description is the only place that could say what a caller actually receives (base64 image, file path, dimensions). That gap is minor but real for a screenshot 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, so the baseline of 4 applies. The description correctly says nothing about arguments, avoiding noise.

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?

States a specific verb and resource ("Capture the current TV screen") and adds a scoping qualifier ("without navigation") that tells the agent the screen state is not altered. It is not confused with any sibling, since none of shield_status/shield_connect/shield_logcat/etc. capture a screen, though it never explicitly distinguishes itself from them.

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 only implied: "without navigation" hints the tool is for reading the current screen rather than driving the UI, but there is no statement of when to prefer this over shield_status or shield_apps, nor any precondition. An agent can infer intent but gets no routing help.

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

shield_statusA
Read-only

Inspect Shield model, Android version, memory, free storage and Kodi process.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered by structured data. The description adds which data domains are surfaced (model, Android version, memory, storage, Kodi process), but says nothing about auth requirements, cost, or freshness/latency.

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 tight sentence with the verb and the full list of inspected items front-loaded. Every word earns its place and there is no boilerplate.

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?

With an output schema present, return values need not be explained, and with zero parameters the input side is trivially complete. The description covers the scope of inspection adequately, though it omits any dependency on shield_connect having run first.

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

Parameters4/5

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

The tool takes zero parameters, so there are no argument semantics to document; the baseline of 4 applies. The description's enumeration of returned fields is a bonus rather than a compensation for a gap.

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?

States a specific verb ('Inspect') plus the resource and enumerates exactly what is retrieved: Shield model, Android version, memory, free storage, and Kodi process. It is clearly distinguishable from the Kodi-only siblings such as kodi_status, though it does not explicitly name them.

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 statement of when to call this rather than kodi_status, kodi_manager_inspect, or shield_connect, and no prerequisites (e.g., must the device be connected first). Usage is only implied by the word 'Inspect'.

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.

  1. 25 tool updatesv0.1.0
    • First observedkodi_addon_settings
    • First observedkodi_addons
    • First observedkodi_backup_file
    • First observedkodi_backups
    • First observedkodi_browse
    • First observedkodi_layout_apply
    • First observedkodi_layout_preview
    • First observedkodi_layout_rebuild
    • First observedkodi_lifecycle
    • First observedkodi_logs
    • First observedkodi_manager_inspect
    • First observedkodi_patch_file
    • First observedkodi_read
    • First observedkodi_read_file
    • First observedkodi_restore_file
    • First observedkodi_set_addon_setting
    • First observedkodi_set_setting
    • First observedkodi_settings
    • First observedkodi_status
    • First observedshield_apps
    • First observedshield_connect
    • First observedshield_logcat
    • First observedshield_remote
    • First observedshield_screenshot
    • First observedshield_status

TDQS

B3.3/5.0

Scored across 25 tools

Disambiguation4/5

Most tools map cleanly to a distinct resource+action, and the settings family (kodi_settings vs kodi_addon_settings vs kodi_set_setting vs kodi_set_addon_setting) is carefully differentiated by object and read/write. A few pairs like kodi_backup_file/kodi_backups and kodi_patch_file/kodi_set_setting require close reading, but boundaries are largely clear.

Naming Consistency4/5

All names use lowercase snake_case with consistent shield_/kodi_ namespace prefixes, and verbs are predictable (read, patch, restore, set, preview, apply). Some entries are noun-only (kodi_status, kodi_addons, kodi_logs) rather than verb_noun, a minor deviation but still readable and grouped.

Tool Count3/5

25 tools is heavy for what is essentially a Shield/Kodi inspection-and-safe-edit server, and the surface sits right at the borderline where maintenance and selection cost grow. The extensive safety-related variants (backup/patch/restore, manager layout trio) are arguably each justified, but a leaner surface would reduce cognitive load.

Completeness4/5

The surface covers device lifecycle and diagnostics, logs, file read/backup/patch/restore round-trips, settings and add-on settings, and optional Manager layout staging/apply/rebuild, giving strong lifecycle coverage. Only minor gaps remain, such as no dedicated file-delete or broader addon-management operations, which agents can work around.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A locally-run, read-only MCP server that lets an LLM client diagnose a self-hosted *arr media stack by aggregating across Sonarr, Radarr, Prowlarr, qBittorrent, Tdarr, and Profilarr.
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    A secure, local-first MCP server for read-only inspection and troubleshooting of development environments, exposing narrow, typed, auditable capabilities for repository inspection, log summarization, Docker review, and security scanning without granting unrestricted machine access.
    8
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Read-only MCP server to inspect allowlisted Docker containers, systemd services, JSONL logs, and HTTP health endpoints without arbitrary shell access.
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Local MCP server for observing and controlling an authorized Android device over USB using ADB and scrcpy, providing screen capture, UI automation, app inspection, logcat, and evidence recording.
    29
    41 npm
    3
    MIT