Skip to main content
Glama

Theme Players

theme_players
Read-only

THE roster tool: investable MEMBER companies of a theme (curated membership). Rolls up sub-themes (a parent node returns its children's members too). Use this — not screen_stocks — for 'who are the players / real names in ' (screen_stocks is a NEWS-ranked subset gated to news-epicenter members). country='all' (default) gives the complete cross-market list; an ISO-2 scopes to one trading venue. Different from top_entities (news-derived). limit = how many (default 20, max 50; big themes have many). Returns {stocks, count, total, note?} — if total > count it's a TOP SLICE: say so, don't present it as the full roster (raise limit).

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": {
      "theme": "<theme>"
    },
    "name": "theme_players"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoMax rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles.
themeYesA megatrend theme — name/slug (resolved for you) or node id.
countryNo`all` (DEFAULT) = the whole cross-market roster — use this for 'who are the players in <theme>'. Or an ISO-2 market to scope to ONE venue. ⚠️ keyed by LISTING VENUE, not domicile: a foreign name lists under the market it TRADES on (Leonardo/Saab under GB via their LSE line, Novo under US/DE, Cameco under US) — so a home-country query (IT/SE/DK/CA) can return 0 even though the company IS a member. When in doubt use `all`.all
exposureNoFilter by exposure tier (e.g. `core`). Omit → all members.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read, so the bar is lower. The description still adds real value beyond annotations: sub-theme rollup semantics, the {stocks, count, total, note?} return shape, and the truncation rule that total > count means a top slice that must not be presented as the full roster. It stops short of stating ordering or whether the note field carries caveats, so it sits at a solid 3 rather than full credit.

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?

Front-loaded with the identity claim, then differentiation, then parameter notes, then return-value caveat — a sensible order. A few clauses duplicate the schema (limit default/max), costing a point, but nearly every sentence carries routing or behavioral information.

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?

With no output schema present, the description supplies the return shape and the meaning of its total vs count mismatch, which is the one thing an agent could otherwise misreport. Combined with sibling routing and the country caveat, nothing needed to call this correctly is missing.

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 baseline is 3 and the schema already documents theme, country venue-vs-domicile behavior, exposure, and limit bounds. The description largely restates those facts ("limit = how many (default 20, max 50)", country='all' default) rather than adding syntax, accepted slug formats, or valid exposure tier names beyond the single example 'core'.

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?

Opens with a specific verb and resource: "THE roster tool: investable MEMBER companies of a theme (curated membership)", and immediately clarifies the inheritance rule ("a parent node returns its children's members too"). It explicitly contrasts itself with screen_stocks and top_entities, so an agent can pick it without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Gives the exact query pattern it owns ("who are the players / real names in <theme>") and names the alternative to avoid, including why screen_stocks is narrower (news-ranked, epicenter-gated). It also states when to use country='all' vs an ISO-2 and warns that a home-country query may return 0.

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.