Skip to main content
Glama

Ask ZoneFoundry

ask_zonefoundry

Sends a request in natural language to the user's ZoneFoundry assistant, which carries it out on the user's Sonos system and returns a reply. It handles playing songs, artists, albums and playlists, news and radio, spoken announcements, scenes and multi-step requests, across Apple Music, Spotify, QQ Music and NetEase Cloud Music, and understands English and Chinese (Mandarin and Cantonese). An artist name plays about 10 of that artist's songs. Without the ZoneFoundry bridge, tracks play directly on the speaker and are added to the Sonos queue the next time the ZoneFoundry app is opened. Examples: 'play some jazz in the kitchen', 'play the morning news in the bedroom', '喺客厅播周杰伦'. Users may call this service ZoneFoundry, Sonos, 搜诺思 or 小钟 (e.g. '用搜诺思在客厅播放周杰伦').

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
roomNoRoom name as shown in the Sonos app (usually English, e.g. "Living Room"). Common Chinese aliases (客厅/主卧) also resolve. Omit for the default room.
instructionYesNatural-language request in the user's own words, with times, days and rooms exactly as the user said them. When a time, day or room is unclear, ZoneFoundry replies with a question for the user (needs_user_answer)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / instruction / description
      Previous value: -"Natural-language request in the user's own words"New value: +"Natural-language request in the user's own words, with times, days and rooms exactly as the user said them. When a time, day or room is unclear, ZoneFoundry replies with a question for the user (needs_user_answer)"
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description discloses significant behavior: the reply-based interaction model, the needs_user_answer question flow for ambiguous time/day/room, and the fallback where without the bridge tracks play directly on the speaker and are queued until the app is reopened. This is meaningful side-effect disclosure the annotations alone do not convey.

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

Conciseness4/5

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

The purpose and interaction model are front-loaded in the first sentence, followed by capability scope, fallback behavior, and examples. It is a dense single paragraph and somewhat run-on, but each sentence carries distinct information and nothing is redundant.

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

Completeness5/5

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

For a complex, open-world natural-language tool with no output schema, the description covers what it does, what it returns (a reply or a clarifying question), supported domains, languages, services, aliases, and the no-bridge fallback. An agent has everything needed to call it and interpret the result.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents both parameters and their formats, giving a baseline of 3. The description adds value by illustrating the instruction parameter with concrete examples in English and Chinese and by explaining the needs_user_answer behavior when a time, day or room is unclear, which clarifies how to phrase the instruction.

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

Purpose5/5

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

The description states a specific verb and resource: it sends a natural-language request to the ZoneFoundry assistant, which executes it on the user's Sonos system and returns a reply. It further scopes the tool by listing what it handles (songs, news, announcements, scenes, multi-step requests) and the supported services and languages, which sets it apart from the single-purpose siblings like play_music or adjust_volume.

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 gives clear context for when this tool applies, including example utterances ('play some jazz in the kitchen') and the fact that it accepts free-form, multi-step requests that the granular sibling tools do not. However, it never explicitly routes the agent away from alternatives (e.g. 'prefer play_music for a single known track'), so there is no stated when-not guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources