ArcadeIndex
Find free browser games re-checked playable within 8 days, by genre, mood, age rating and players.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"catalog": {
"url": "https://arcadeindex.io/mcp/catalog"
}
}
}遠端端點
https://arcadeindex.io/mcp/catalogstreamable-http它能做什麼
工具清單
工具(7)
🟢search_games(query, interpret, limit, genre, exclude_genres, ...)
Find web games from a natural-language query plus optional filters (genre, mood, session length, players, quality, content rating, difficulty, inputs). Phrases like 'for kids', '2 player', 'under 10 minutes', 'not a shooter', 'easy' or 'chill' are turned into filters (echoed as interpreted_filters); explicit params win. 'like {title}' or 'similar to {title}' naming a game in the catalog returns that game's games_like results (anchor is set). Returns only published, playable games verified within the last 8 days (listing-only games with include_listing_only=true; plays=here or plays=developer_site picks one kind). content_rating_max defaults to teen. Zero results is a success with code NO_MATCHES and up to 3 executed relaxations whose args you can call again (with the tool named in tool, when set). Quote match_reasons and link play_url; render 'via ArcadeIndex' per the attribution block.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Natural-language query, e.g. 'easy 2 player game for kids'."
},
"interpret": {
"default": true,
"description": "Rule-based intent extraction (agent-api §7).",
"type": "boolean"
},
"limit": {
"default": 10,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"genre": {
"type": "string",
"enum": [
"action",
"adventure",
"arcade",
"board-card",
"clicker-idle",
"driving-racing",
"educational",
"fighting",
"horror",
"io-games",
"music-rhythm",
"party-multiplayer",
"physics",
"platformer",
"puzzle",
"rpg",
"shooter",
"simulation",
"sports",
"strategy",
"survival",
"tower-defense",
"tycoon-management",
"word-trivia"
]
},
"exclude_genres": {
"default": [],
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"enum": [
"action",
"adventure",
"arcade",
"board-card",
"clicker-idle",
"driving-racing",
"educational",
"fighting",
"horror",
"io-games",
"music-rhythm",
"party-multiplayer",
"physics",
"platformer",
"puzzle",
"rpg",
"shooter",
"simulation",
"sports",
"strategy",
"survival",
"tower-defense",
"tycoon-management",
"word-trivia"
]
}
},
"mood": {
"default": [],
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"cozy",
"chill",
"zen",
"chaotic",
"spooky",
"competitive",
"silly",
"intense",
"cute",
"brainy",
"satisfying",
"atmospheric"
]
}
},
"session_length_max": {
"type": "integer",
"minimum": 1,
"maximum": 240
},
"players": {
"type": "string",
"enum": [
"1",
"2",
"multi"
]
},
"min_quality": {
"default": 50,
"type": "integer",
"minimum": 0,
"maximum": 100
},
"content_rating_max": {
"default": "teen",
"type": "string",
"enum": [
"everyone",
"everyone_10",
"teen",
"mature"
]
},
"difficulty": {
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"easy",
"medium",
"hard",
"brutal"
]
}
},
"inputs": {
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"mouse",
"keyboard",
"touch",
"gamepad"
]
}
},
"include_listing_only": {
"default": false,
"type": "boolean"
},
"plays": {
"description": "here: only games that play embedded (on ArcadeIndex and in the in-chat player); developer_site: only games that play on the developer's own site (implies include_listing_only).",
"type": "string",
"enum": [
"here",
"developer_site"
]
}
},
"required": [
"query"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"game_id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"description": "Canonical game page, no query string."
},
"play_url": {
"type": "string",
"description": "Our own stable game page with ?ref=agent. Never the raw embed URL."
},
"external_play_url": {
"type": [
"string",
"null"
]
},
"thumbnail": {
"type": [
"string",
"null"
]
},
"hook": {
"type": [
"string",
"null"
]
},
"developer": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"claimed": {
"type": "boolean"
}
}
},
{
"type": "null"
}
],
"description": "Null when the developer is unknown."
},
"genres": {
"type": "array",
"items": {
"type": "string"
}
},
"content_rating": {
"type": "string",
"enum": [
"everyone",
"everyone_10",
"teen",
"mature"
]
},
"embed_status": {
"type": "string",
"enum": [
"playable",
"listing_only"
]
},
"quality_score": {
"type": "integer"
},
"session_length_minutes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"player_counts": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"enum": [
"1",
"2",
"2plus",
"massive"
]
}
},
{
"type": "null"
}
]
},
"multiplayer_mode": {
"anyOf": [
{
"type": "string",
"enum": [
"none",
"local",
"online",
"both"
]
},
{
"type": "null"
}
]
},
"difficulty": {
"anyOf": [
{
"type": "string",
"enum": [
"easy",
"medium",
"hard",
"brutal"
]
},
{
"type": "null"
}
]
},
"inputs": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"enum": [
"mouse",
"keyboard",
"touch",
"gamepad"
]
}
},
{
"type": "null"
}
]
},
"vibe_tags": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"published_at": {
"type": "string"
},
"match_reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"similarity_reasons": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
}
}
},
"code": {
"type": "string"
},
"relaxations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"step": {
"type": "string"
},
"tool": {
"description": "Call this tool with args instead of the tool that returned the relaxation; absent means the same tool.",
"type": "string",
"const": "games_like"
},
"changes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"param": {
"type": "string"
},
"from": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"to": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
}
}
},
"args": {
"type": "object",
"additionalProperties": {},
"description": "Complete tool arguments to call again (search_games args carry interpret: false)."
},
"result_count": {
"type": "integer"
}
}
}
},
"relaxed_results": {
"type": "array",
"items": {
"type": "object"
},
"description": "On NO_MATCHES: the results of relaxations[0], already run, so a miss needs no second call. They do NOT match your arguments; say what was relaxed. Empty otherwise."
},
"applied_filters": {
"type": "object"
},
"interpreted_filters": {
"type": "object"
},
"residual_query": {
"type": [
"string",
"null"
]
},
"trending_basis": {
"type": [
"string",
"null"
]
},
"anchor": {
"type": [
"object",
"null"
]
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"results",
"code",
"relaxations",
"relaxed_results",
"applied_filters",
"interpreted_filters",
"residual_query",
"trending_basis",
"anchor",
"attribution",
"meta"
]
},
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"details": {
"anyOf": [
{
"type": "object",
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"retry_after_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
}
}
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"error",
"attribution",
"meta"
]
}
]
}🟢get_game(game_id)
Full details of one game by id or {slug}-{id}. Aliased ids resolve to the canonical game (requested_id is set). Also returns listing-only, stale or suspect games: do NOT present play_url as instantly playable unless play_ready is true. Errors: NOT_FOUND (unknown, unavailable or not public), GONE (delisted).
輸入結構描述
{
"type": "object",
"properties": {
"game_id": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "A 6-char game id or the {slug}-{id} path segment. Aliased ids resolve to the canonical game."
}
},
"required": [
"game_id"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"game": {
"anyOf": [
{
"type": "object",
"properties": {
"game_id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"description": "Canonical game page, no query string."
},
"play_url": {
"type": "string",
"description": "Our own stable game page with ?ref=agent. Never the raw embed URL."
},
"external_play_url": {
"type": [
"string",
"null"
]
},
"thumbnail": {
"type": [
"string",
"null"
]
},
"hook": {
"type": [
"string",
"null"
]
},
"developer": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"claimed": {
"type": "boolean"
}
}
},
{
"type": "null"
}
],
"description": "Null when the developer is unknown."
},
"genres": {
"type": "array",
"items": {
"type": "string"
}
},
"content_rating": {
"type": "string",
"enum": [
"everyone",
"everyone_10",
"teen",
"mature"
]
},
"embed_status": {
"type": "string",
"enum": [
"playable",
"listing_only"
]
},
"quality_score": {
"type": "integer"
},
"session_length_minutes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"player_counts": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"enum": [
"1",
"2",
"2plus",
"massive"
]
}
},
{
"type": "null"
}
]
},
"multiplayer_mode": {
"anyOf": [
{
"type": "string",
"enum": [
"none",
"local",
"online",
"both"
]
},
{
"type": "null"
}
]
},
"difficulty": {
"anyOf": [
{
"type": "string",
"enum": [
"easy",
"medium",
"hard",
"brutal"
]
},
{
"type": "null"
}
]
},
"inputs": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"enum": [
"mouse",
"keyboard",
"touch",
"gamepad"
]
}
},
{
"type": "null"
}
]
},
"vibe_tags": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"published_at": {
"type": "string"
},
"match_reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"similarity_reasons": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"description": {
"type": [
"string",
"null"
]
},
"how_to_play": {
"type": [
"string",
"null"
]
},
"controls_summary": {
"type": [
"string",
"null"
]
},
"mechanics": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"session_length_range": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
]
},
"languages": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"accessibility_notes": {
"type": "array",
"items": {
"type": "string"
}
},
"screenshots": {
"type": "array",
"items": {
"type": "string"
}
},
"source_url": {
"type": "string"
},
"verification_state": {
"type": "string",
"enum": [
"ok",
"suspect"
]
},
"last_verified_at": {
"type": [
"string",
"null"
]
},
"play_ready": {
"type": "boolean",
"description": "Only present play_url as instantly playable when true (agent-api §4.4)."
},
"field_sources": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "string",
"enum": [
"source",
"ai",
"ai+verified",
"behavioral",
"developer",
"moderator"
]
},
{
"type": "null"
}
]
}
},
"requested_id": {
"type": [
"string",
"null"
]
}
}
},
{
"type": "null"
}
]
},
"code": {
"type": "string"
},
"relaxations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"step": {
"type": "string"
},
"tool": {
"description": "Call this tool with args instead of the tool that returned the relaxation; absent means the same tool.",
"type": "string",
"const": "games_like"
},
"changes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"param": {
"type": "string"
},
"from": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"to": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
}
}
},
"args": {
"type": "object",
"additionalProperties": {},
"description": "Complete tool arguments to call again (search_games args carry interpret: false)."
},
"result_count": {
"type": "integer"
}
}
}
},
"applied_filters": {
"type": "object"
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"game",
"code",
"relaxations",
"applied_filters",
"attribution",
"meta"
]
},
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"details": {
"anyOf": [
{
"type": "object",
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"retry_after_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
}
}
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"error",
"attribution",
"meta"
]
}
]
}🟢trending(window, limit, genre, exclude_genres, mood, ...)
Games trending over the last day or week (genre scope when genre is set). trending_basis says whether play data or the recency fallback was used. Returns only published, playable games verified within the last 8 days (listing-only games with include_listing_only=true; plays=here or plays=developer_site picks one kind). content_rating_max defaults to teen. Zero results is a success with code NO_MATCHES and up to 3 executed relaxations whose args you can call again (with the tool named in tool, when set). Quote match_reasons and link play_url; render 'via ArcadeIndex' per the attribution block.
輸入結構描述
{
"type": "object",
"properties": {
"window": {
"default": "week",
"type": "string",
"enum": [
"day",
"week"
]
},
"limit": {
"default": 10,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"genre": {
"type": "string",
"enum": [
"action",
"adventure",
"arcade",
"board-card",
"clicker-idle",
"driving-racing",
"educational",
"fighting",
"horror",
"io-games",
"music-rhythm",
"party-multiplayer",
"physics",
"platformer",
"puzzle",
"rpg",
"shooter",
"simulation",
"sports",
"strategy",
"survival",
"tower-defense",
"tycoon-management",
"word-trivia"
]
},
"exclude_genres": {
"default": [],
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"enum": [
"action",
"adventure",
"arcade",
"board-card",
"clicker-idle",
"driving-racing",
"educational",
"fighting",
"horror",
"io-games",
"music-rhythm",
"party-multiplayer",
"physics",
"platformer",
"puzzle",
"rpg",
"shooter",
"simulation",
"sports",
"strategy",
"survival",
"tower-defense",
"tycoon-management",
"word-trivia"
]
}
},
"mood": {
"default": [],
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"cozy",
"chill",
"zen",
"chaotic",
"spooky",
"competitive",
"silly",
"intense",
"cute",
"brainy",
"satisfying",
"atmospheric"
]
}
},
"session_length_max": {
"type": "integer",
"minimum": 1,
"maximum": 240
},
"players": {
"type": "string",
"enum": [
"1",
"2",
"multi"
]
},
"min_quality": {
"default": 50,
"type": "integer",
"minimum": 0,
"maximum": 100
},
"content_rating_max": {
"default": "teen",
"type": "string",
"enum": [
"everyone",
"everyone_10",
"teen",
"mature"
]
},
"difficulty": {
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"easy",
"medium",
"hard",
"brutal"
]
}
},
"inputs": {
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"mouse",
"keyboard",
"touch",
"gamepad"
]
}
},
"include_listing_only": {
"default": false,
"type": "boolean"
},
"plays": {
"description": "here: only games that play embedded (on ArcadeIndex and in the in-chat player); developer_site: only games that play on the developer's own site (implies include_listing_only).",
"type": "string",
"enum": [
"here",
"developer_site"
]
}
},
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"game_id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"description": "Canonical game page, no query string."
},
"play_url": {
"type": "string",
"description": "Our own stable game page with ?ref=agent. Never the raw embed URL."
},
"external_play_url": {
"type": [
"string",
"null"
]
},
"thumbnail": {
"type": [
"string",
"null"
]
},
"hook": {
"type": [
"string",
"null"
]
},
"developer": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"claimed": {
"type": "boolean"
}
}
},
{
"type": "null"
}
],
"description": "Null when the developer is unknown."
},
"genres": {
"type": "array",
"items": {
"type": "string"
}
},
"content_rating": {
"type": "string",
"enum": [
"everyone",
"everyone_10",
"teen",
"mature"
]
},
"embed_status": {
"type": "string",
"enum": [
"playable",
"listing_only"
]
},
"quality_score": {
"type": "integer"
},
"session_length_minutes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"player_counts": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"enum": [
"1",
"2",
"2plus",
"massive"
]
}
},
{
"type": "null"
}
]
},
"multiplayer_mode": {
"anyOf": [
{
"type": "string",
"enum": [
"none",
"local",
"online",
"both"
]
},
{
"type": "null"
}
]
},
"difficulty": {
"anyOf": [
{
"type": "string",
"enum": [
"easy",
"medium",
"hard",
"brutal"
]
},
{
"type": "null"
}
]
},
"inputs": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"enum": [
"mouse",
"keyboard",
"touch",
"gamepad"
]
}
},
{
"type": "null"
}
]
},
"vibe_tags": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"published_at": {
"type": "string"
},
"match_reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"similarity_reasons": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
}
}
},
"code": {
"type": "string"
},
"relaxations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"step": {
"type": "string"
},
"tool": {
"description": "Call this tool with args instead of the tool that returned the relaxation; absent means the same tool.",
"type": "string",
"const": "games_like"
},
"changes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"param": {
"type": "string"
},
"from": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"to": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
}
}
},
"args": {
"type": "object",
"additionalProperties": {},
"description": "Complete tool arguments to call again (search_games args carry interpret: false)."
},
"result_count": {
"type": "integer"
}
}
}
},
"relaxed_results": {
"type": "array",
"items": {
"type": "object"
},
"description": "On NO_MATCHES: the results of relaxations[0], already run, so a miss needs no second call. They do NOT match your arguments; say what was relaxed. Empty otherwise."
},
"applied_filters": {
"type": "object"
},
"interpreted_filters": {
"type": "object"
},
"residual_query": {
"type": [
"string",
"null"
]
},
"trending_basis": {
"type": [
"string",
"null"
]
},
"anchor": {
"type": [
"object",
"null"
]
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"results",
"code",
"relaxations",
"relaxed_results",
"applied_filters",
"interpreted_filters",
"residual_query",
"trending_basis",
"anchor",
"attribution",
"meta"
]
},
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"details": {
"anyOf": [
{
"type": "object",
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"retry_after_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
}
}
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"error",
"attribution",
"meta"
]
}
]
}🟢games_like(game_id, limit, genre, exclude_genres, mood, ...)
Games similar to an anchor game, ordered by similarity, each with similarity_reasons. Returns only published, playable games verified within the last 8 days (listing-only games with include_listing_only=true; plays=here or plays=developer_site picks one kind). content_rating_max defaults to teen. Zero results is a success with code NO_MATCHES and up to 3 executed relaxations whose args you can call again (with the tool named in tool, when set). Quote match_reasons and link play_url; render 'via ArcadeIndex' per the attribution block.
輸入結構描述
{
"type": "object",
"properties": {
"game_id": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "A 6-char game id or the {slug}-{id} path segment. Aliased ids resolve to the canonical game."
},
"limit": {
"default": 8,
"type": "integer",
"minimum": 1,
"maximum": 24
},
"genre": {
"type": "string",
"enum": [
"action",
"adventure",
"arcade",
"board-card",
"clicker-idle",
"driving-racing",
"educational",
"fighting",
"horror",
"io-games",
"music-rhythm",
"party-multiplayer",
"physics",
"platformer",
"puzzle",
"rpg",
"shooter",
"simulation",
"sports",
"strategy",
"survival",
"tower-defense",
"tycoon-management",
"word-trivia"
]
},
"exclude_genres": {
"default": [],
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"enum": [
"action",
"adventure",
"arcade",
"board-card",
"clicker-idle",
"driving-racing",
"educational",
"fighting",
"horror",
"io-games",
"music-rhythm",
"party-multiplayer",
"physics",
"platformer",
"puzzle",
"rpg",
"shooter",
"simulation",
"sports",
"strategy",
"survival",
"tower-defense",
"tycoon-management",
"word-trivia"
]
}
},
"mood": {
"default": [],
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"cozy",
"chill",
"zen",
"chaotic",
"spooky",
"competitive",
"silly",
"intense",
"cute",
"brainy",
"satisfying",
"atmospheric"
]
}
},
"session_length_max": {
"type": "integer",
"minimum": 1,
"maximum": 240
},
"players": {
"type": "string",
"enum": [
"1",
"2",
"multi"
]
},
"min_quality": {
"default": 50,
"type": "integer",
"minimum": 0,
"maximum": 100
},
"content_rating_max": {
"default": "teen",
"type": "string",
"enum": [
"everyone",
"everyone_10",
"teen",
"mature"
]
},
"difficulty": {
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"easy",
"medium",
"hard",
"brutal"
]
}
},
"inputs": {
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"mouse",
"keyboard",
"touch",
"gamepad"
]
}
},
"include_listing_only": {
"default": false,
"type": "boolean"
},
"plays": {
"description": "here: only games that play embedded (on ArcadeIndex and in the in-chat player); developer_site: only games that play on the developer's own site (implies include_listing_only).",
"type": "string",
"enum": [
"here",
"developer_site"
]
}
},
"required": [
"game_id"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"game_id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"description": "Canonical game page, no query string."
},
"play_url": {
"type": "string",
"description": "Our own stable game page with ?ref=agent. Never the raw embed URL."
},
"external_play_url": {
"type": [
"string",
"null"
]
},
"thumbnail": {
"type": [
"string",
"null"
]
},
"hook": {
"type": [
"string",
"null"
]
},
"developer": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"claimed": {
"type": "boolean"
}
}
},
{
"type": "null"
}
],
"description": "Null when the developer is unknown."
},
"genres": {
"type": "array",
"items": {
"type": "string"
}
},
"content_rating": {
"type": "string",
"enum": [
"everyone",
"everyone_10",
"teen",
"mature"
]
},
"embed_status": {
"type": "string",
"enum": [
"playable",
"listing_only"
]
},
"quality_score": {
"type": "integer"
},
"session_length_minutes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"player_counts": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"enum": [
"1",
"2",
"2plus",
"massive"
]
}
},
{
"type": "null"
}
]
},
"multiplayer_mode": {
"anyOf": [
{
"type": "string",
"enum": [
"none",
"local",
"online",
"both"
]
},
{
"type": "null"
}
]
},
"difficulty": {
"anyOf": [
{
"type": "string",
"enum": [
"easy",
"medium",
"hard",
"brutal"
]
},
{
"type": "null"
}
]
},
"inputs": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"enum": [
"mouse",
"keyboard",
"touch",
"gamepad"
]
}
},
{
"type": "null"
}
]
},
"vibe_tags": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"published_at": {
"type": "string"
},
"match_reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"similarity_reasons": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
}
}
},
"code": {
"type": "string"
},
"relaxations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"step": {
"type": "string"
},
"tool": {
"description": "Call this tool with args instead of the tool that returned the relaxation; absent means the same tool.",
"type": "string",
"const": "games_like"
},
"changes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"param": {
"type": "string"
},
"from": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"to": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
}
}
},
"args": {
"type": "object",
"additionalProperties": {},
"description": "Complete tool arguments to call again (search_games args carry interpret: false)."
},
"result_count": {
"type": "integer"
}
}
}
},
"relaxed_results": {
"type": "array",
"items": {
"type": "object"
},
"description": "On NO_MATCHES: the results of relaxations[0], already run, so a miss needs no second call. They do NOT match your arguments; say what was relaxed. Empty otherwise."
},
"applied_filters": {
"type": "object"
},
"interpreted_filters": {
"type": "object"
},
"residual_query": {
"type": [
"string",
"null"
]
},
"trending_basis": {
"type": [
"string",
"null"
]
},
"anchor": {
"type": [
"object",
"null"
]
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"results",
"code",
"relaxations",
"relaxed_results",
"applied_filters",
"interpreted_filters",
"residual_query",
"trending_basis",
"anchor",
"attribution",
"meta"
]
},
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"details": {
"anyOf": [
{
"type": "object",
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"retry_after_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
}
}
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"error",
"attribution",
"meta"
]
}
]
}🟢random_game(seed, genre, exclude_genres, mood, session_length_max, ...)
One random eligible game for 'surprise me' flows; pass seed for a deterministic pick. Never returns Mature games. Zero eligible games gives game: null with code NO_MATCHES and relaxations.
輸入結構描述
{
"type": "object",
"properties": {
"seed": {
"description": "Deterministic pick.",
"type": "string",
"maxLength": 64
},
"genre": {
"type": "string",
"enum": [
"action",
"adventure",
"arcade",
"board-card",
"clicker-idle",
"driving-racing",
"educational",
"fighting",
"horror",
"io-games",
"music-rhythm",
"party-multiplayer",
"physics",
"platformer",
"puzzle",
"rpg",
"shooter",
"simulation",
"sports",
"strategy",
"survival",
"tower-defense",
"tycoon-management",
"word-trivia"
]
},
"exclude_genres": {
"default": [],
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"enum": [
"action",
"adventure",
"arcade",
"board-card",
"clicker-idle",
"driving-racing",
"educational",
"fighting",
"horror",
"io-games",
"music-rhythm",
"party-multiplayer",
"physics",
"platformer",
"puzzle",
"rpg",
"shooter",
"simulation",
"sports",
"strategy",
"survival",
"tower-defense",
"tycoon-management",
"word-trivia"
]
}
},
"mood": {
"default": [],
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"cozy",
"chill",
"zen",
"chaotic",
"spooky",
"competitive",
"silly",
"intense",
"cute",
"brainy",
"satisfying",
"atmospheric"
]
}
},
"session_length_max": {
"type": "integer",
"minimum": 1,
"maximum": 240
},
"players": {
"type": "string",
"enum": [
"1",
"2",
"multi"
]
},
"min_quality": {
"default": 50,
"type": "integer",
"minimum": 0,
"maximum": 100
},
"content_rating_max": {
"default": "teen",
"type": "string",
"enum": [
"everyone",
"everyone_10",
"teen",
"mature"
]
},
"difficulty": {
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"easy",
"medium",
"hard",
"brutal"
]
}
},
"inputs": {
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"mouse",
"keyboard",
"touch",
"gamepad"
]
}
},
"include_listing_only": {
"default": false,
"type": "boolean"
},
"plays": {
"description": "here: only games that play embedded (on ArcadeIndex and in the in-chat player); developer_site: only games that play on the developer's own site (implies include_listing_only).",
"type": "string",
"enum": [
"here",
"developer_site"
]
}
},
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"game": {
"anyOf": [
{
"type": "object",
"properties": {
"game_id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"description": "Canonical game page, no query string."
},
"play_url": {
"type": "string",
"description": "Our own stable game page with ?ref=agent. Never the raw embed URL."
},
"external_play_url": {
"type": [
"string",
"null"
]
},
"thumbnail": {
"type": [
"string",
"null"
]
},
"hook": {
"type": [
"string",
"null"
]
},
"developer": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"claimed": {
"type": "boolean"
}
}
},
{
"type": "null"
}
],
"description": "Null when the developer is unknown."
},
"genres": {
"type": "array",
"items": {
"type": "string"
}
},
"content_rating": {
"type": "string",
"enum": [
"everyone",
"everyone_10",
"teen",
"mature"
]
},
"embed_status": {
"type": "string",
"enum": [
"playable",
"listing_only"
]
},
"quality_score": {
"type": "integer"
},
"session_length_minutes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"player_counts": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"enum": [
"1",
"2",
"2plus",
"massive"
]
}
},
{
"type": "null"
}
]
},
"multiplayer_mode": {
"anyOf": [
{
"type": "string",
"enum": [
"none",
"local",
"online",
"both"
]
},
{
"type": "null"
}
]
},
"difficulty": {
"anyOf": [
{
"type": "string",
"enum": [
"easy",
"medium",
"hard",
"brutal"
]
},
{
"type": "null"
}
]
},
"inputs": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"enum": [
"mouse",
"keyboard",
"touch",
"gamepad"
]
}
},
{
"type": "null"
}
]
},
"vibe_tags": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"published_at": {
"type": "string"
},
"match_reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"similarity_reasons": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"description": {
"type": [
"string",
"null"
]
},
"how_to_play": {
"type": [
"string",
"null"
]
},
"controls_summary": {
"type": [
"string",
"null"
]
},
"mechanics": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"session_length_range": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
]
},
"languages": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"accessibility_notes": {
"type": "array",
"items": {
"type": "string"
}
},
"screenshots": {
"type": "array",
"items": {
"type": "string"
}
},
"source_url": {
"type": "string"
},
"verification_state": {
"type": "string",
"enum": [
"ok",
"suspect"
]
},
"last_verified_at": {
"type": [
"string",
"null"
]
},
"play_ready": {
"type": "boolean",
"description": "Only present play_url as instantly playable when true (agent-api §4.4)."
},
"field_sources": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "string",
"enum": [
"source",
"ai",
"ai+verified",
"behavioral",
"developer",
"moderator"
]
},
{
"type": "null"
}
]
}
},
"requested_id": {
"type": [
"string",
"null"
]
}
}
},
{
"type": "null"
}
]
},
"code": {
"type": "string"
},
"relaxations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"step": {
"type": "string"
},
"tool": {
"description": "Call this tool with args instead of the tool that returned the relaxation; absent means the same tool.",
"type": "string",
"const": "games_like"
},
"changes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"param": {
"type": "string"
},
"from": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"to": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
}
}
},
"args": {
"type": "object",
"additionalProperties": {},
"description": "Complete tool arguments to call again (search_games args carry interpret: false)."
},
"result_count": {
"type": "integer"
}
}
}
},
"applied_filters": {
"type": "object"
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"game",
"code",
"relaxations",
"applied_filters",
"attribution",
"meta"
]
},
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"details": {
"anyOf": [
{
"type": "object",
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"retry_after_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
}
}
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"error",
"attribution",
"meta"
]
}
]
}🟢new_games(limit, genre, exclude_genres, mood, session_length_max, ...)
Games published in the last 30 days, newest first. Returns only published, playable games verified within the last 8 days (listing-only games with include_listing_only=true; plays=here or plays=developer_site picks one kind). content_rating_max defaults to teen. Zero results is a success with code NO_MATCHES and up to 3 executed relaxations whose args you can call again (with the tool named in tool, when set). Quote match_reasons and link play_url; render 'via ArcadeIndex' per the attribution block.
輸入結構描述
{
"type": "object",
"properties": {
"limit": {
"default": 10,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"genre": {
"type": "string",
"enum": [
"action",
"adventure",
"arcade",
"board-card",
"clicker-idle",
"driving-racing",
"educational",
"fighting",
"horror",
"io-games",
"music-rhythm",
"party-multiplayer",
"physics",
"platformer",
"puzzle",
"rpg",
"shooter",
"simulation",
"sports",
"strategy",
"survival",
"tower-defense",
"tycoon-management",
"word-trivia"
]
},
"exclude_genres": {
"default": [],
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"enum": [
"action",
"adventure",
"arcade",
"board-card",
"clicker-idle",
"driving-racing",
"educational",
"fighting",
"horror",
"io-games",
"music-rhythm",
"party-multiplayer",
"physics",
"platformer",
"puzzle",
"rpg",
"shooter",
"simulation",
"sports",
"strategy",
"survival",
"tower-defense",
"tycoon-management",
"word-trivia"
]
}
},
"mood": {
"default": [],
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"cozy",
"chill",
"zen",
"chaotic",
"spooky",
"competitive",
"silly",
"intense",
"cute",
"brainy",
"satisfying",
"atmospheric"
]
}
},
"session_length_max": {
"type": "integer",
"minimum": 1,
"maximum": 240
},
"players": {
"type": "string",
"enum": [
"1",
"2",
"multi"
]
},
"min_quality": {
"default": 50,
"type": "integer",
"minimum": 0,
"maximum": 100
},
"content_rating_max": {
"default": "teen",
"type": "string",
"enum": [
"everyone",
"everyone_10",
"teen",
"mature"
]
},
"difficulty": {
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"easy",
"medium",
"hard",
"brutal"
]
}
},
"inputs": {
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"mouse",
"keyboard",
"touch",
"gamepad"
]
}
},
"include_listing_only": {
"default": false,
"type": "boolean"
},
"plays": {
"description": "here: only games that play embedded (on ArcadeIndex and in the in-chat player); developer_site: only games that play on the developer's own site (implies include_listing_only).",
"type": "string",
"enum": [
"here",
"developer_site"
]
}
},
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"game_id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"description": "Canonical game page, no query string."
},
"play_url": {
"type": "string",
"description": "Our own stable game page with ?ref=agent. Never the raw embed URL."
},
"external_play_url": {
"type": [
"string",
"null"
]
},
"thumbnail": {
"type": [
"string",
"null"
]
},
"hook": {
"type": [
"string",
"null"
]
},
"developer": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"claimed": {
"type": "boolean"
}
}
},
{
"type": "null"
}
],
"description": "Null when the developer is unknown."
},
"genres": {
"type": "array",
"items": {
"type": "string"
}
},
"content_rating": {
"type": "string",
"enum": [
"everyone",
"everyone_10",
"teen",
"mature"
]
},
"embed_status": {
"type": "string",
"enum": [
"playable",
"listing_only"
]
},
"quality_score": {
"type": "integer"
},
"session_length_minutes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"player_counts": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"enum": [
"1",
"2",
"2plus",
"massive"
]
}
},
{
"type": "null"
}
]
},
"multiplayer_mode": {
"anyOf": [
{
"type": "string",
"enum": [
"none",
"local",
"online",
"both"
]
},
{
"type": "null"
}
]
},
"difficulty": {
"anyOf": [
{
"type": "string",
"enum": [
"easy",
"medium",
"hard",
"brutal"
]
},
{
"type": "null"
}
]
},
"inputs": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"enum": [
"mouse",
"keyboard",
"touch",
"gamepad"
]
}
},
{
"type": "null"
}
]
},
"vibe_tags": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"published_at": {
"type": "string"
},
"match_reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"similarity_reasons": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
}
}
},
"code": {
"type": "string"
},
"relaxations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"step": {
"type": "string"
},
"tool": {
"description": "Call this tool with args instead of the tool that returned the relaxation; absent means the same tool.",
"type": "string",
"const": "games_like"
},
"changes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"param": {
"type": "string"
},
"from": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"to": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
}
}
},
"args": {
"type": "object",
"additionalProperties": {},
"description": "Complete tool arguments to call again (search_games args carry interpret: false)."
},
"result_count": {
"type": "integer"
}
}
}
},
"relaxed_results": {
"type": "array",
"items": {
"type": "object"
},
"description": "On NO_MATCHES: the results of relaxations[0], already run, so a miss needs no second call. They do NOT match your arguments; say what was relaxed. Empty otherwise."
},
"applied_filters": {
"type": "object"
},
"interpreted_filters": {
"type": "object"
},
"residual_query": {
"type": [
"string",
"null"
]
},
"trending_basis": {
"type": [
"string",
"null"
]
},
"anchor": {
"type": [
"object",
"null"
]
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"results",
"code",
"relaxations",
"relaxed_results",
"applied_filters",
"interpreted_filters",
"residual_query",
"trending_basis",
"anchor",
"attribution",
"meta"
]
},
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"details": {
"anyOf": [
{
"type": "object",
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"retry_after_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
}
}
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"error",
"attribution",
"meta"
]
}
]
}🟢play_game(game_id, query)
Play an ArcadeIndex game right inside the chat. Pass game_id (an id, {slug}-{id}, or a game's url from search_games, trending, games_like or new_games results) or query (the top search hit is played; a game that only plays on its developer's site comes back as link_out). Hosts that support MCP Apps show a player with Next game and More like this (mode player); some chat apps do not allow the game frame yet, and then the player offers the game on arcadeindex.io in a new tab, so do not tell the user the game is running in the chat unless they say so. Games that cannot be framed here (listing-only, not checked in the last 8 days, Mature, or a site the chat app does not allow) return mode link_out with link_out.url and the reason: give the user that link. Hosts without MCP Apps get the same data as text: link play_url. Errors: NOT_FOUND, INVALID_ARGUMENT.
輸入結構描述
{
"type": "object",
"properties": {
"game_id": {
"description": "A 6-char game id, the {slug}-{id} segment, or the game's ArcadeIndex page URL (from search results).",
"type": "string",
"minLength": 1,
"maxLength": 300
},
"query": {
"description": "Instead of game_id: a title or request; the top search_games hit is played.",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "player: the game plays in the chat view; link_out: open link_out.url."
},
"game": {
"type": "object",
"properties": {
"game_id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
},
"play_url": {
"type": "string"
},
"external_play_url": {
"type": [
"string",
"null"
]
},
"thumbnail": {
"type": [
"string",
"null"
]
},
"hook": {
"type": [
"string",
"null"
]
},
"developer": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"claimed": {
"type": "boolean"
}
}
},
{
"type": "null"
}
]
},
"genres": {
"type": "array",
"items": {
"type": "string"
}
},
"content_rating": {
"type": "string"
},
"rating_label": {
"type": [
"string",
"null"
]
},
"rating_reason": {
"description": "Why the game has its rating, in plain words.",
"type": [
"string",
"null"
]
},
"controls_summary": {
"type": [
"string",
"null"
]
},
"session_length_minutes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"embed_status": {
"type": "string",
"enum": [
"playable",
"listing_only"
]
}
}
},
"link_out": {
"type": [
"object",
"null"
]
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"mode",
"game",
"link_out",
"attribution",
"meta"
]
},
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"details": {
"anyOf": [
{
"type": "object",
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"retry_after_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
}
}
},
"attribution": {
"type": "object",
"description": "Attribution block (agent-api §1.1). Render 'via {source}' with a link."
},
"meta": {
"type": "object"
}
},
"required": [
"error",
"attribution",
"meta"
]
}
]
}社群
證據