Skip to main content
Glama

search_browser_items

Read-onlyIdempotent

Search a bounded subtree of Ableton Live's browser and return exact paths for load_browser_item; optionally join private MCP tags and favorites.

Instructions

Search a bounded subtree of Live's browser and return exact paths usable by load_browser_item. Optionally join private MCP tags and favorites by exact root, path, and URI; not native Live collections.

Input Schema

NameRequiredDescriptionDefault
pathNoOptional subtree path.
rootYesLive browser root.
limitNoMaximum matching items to return.
queryYesCase-insensitive item-name query.
maxDepthNoMaximum subtree depth to scan.
includeMetadataNoJoin private MCP tags and favorites for results with an exact URI.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.3.1
    • removedOutput schema / additionalProperties
      Removed value: -true
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "path": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "query": {
      +        "type": "string"
      +      },
      +      "results": {
      +        "items": {
      +          "properties": {
      +            "loadable": {
      +              "type": "boolean"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "path": {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "uri": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            }
      +          },
      +          "required": [
      +            "name"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "root": {
      +        "type": "string"
      +      },
      +      "stateVersion": {
      +        "minimum": 1,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "stateVersion",
      +      "root",
      +      "path",
      +      "query",
      +      "results"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "error": {
      +        "properties": {
      +          "message": {
      +            "type": "string"
      +          },
      +          "outcome": {
      +            "enum": [
      +              "unknown",
      +              "not_executed"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "message",
      +          "outcome"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "error"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed4 schema fields changedv0.3.0
    • addedInput schema / properties / limit / description
      Added value: +"Maximum matching items to return."
    • addedInput schema / properties / maxDepth / description
      Added value: +"Maximum subtree depth to scan."
    • addedInput schema / properties / root / enum
      Added value: +[
      +  "audio_effects",
      +  "clips",
      +  "current_project",
      +  "drums",
      +  "hotswap_target",
      +  "instruments",
      +  "legacy_libraries",
      +  "max_for_live",
      +  "midi_effects",
      +  "packs",
      +  "plugins",
      +  "samples",
      +  "sounds",
      +  "user_folders",
      +  "user_library"
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "type": "object"
      +}
  3. Changed1 schema field changedv0.2.0
    • addedInput schema / properties / includeMetadata
      Added value: +{
      +  "description": "Join private MCP tags and favorites for results with an exact URI.",
      +  "type": "boolean"
      +}
  4. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds real behavioral context beyond that: results are exact paths consumed by load_browser_item, and the metadata join applies only where root/path/URI match exactly and never to native Live collections. It does not, however, describe result ordering or paging behavior.

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 sentences, front-loaded with the core action and output, with no filler. The second sentence is dense and slightly awkward in its clause stacking, but each clause carries distinct 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?

With a full input schema, an output schema, and complete annotations, the definition covers purpose, output usability, and the metadata-join caveat, which is most of what an agent needs. The remaining gap is disambiguation from the several other browser-search/list tools in the sibling set, which is left to inference.

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 100%, so the description is not required to restate path/root/query/limit/maxDepth/includeMetadata semantics. Its only parameter-adjacent content is the join condition 'by exact root, path, and URI,' which slightly clarifies includeMetadata but is narrower than the schema already conveys. Baseline 3 is appropriate.

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 names a specific verb and resource (search a bounded subtree of Live's browser) plus the output contract (exact paths usable by load_browser_item), which is concrete enough to pick this tool without opening its schema. It also draws a boundary against a nearby sibling concept by stating the metadata join is 'not native Live collections.'

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 implied rather than stated: the tool is for locating browser items, and the mention that paths feed load_browser_item hints at a downstream workflow. There is no explicit when-to-use guidance against close siblings such as get_browser_items, search_browser_roots, or get_factory_browser_items, nor any statement of when not to use it.

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

Deploy Server

Other Tools