Theme Players
theme_playersTHE 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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles. | |
| theme | Yes | A megatrend theme — name/slug (resolved for you) or node id. | |
| country | No | `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 |
| exposure | No | Filter by exposure tier (e.g. `core`). Omit → all members. |