Skip to main content
Glama
Homey MCP Server
by homey-mcp

Search Devices

search_devices
Read-onlyIdempotent

Find Homey smart home devices by name, class, or capability when you don't know their exact ID. Searches return matching devices with their current values for quick identification.

Instructions

Search devices by name, device class, or capability name. Returns matching devices with their current values. Useful for finding devices when you don't know the exact ID — e.g. search 'temperature' to find all temperature sensors, or 'kitchen' to find devices with kitchen in the name.

Input Schema

NameRequiredDescriptionDefault
queryYesSearch text (matches against device name, class, and capability names)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv3.0.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
  2. First observedv2.0.0

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds that results include current values, which is useful given no output schema. It does not disclose matching semantics (substring vs exact, case sensitivity) or any result cap, which is the main behavioral unknown for a search tool.

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?

Three short sentences, front-loaded with the searchable fields, then the return shape, then the motivating example. No filler, though the example sentence is somewhat longer than strictly necessary.

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?

It is a single-parameter read tool, so the bar is moderate, and it does the basics: what it matches on and what comes back. It leaves out matching semantics and result limits, which matter for an agent deciding whether a search is exhaustive.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3 and the schema already documents the matching targets. The 'temperature'/'kitchen' examples add illustrative value but do not clarify matching mode (substring, case-insensitive, multi-word) beyond what the schema states.

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 ("Search devices") and enumerates the searchable fields (name, device class, capability name), which separates it from a plain enumeration tool. It does not explicitly name list_devices or get_device as alternatives, so sibling differentiation is implied 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 Guidelines4/5

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

"Useful for finding devices when you don't know the exact ID" gives a clear usage condition, and the 'temperature'/'kitchen' examples make the intent concrete. It stops short of explicitly routing the agent to list_devices for full enumeration or get_device for known IDs.

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