Skip to main content
Glama

Add to Playlist

add_to_playlist
Idempotent

πŸ”΄ WRITE β€” add one or more STOCKS/assets to a playlist (batch, idempotent). Each entry may be an exact Ava Advisor ticker OR a name/symbol the server resolves (any asset class: stock/ETF/commodity/crypto/FX). An ambiguous name (e.g. same name across markets) returns a needs_confirmation reconfirm β€” pick the exact ticker and re-call. playlist_id from list_playlists. Re-adding an existing ticker is a harmless no-op. Returns {added, skipped, item_count} β€” ⚠️ RELAY any skipped to the user; never drop it silently.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "playlist_id": "<playlist_id>",
      "tickers": "<tickers>"
    },
    "name": "add_to_playlist"
  }
}

Input Schema

NameRequiredDescriptionDefault
contextNoOPTIONAL but RECOMMENDED β€” paste the user's FULL request VERBATIM (any language: 'ΰΈ‚ΰΈ­ΰΈ£ΰΈ²ΰΈ„ΰΈ²ΰΈœΰΈ₯ΰΉ„ΰΈ‘ΰΉ‰ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `ticker` entity means (the apple COMPANY vs the fruit COMMODITY; which Samsung). One context per call, shared by all tickers here.
tickersYesStocks to add β€” an EXACT Ava Advisor ticker (`AAPL.US`, `BTC-USD.CC`) OR a plain NAME/symbol ('Apple', 'ΰΈ‹ΰΈ±ΰΈ‘ΰΈ‹ΰΈΈΰΈ‡', 'btcusd') which the SERVER resolves for you (any asset class). An ambiguous/same-name-across-markets one comes back as a reconfirm to pick from.
playlist_idYesThe playlist's id (from list_playlists).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: it explains the server-side name-resolution behavior across asset classes, the needs_confirmation reconfirm path for ambiguous names, the harmless no-op on re-add, the exact return payload {added, skipped, item_count}, and a directive to relay skipped entries. These are behaviors an agent cannot infer from readOnlyHint/idempotentHint 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?

Dense but front-loaded: write marker, action, batch/idempotency, resolution rule, reconfirm path, return shape, then the relay warning. Emoji and all-caps emphasis are slightly noisy but each sentence carries distinct information; nothing is redundant with the annotations in a wasteful way.

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 mutation tool with no output schema, the description supplies the return shape, the idempotency guarantee, and the failure/disambiguation path, which is close to complete. The only gap is the omitted context parameter and no mention of auth or permission requirements, though those are low-risk here.

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 schema already documents all three parameters including the context verbatim-paste guidance. The description reinforces ticker flexibility and points to list_playlists for playlist_id, but adds little syntactic meaning beyond what the schema states, and never mentions the context parameter at all.

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 and resource ('add one or more STOCKS/assets to a playlist'), plus batch and idempotent qualifiers, which cleanly separates it from create_playlist and remove_from_playlist. The πŸ”΄ WRITE marker front-loads the mutation nature so an agent can route instantly.

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 clear operational context: playlist_id comes from list_playlists, and an ambiguous name triggers a needs_confirmation reconfirm where the agent must pick the exact ticker and re-call. It does not explicitly state the negative case (e.g. 'if no playlist exists yet, call create_playlist first'), so the guidance is strong but not fully exhaustive.

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.