Skip to main content
Glama

classic_services

Lists a paired Bluetooth Classic device's SDP service records, including service-class UUIDs and RFCOMM channels, with an option to refresh cached data by querying the device again.

Instructions

list a paired classic device's service records from the mac's sdp cache.

each record has a name, service-class uuids and an rfcomm channel (null when rfcomm cannot reach it). protected channels are standard profiles such as hands-free and headset, which harald never opens; firmware_update channels stay blocked for writes. refresh=true asks the device again instead of trusting the cache.

Input Schema

NameRequiredDescriptionDefault
addressYes
refreshNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does meaningful work: it discloses the data source (local SDP cache vs. live query), that rfcomm channels can be null when unreachable, and that protected/firmware_update channels are blocked by the host tool. It does not mention permissions, whether the device must be connected, or failure behavior, leaving some behavioral gaps.

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?

Four short sentences that are front-loaded with the core action and data source, followed by record shape and channel caveats. The protected/firmware channel explanation is slightly tangential for a read-only listing tool, but it is relevant and earns its space.

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

Completeness5/5

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

An output schema exists, so return-value explanation is not required, yet the description still sketches record contents (name, service-class UUIDs, rfcomm channel). For a two-parameter read tool, everything needed to call it — data source, refresh behavior, caveats — is present except address format.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It fully explains 'refresh' (re-query the device instead of trusting the cache), but 'address' is only implicitly defined via 'a paired classic device's' — no format or source (e.g., from classic_devices) is given. Half the parameters are well-covered, half are left to inference.

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 ('list a paired classic device's service records from the mac's sdp cache'), which is clearly distinct from the sibling classic_devices (devices, not services). It stops short of naming any sibling or explicitly contrasting use cases, so it is clear but not maximally differentiated.

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 only explicit usage rule is the refresh flag ('refresh=true asks the device again instead of trusting the cache'), which is a solid conditional hint. There is no guidance on when to choose this over classic_devices, connect, or classic_send, and no prerequisites (pairing, connection state) are stated, so usage is implied rather than spelled out.

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