imho.run game recommendations
Server Details
Steam games like any game you name, facts about a game, and finding a game from a description.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 3 tools
Each tool targets a clearly distinct intent: identifying an unknown game, fetching facts about one known game, and finding recommendations similar to a known game. There is no overlap in purpose and the descriptions explicitly guide when to use each (e.g., only use find_game_by_description when the title is unknown).
All three names use consistent snake_case, which is good. However, the conventions differ: find_game_by_description is a verb phrase while game_facts and games_like are noun phrases, a minor deviation that is still perfectly readable.
Three tools is slightly thin but well-scoped for a focused recommendation/identification server. Each tool earns its place with no redundancy, though a simple title-based lookup could plausibly be added.
The surface covers the core lifecycle of the domain: identify an unknown game, get its facts, and get similar games. Minor gaps exist (no explicit search/listing by title or fuzzy title match independent of description), but agents can work around this via find_game_by_description.
Available Tools
3 toolsfind_game_by_descriptionFind a game by descriptionARead-onlyInspect
Identify a game from a description of what the user remembers (plot, look, platform, era). Returns ranked candidates with a reason each. Slow (LLM) and rate-limited: use it only when the user does not know the title.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | en | |
| description | Yes | What the user remembers about the game, in their words. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint, destructiveHint=false) and open-world/idempotency, so the bar is lower; the description still adds genuinely non-structured behavior: LLM-backed, slow, and rate-limited, which an agent needs to avoid over-calling. It does not quantify the rate limit or expected latency, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: capability first, then return shape, then the cost/rate-limit constraint and usage rule. No filler; every sentence carries decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by stating the return shape (ranked candidates with reasons). Combined with annotations covering safety and the text covering latency/rate limits and when-to-use, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: 'description' is documented in the schema, while 'lang' is only an en/ru enum with a default and no description. The description reinforces what to put in 'description' (what the user remembers) but adds nothing about language handling, so it sits at the baseline for this coverage level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb + resource ('Identify a game') and enumerates the input modality (plot, look, platform, era), plus the return shape (ranked candidates with a reason each). It does not, however, name or contrast with the siblings game_facts or games_like, so the agent must infer the boundary between finding a game and getting facts about one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use rule: 'use it only when the user does not know the title.' That is a clear selection condition. It stops short of naming the alternative tool for the known-title case, so routing is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_factsGame factsARead-onlyIdempotentInspect
Public facts about one Steam game: year, developers, genres, top tags, price, Steam Deck status, review numbers, a review-mined summary and links.
| Name | Required | Description | Default |
|---|---|---|---|
| game | Yes | Game name (typos and Russian names are fine), Steam appid or Steam store URL. | |
| lang | No | Language of the `why` lines. | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds meaningful behavioral context by disclosing what the call actually returns (including a 'review-mined summary' and links), which matters because there is no output schema. It does not cover failure modes for an unknown game, but it goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the resource and scope before the field list. It is efficient, though the long comma-separated enumeration of fields is dense rather than structured (e.g., no grouping of identity vs. review data).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two simple, fully documented parameters and no output schema, the description carries the return-value burden and does so by enumerating the fact categories. Minor gaps remain: nothing about behavior for an unrecognized game or how `lang` affects non-`why` fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the schema already documents that 'game' accepts names, typos, Russian names, appids or store URLs, and that 'lang' controls the language of the `why` lines. The description adds no parameter-level detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and scope ('Public facts about one Steam game') and enumerates the exact payload (year, developers, genres, tags, price, Deck status, reviews, summary, links). That is enough to separate it from siblings like find_game_by_description (search by text) and games_like (similarity lookup). It lacks an explicit retrieval verb, but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer 'call this when you already know which game you want facts for.' There is no explicit when-to-use statement and no mention of the sibling tools or when they would be preferable (e.g., when the game name is unknown, use find_game_by_description).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
games_likeGames like XARead-onlyIdempotentInspect
Steam games similar to one game, ranked by imho.run's recommender, each with a one-line reason, price, Steam Deck status, year, review numbers, the imho.run page URL and the Steam URL.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | ||
| coop | No | Only co-op games. | |
| free | No | Only free games. | |
| game | Yes | Game name (typos and Russian names are fine), Steam appid or Steam store URL. | |
| lang | No | Language of the `why` lines. | en |
| steam_deck | No | Steam Deck verified, or playable-or-better. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the description's job is lighter. It usefully discloses the return composition (one-line reason, price, Steam Deck status, year, review counts, both URLs), which is valuable since no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the operation first and then enumerates returned fields. Dense but every clause carries information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately explains what comes back, and annotations cover the safety profile. Parameter behavior is mostly left to the schema, but nothing critical for invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83%, so the schema already documents the parameters including enums for lang and steam_deck. The description only loosely echoes fields (price, Steam Deck status) and adds no format or constraint detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (finds) and resource (Steam games similar to one game), plus the ranking source (imho.run's recommender). It implicitly separates itself from find_game_by_description and game_facts, though it never names or contrasts them directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'similar to one game' — the agent can infer this is for recommendation-style queries — but there is no explicit when-to-use, when-not, or alternative routing against the two sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
find_game_by_description - First observed
game_facts - First observed
games_like
Related MCP Connectors
Live Steam market data for AI agents: top sellers, deals, player counts. Paid per call via x402.
Steam backlog, account value, buy-or-skip verdicts and Steam Machine checks. Hosted, keyless.
Ranks Steam games by how much players like them, learned from head-to-head duels.
Game prices across Steam, Epic, GOG and Microsoft, with real price history and giveaways.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceHelps users choose which Steam games to play or buy by analyzing their library, playtime, discounts, and reviews.-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to recommend Steam games from natural language by searching games, finding similar titles, filtering by tags and platform, and retrieving detailed game metadata.1MIT
- AlicenseAqualityBmaintenanceLet your agent control your steam client. e.g. "pick a strategy game from my library and launch it"1750 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to research Steam games by fetching regional prices, reviews, current player counts, store charts, and news through public endpoints without an API key.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.