Skip to main content
Glama

Delightful's Game Research Starter Pack

list_trends

The 50 conversations currently moving the games industry, each with what it is, why it matters, the markets it lands in, its stage, how old the row is, and where it sits on the Three Horizons: H1, the current system running down, H2, the transition and its four groups, H3, the emerging future, or perennial ground. The placements are an editorial reading, not a score, and every answer carries the key to them in horizons. A routing map rather than a synthesis: it names arguments and points at where they are happening, and takes no position on any of them. Filter by horizon, group, market, stage, category or a free-text query; every filter narrows the list and none of them ranks it. Rows come in the order /trends reads them, 14 to a page: page with offset. Name one by slug to read it in full, with its further reading and its claims: a dated timeline, figures, status, consequences, objections, talk and what to watch, each with the link it came from. A claim marked talk: true cites a player community: it shows what players are saying, which moves this industry, and weighs less than reporting. Never quote it as an event or a figure. A claim carrying retired came off its page on that date and is kept as the record: true when written, no longer part of the reading. This is the fastest-decaying data here — every row is dated, and anything older than about six months needs a refresh.

Input Schema

NameRequiredDescriptionDefault
slugNoOne trend by its permanent slug, as a list returns it. Comes back with its claims, and with its further reading unless include_further_reading says otherwise. The other filters are ignored when this is set.
groupNoOne of the four groups inside h2: shifts that make room for h3, rules being rewritten, moves that prolong h1, and bets that stalled. Only h2 trends carry one.
limitNoRows per page, default and at most 14 without further reading and 10 with it. A page is the next rows in the order described, never the top ones — nothing here is ranked.
queryNoFree text, matched against the name, what it is, why it matters, where to follow it, its category, its horizon label and line, and the titles of its further reading. All words must appear. A word filter, not a semantic search: "layoffs" finds the layoff trend, a synonym the rows never use finds nothing. Omit to browse a filter instead.
stageNoDominant is sustained mainstream coverage for a year or more. Emerging is real and accelerating. Perennial recurs cyclically. Receding was dominant and is cooling, kept so dated coverage is recognisable as dated.
marketNoTrends that reach this market: tagged to it directly, reached through an EU tag, or global. Each row then says which, in market_relevance, and the list comes back closest first. Most trends in games are global and apply everywhere.
offsetNoRows to skip before the first one returned, for paging. Default 0. The note on each page says what to pass for the next.
horizonNoh1 is the currently dominant system, losing its fit. h3 is the early working examples of what may replace it. h2 is the turbulent ground between them, sorted into four groups. perennial is the pressures every horizon has to answer.
categoryNo
include_further_readingNoDefault false, and true when slug is given. Further reading roughly doubles a row, so at most 10 rows travel with it; ask for a row by slug to read one in full.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / market / enum
      Previous value: -[
      -  "US",
      -  "Global",
      -  "JP",
      -  "KR",
      -  "Not market specific",
      -  "UK",
      -  "DE",
      -  "IN",
      -  "BR",
      -  "FR",
      -  "CN",
      -  "MENA",
      -  "IT",
      -  "SEA",
      -  "CA",
      -  "Nordics",
      -  "MX",
      -  "ES",
      -  "TR",
      -  "NL",
      -  "AU",
      -  "PL",
      -  "TW",
      -  "EU",
      -  "LATAM",
      -  "Asia",
      -  "BE"
      -]New value: +[
      +  "US",
      +  "Global",
      +  "JP",
      +  "KR",
      +  "UK",
      +  "Not market specific",
      +  "DE",
      +  "IN",
      +  "BR",
      +  "FR",
      +  "CN",
      +  "MENA",
      +  "IT",
      +  "SEA",
      +  "CA",
      +  "Nordics",
      +  "MX",
      +  "ES",
      +  "TR",
      +  "NL",
      +  "AU",
      +  "PL",
      +  "TW",
      +  "EU",
      +  "LATAM",
      +  "Asia",
      +  "BE"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / category / enum
      Previous value: -[
      -  "Money & business model",
      -  "Platform & distribution",
      -  "Culture & audience",
      -  "Regulation, safety & age",
      -  "Geography & power",
      -  "Technology"
      -]New value: +[
      +  "Money & business model",
      +  "Culture & audience",
      +  "Platform & distribution",
      +  "Regulation, safety & age",
      +  "Geography & power",
      +  "Technology"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / category / enum
      Previous value: -[
      -  "Money & business model",
      -  "Platform & distribution",
      -  "Regulation, safety & age",
      -  "Culture & audience",
      -  "Geography & power",
      -  "Technology"
      -]New value: +[
      +  "Money & business model",
      +  "Platform & distribution",
      +  "Culture & audience",
      +  "Regulation, safety & age",
      +  "Geography & power",
      +  "Technology"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / category / enum
      Previous value: -[
      -  "Money & business model",
      -  "Platform & distribution",
      -  "Culture & audience",
      -  "Regulation, safety & age",
      -  "Geography & power",
      -  "Technology"
      -]New value: +[
      +  "Money & business model",
      +  "Platform & distribution",
      +  "Regulation, safety & age",
      +  "Culture & audience",
      +  "Geography & power",
      +  "Technology"
      +]
  5. Changed1 schema field changed
    • changedInput schema / properties / category / enum
      Previous value: -[
      -  "Money & business model",
      -  "Regulation, safety & age",
      -  "Platform & distribution",
      -  "Culture & audience",
      -  "Geography & power",
      -  "Technology"
      -]New value: +[
      +  "Money & business model",
      +  "Platform & distribution",
      +  "Culture & audience",
      +  "Regulation, safety & age",
      +  "Geography & power",
      +  "Technology"
      +]
  6. Changed1 schema field changed
    • changedInput schema / properties / market / enum
      Previous value: -[
      -  "US",
      -  "Global",
      -  "JP",
      -  "KR",
      -  "Not market specific",
      -  "UK",
      -  "DE",
      -  "BR",
      -  "FR",
      -  "CN",
      -  "MENA",
      -  "IT",
      -  "SEA",
      -  "CA",
      -  "Nordics",
      -  "IN",
      -  "MX",
      -  "ES",
      -  "TR",
      -  "NL",
      -  "AU",
      -  "PL",
      -  "TW",
      -  "EU",
      -  "LATAM",
      -  "Asia",
      -  "BE"
      -]New value: +[
      +  "US",
      +  "Global",
      +  "JP",
      +  "KR",
      +  "Not market specific",
      +  "UK",
      +  "DE",
      +  "IN",
      +  "BR",
      +  "FR",
      +  "CN",
      +  "MENA",
      +  "IT",
      +  "SEA",
      +  "CA",
      +  "Nordics",
      +  "MX",
      +  "ES",
      +  "TR",
      +  "NL",
      +  "AU",
      +  "PL",
      +  "TW",
      +  "EU",
      +  "LATAM",
      +  "Asia",
      +  "BE"
      +]
  7. Changed1 schema field changed
    • changedInput schema / properties / market / enum
      Previous value: -[
      -  "US",
      -  "Global",
      -  "JP",
      -  "KR",
      -  "UK",
      -  "Not market specific",
      -  "DE",
      -  "FR",
      -  "CN",
      -  "MENA",
      -  "IT",
      -  "SEA",
      -  "CA",
      -  "Nordics",
      -  "BR",
      -  "IN",
      -  "MX",
      -  "ES",
      -  "TR",
      -  "NL",
      -  "AU",
      -  "PL",
      -  "TW",
      -  "EU",
      -  "LATAM",
      -  "Asia",
      -  "BE"
      -]New value: +[
      +  "US",
      +  "Global",
      +  "JP",
      +  "KR",
      +  "Not market specific",
      +  "UK",
      +  "DE",
      +  "BR",
      +  "FR",
      +  "CN",
      +  "MENA",
      +  "IT",
      +  "SEA",
      +  "CA",
      +  "Nordics",
      +  "IN",
      +  "MX",
      +  "ES",
      +  "TR",
      +  "NL",
      +  "AU",
      +  "PL",
      +  "TW",
      +  "EU",
      +  "LATAM",
      +  "Asia",
      +  "BE"
      +]
  8. Changed5 schema fields changed
    • addedInput schema / properties / group
      Added value: +{
      +  "description": "One of the four groups inside h2: shifts that make room for h3, rules being rewritten, moves that prolong h1, and bets that stalled. Only h2 trends carry one.",
      +  "enum": [
      +    "makes-room",
      +    "rewriting-rules",
      +    "prolongs-h1",
      +    "stalled-bets"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / horizon
      Added value: +{
      +  "description": "h1 is the currently dominant system, losing its fit. h3 is the early working examples of what may replace it. h2 is the turbulent ground between them, sorted into four groups. perennial is the pressures every horizon has to answer.",
      +  "enum": [
      +    "h1",
      +    "h2",
      +    "h3",
      +    "perennial"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / limit / description
      Previous value: -"Rows per page, default 14, at most 38 without further reading and 10 with it. A page is the next rows in the order described, never the top ones — nothing here is ranked."New value: +"Rows per page, default and at most 14 without further reading and 10 with it. A page is the next rows in the order described, never the top ones — nothing here is ranked."
    • changedInput schema / properties / query / description
      Previous value: -"Free text, matched against the name, what it is, why it matters, where to follow it, its category and the titles of its further reading. All words must appear. A word filter, not a semantic search: \"layoffs\" finds the layoff trend, a synonym the rows never use finds nothing. Omit to browse a filter instead."New value: +"Free text, matched against the name, what it is, why it matters, where to follow it, its category, its horizon label and line, and the titles of its further reading. All words must appear. A word filter, not a semantic search: \"layoffs\" finds the layoff trend, a synonym the rows never use finds nothing. Omit to browse a filter instead."
    • changedInput schema / properties / slug / description
      Previous value: -"One trend by its permanent slug, as a list returns it. Comes back with its further reading unless include_further_reading says otherwise. The other filters are ignored when this is set."New value: +"One trend by its permanent slug, as a list returns it. Comes back with its claims, and with its further reading unless include_further_reading says otherwise. The other filters are ignored when this is set."
  9. Changed1 schema field changed
    • changedInput schema / properties / market / enum
      Previous value: -[
      -  "US",
      -  "Global",
      -  "JP",
      -  "KR",
      -  "Not market specific",
      -  "UK",
      -  "DE",
      -  "FR",
      -  "CN",
      -  "MENA",
      -  "IT",
      -  "SEA",
      -  "CA",
      -  "Nordics",
      -  "BR",
      -  "IN",
      -  "MX",
      -  "ES",
      -  "TR",
      -  "NL",
      -  "AU",
      -  "PL",
      -  "TW",
      -  "EU",
      -  "LATAM",
      -  "Asia",
      -  "BE"
      -]New value: +[
      +  "US",
      +  "Global",
      +  "JP",
      +  "KR",
      +  "UK",
      +  "Not market specific",
      +  "DE",
      +  "FR",
      +  "CN",
      +  "MENA",
      +  "IT",
      +  "SEA",
      +  "CA",
      +  "Nordics",
      +  "BR",
      +  "IN",
      +  "MX",
      +  "ES",
      +  "TR",
      +  "NL",
      +  "AU",
      +  "PL",
      +  "TW",
      +  "EU",
      +  "LATAM",
      +  "Asia",
      +  "BE"
      +]
  10. Changed2 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Rows per page, default 14, at most 37 without further reading and 10 with it. A page is the next rows in the order described, never the top ones — nothing here is ranked."New value: +"Rows per page, default 14, at most 38 without further reading and 10 with it. A page is the next rows in the order described, never the top ones — nothing here is ranked."
    • changedInput schema / properties / stage / enum
      Previous value: -[
      -  "Dominant",
      -  "Perennial",
      -  "Emerging",
      -  "Receding"
      -]New value: +[
      +  "Dominant",
      +  "Emerging",
      +  "Perennial",
      +  "Receding"
      +]
  11. Changed2 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Rows per page, default 16, at most 37 without further reading and 10 with it. A page is the next rows in the order described, never the top ones — nothing here is ranked."New value: +"Rows per page, default 14, at most 37 without further reading and 10 with it. A page is the next rows in the order described, never the top ones — nothing here is ranked."
    • changedInput schema / properties / stage / enum
      Previous value: -[
      -  "Dominant",
      -  "Emerging",
      -  "Perennial",
      -  "Receding"
      -]New value: +[
      +  "Dominant",
      +  "Perennial",
      +  "Emerging",
      +  "Receding"
      +]
  12. Changed1 schema field changed
    • changedInput schema / properties / market / enum
      Previous value: -[
      -  "US",
      -  "Global",
      -  "JP",
      -  "KR",
      -  "Not market specific",
      -  "UK",
      -  "DE",
      -  "FR",
      -  "CN",
      -  "MENA",
      -  "IT",
      -  "SEA",
      -  "CA",
      -  "Nordics",
      -  "BR",
      -  "IN",
      -  "MX",
      -  "ES",
      -  "TR",
      -  "NL",
      -  "AU",
      -  "PL",
      -  "TW",
      -  "EU",
      -  "LATAM",
      -  "Asia"
      -]New value: +[
      +  "US",
      +  "Global",
      +  "JP",
      +  "KR",
      +  "Not market specific",
      +  "UK",
      +  "DE",
      +  "FR",
      +  "CN",
      +  "MENA",
      +  "IT",
      +  "SEA",
      +  "CA",
      +  "Nordics",
      +  "BR",
      +  "IN",
      +  "MX",
      +  "ES",
      +  "TR",
      +  "NL",
      +  "AU",
      +  "PL",
      +  "TW",
      +  "EU",
      +  "LATAM",
      +  "Asia",
      +  "BE"
      +]
  13. Changed1 schema field changed
    • changedInput schema / properties / limit / description
      Previous value: -"Rows per page, default 20, at most 37 without further reading and 10 with it. A page is the next rows in the order described, never the top ones — nothing here is ranked."New value: +"Rows per page, default 16, at most 37 without further reading and 10 with it. A page is the next rows in the order described, never the top ones — nothing here is ranked."
  14. Changed1 schema field changed
    • changedInput schema / properties / market / enum
      Previous value: -[
      -  "US",
      -  "Global",
      -  "JP",
      -  "KR",
      -  "UK",
      -  "Not market specific",
      -  "DE",
      -  "FR",
      -  "CN",
      -  "MENA",
      -  "IT",
      -  "SEA",
      -  "CA",
      -  "Nordics",
      -  "BR",
      -  "IN",
      -  "MX",
      -  "ES",
      -  "TR",
      -  "NL",
      -  "AU",
      -  "PL",
      -  "TW",
      -  "EU",
      -  "LATAM",
      -  "Asia"
      -]New value: +[
      +  "US",
      +  "Global",
      +  "JP",
      +  "KR",
      +  "Not market specific",
      +  "UK",
      +  "DE",
      +  "FR",
      +  "CN",
      +  "MENA",
      +  "IT",
      +  "SEA",
      +  "CA",
      +  "Nordics",
      +  "BR",
      +  "IN",
      +  "MX",
      +  "ES",
      +  "TR",
      +  "NL",
      +  "AU",
      +  "PL",
      +  "TW",
      +  "EU",
      +  "LATAM",
      +  "Asia"
      +]
  15. Changed1 schema field changed
    • changedInput schema / properties / limit / description
      Previous value: -"Rows per page, default 12, at most 37 without further reading and 10 with it. A page is the next rows in the order described, never the top ones — nothing here is ranked."New value: +"Rows per page, default 20, at most 37 without further reading and 10 with it. A page is the next rows in the order described, never the top ones — nothing here is ranked."
  16. Changed4 schema fields changed
    • changedInput schema / properties / include_further_reading / description
      Previous value: -"Default true. Pass false to drop the further_reading list from each row, which is about a third of the payload, when all you need is the trends themselves."New value: +"Default false, and true when slug is given. Further reading roughly doubles a row, so at most 10 rows travel with it; ask for a row by slug to read one in full."
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum results, default all 37. A subset is the first rows in the order described, never the top ones — nothing here is ranked."New value: +"Rows per page, default 12, at most 37 without further reading and 10 with it. A page is the next rows in the order described, never the top ones — nothing here is ranked."
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "Rows to skip before the first one returned, for paging. Default 0. The note on each page says what to pass for the next.",
      +  "type": "number"
      +}
    • addedInput schema / properties / slug
      Added value: +{
      +  "description": "One trend by its permanent slug, as a list returns it. Comes back with its further reading unless include_further_reading says otherwise. The other filters are ignored when this is set.",
      +  "type": "string"
      +}
  17. Changed4 schema fields changed
    • addedInput schema / properties / include_further_reading
      Added value: +{
      +  "description": "Default true. Pass false to drop the further_reading list from each row, which is about a third of the payload, when all you need is the trends themselves.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "Maximum results, default all 37. A subset is the first rows in the order described, never the top ones — nothing here is ranked.",
      +  "type": "number"
      +}
    • changedInput schema / properties / market / description
      Previous value: -"Only trends landing in this market."New value: +"Trends that reach this market: tagged to it directly, reached through an EU tag, or global. Each row then says which, in market_relevance, and the list comes back closest first. Most trends in games are global and apply everywhere."
    • addedInput schema / properties / query
      Added value: +{
      +  "description": "Free text, matched against the name, what it is, why it matters, where to follow it, its category and the titles of its further reading. All words must appear. A word filter, not a semantic search: \"layoffs\" finds the layoff trend, a synonym the rows never use finds nothing. Omit to browse a filter instead.",
      +  "type": "string"
      +}
  18. First observed

TDQS

A4/5.0
Behavior5/5

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

With no annotations at all, the description carries the full behavioral burden and does so unusually well: results are unranked and returned in /trends order, 14 rows per page (10 with further reading), placements are 'an editorial reading, not a score', and the tool is 'a routing map rather than a synthesis' that takes no position. It also discloses two non-obvious data caveats an agent could otherwise misuse: talk:true claims are player chatter that must never be quoted as an event or figure, and retired claims are archival records, not live rows.

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

Conciseness3/5

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

The content is high-value and front-loaded with what the tool is, but it is delivered as a single dense paragraph of chained clauses with em-dashes and colons. The claim-taxonomy detail (talk, retired, horizons key) occupies substantial space that could be tightened or separated. Efficient in word count per idea, poor in scannability.

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 10 parameters, no output schema and no annotations, the description correctly compensates by describing the row shape, claim structure, pagination note and freshness decay. Nothing an agent needs to call it correctly appears to be missing. The only residual gap is that error or empty-result behavior is unaddressed.

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 90%, so nearly every parameter is already documented, including the enum meanings for horizon, stage, market and group. The description reinforces the slug deep-read behavior and the non-ranking semantics of paging and filters, but adds little per-parameter detail the schema does not already state. Baseline 3 applies.

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

Purpose4/5

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

The opening sentence names a specific verb and resource with scope: 'The 50 conversations currently moving the games industry', plus an enumeration of the fields each row carries. An agent knows immediately this is the trend index rather than a source or market lookup. It never names or contrasts the siblings (get_landscape, get_market), so it stops short of a 5.

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?

Usage is well signposted: filter to browse ('every filter narrows the list and none of them ranks it'), 'page with offset', and 'Name one by slug to read it in full' for the deep read. The freshness warning ('anything older than about six months needs a refresh') tells the agent when results may be stale. It gives no explicit when-not-to-use or routing to the sibling tools, which is the only gap.

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