Foxfind
Server Details
Affiliate price routing for high-intent PC game purchases across authorized stores.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
The four tools have largely distinct purposes: search_games finds titles, get_game returns catalogue data, compare_prices gives live regional prices, and find_deals surfaces discounts. There is mild overlap between compare_prices and find_deals (both price-oriented) and between get_game and compare_prices, but the descriptions explicitly clarify the boundary (catalogue vs live prices).
All four names follow a clean verb_noun snake_case pattern (compare_prices, find_deals, get_game, search_games). No mixed conventions or vague verbs.
Four tools is on the lean side but well-scoped for a game price comparison service, with each tool earning its place. Slightly thin but no redundant or filler tools.
The core workflow (search → inspect catalogue → compare prices → find deals) is fully covered. Minor gaps exist, such as no price-history, alert, or store-listing tool, but these are workable omissions rather than dead ends.
Available Tools
4 toolscompare_pricesBRead-onlyInspect
Compare prices for a game by region. Returns cheapest store, sorted offers, and links to support developer (direct purchase).
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Exact game title to compare (e.g. "Hades II"). Must be 2-150 characters. | |
| country | No | Two-letter country code for regional pricing (default: "CA"). Supported: CA, US, GB, AU, DE, FR. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| type | No | |
| title | Yes | |
| gameId | No | |
| offers | No | |
| country | Yes | |
| cheapest | Yes | |
| currency | Yes | |
| products | No | |
| comparable | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds useful behavior detail not in the annotations: it returns the cheapest store, sorted offers, and direct-purchase links. With an output schema present, most of the return-value disclosure is redundant, so this is a modest addition rather than a rich one.
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?
Two short sentences with the core action front-loaded and no filler. The parenthetical '(direct purchase)' is the only slightly muddled fragment, keeping it from a 5.
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?
For a two-parameter, read-only tool with full schema coverage and an output schema, the return-value contract is already carried by structured fields. What is missing is routing information versus its three siblings, which is the main gap an agent would face when choosing this tool.
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%, so both parameters (title and country, with its enum and default) are fully documented in the schema. The description's 'by region' phrasing adds only a loose conceptual mapping to the country parameter, no format or constraint detail beyond the schema. 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 and resource (compare prices for a game) and the scoping dimension (by region), which is enough to know what the tool does. It does not, however, distinguish itself from siblings like find_deals or search_games, and the trailing phrase 'links to support developer (direct purchase)' is ambiguous about what is actually returned.
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?
There is no when-to-use statement and no reference to the sibling tools that could serve as alternatives (find_deals, get_game, search_games). The only usage signal is implicit: you must supply a game title and a region.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_dealsARead-onlyInspect
Find discounted games by discount, optionally under a maximum price. Confirm price with compare_prices before asserting.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Two-letter country code for regional pricing (default: "CA"). Supported: CA, US, GB, AU, DE, FR. | |
| max_price | No | Only games whose cheapest price is at most this, in the region's currency. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deals | Yes | |
| country | Yes | |
| currency | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered structurally. The description contributes real extra context: results are discount-oriented and prices should be treated as unverified until checked with compare_prices, implicitly flagging possible staleness. It does not mention region defaulting or result limits, so not a full 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?
Two tight sentences, front-loaded with the core action and followed by the verification caveat. No filler, though the ambiguous 'by discount' phrasing costs a bit of clarity.
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?
An output schema exists, so return values need no explanation, and the schema fully documents region defaults and the price bound. The description supplies the one thing structured data cannot: the cross-tool verification step. Minor gap around result volume/ordering is not material.
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% with enums and defaults documented, so the baseline is 3. The description adds nothing about country/max_price semantics and in fact references a 'discount' dimension that is not an exposed parameter, which is mildly confusing rather than additive.
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 (Find) and resource (discounted games) with the primary ordering/scoping dimension (discount) and the optional constraint (max price). It is distinguishable from get_game and search_games, though it never explicitly contrasts itself with search_games, the closest sibling.
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?
Adds a usable workflow rule — confirm price with compare_prices before asserting — which points the agent at the correct sibling for verification. It gives clear context for use but no explicit when-not-to-use condition or statement of what this tool covers that search_games does not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gameARead-onlyInspect
Get a PC game's catalogue entry without checking live prices: its Game ID, Foxfind page, and each product (base game, editions, DLC) with the stores that list it. Use compare_prices for current prices.
| Name | Required | Description | Default |
|---|---|---|---|
| game | Yes | Exact game title, or `game:<Game ID>` from search_games. Must be 2-150 characters. | |
| country | No | Two-letter country code for regional pricing (default: "CA"). Supported: CA, US, GB, AU, DE, FR. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| slug | Yes | |
| title | Yes | |
| gameId | Yes | |
| products | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds non-obvious behavioral context: that live prices are deliberately excluded and that the response spans multiple products (base game, editions, DLC) and listing stores. It omits anything about auth, rate limits, or missing-game behavior, 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?
Two sentences, front-loaded with the core purpose, followed by the routing pointer. 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?
An output schema exists, so return-value documentation is unnecessary. Between the description's scope statement, the compare_prices routing, and the fully described parameters, an agent has everything needed to invoke this 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 100%, with the game identifier formats, length rule, and country enum/default all documented in the schema itself. The description repeats 'Game ID' but adds no syntax or format meaning beyond the schema, 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?
States a specific verb and resource ('Get a PC game's catalogue entry') and enumerates what the entry contains: Game ID, Foxfind page, and each product with listing stores. This clearly separates it from compare_prices, which handles pricing.
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 boundary condition ('without checking live prices') and names the alternative plus the condition that selects it ('Use compare_prices for current prices'). The agent does not have to infer which sibling to call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_gamesARead-onlyInspect
Search for PC games across Steam, GOG, Humble Bundle, IndieGala, Gamesplanet, Fanatical, and GameBillet to find exact titles, relevance scores, and store availability.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Game title or keywords to search for (e.g. "Hades II", "Cyberpunk 2077"). Must be 2-150 characters. | |
| country | No | Two-letter country code for regional pricing (default: "CA"). Supported: CA, US, GB, AU, DE, FR. |
Output Schema
| Name | Required | Description |
|---|---|---|
| games | Yes | |
| country | Yes | |
| currency | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description usefully adds the breadth of sources searched and the nature of results, but adds nothing on rate limits, result counts, or pagination.
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 with no wasted phrasing; the purpose leads and the store list and outputs follow. Slightly dense but every clause carries 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 annotations covering safety, an output schema covering return values, and full parameter documentation, the description only needs to convey scope and source coverage, which it does adequately. Minor gap: no mention of result limits or ordering behavior.
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% and both parameters (query, country) are fully documented with formats, lengths, and enum values in the schema. The description adds no parameter-level detail beyond this, so the baseline 3 is appropriate.
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 and resource ('Search for PC games') and names the exact storefronts queried plus the returned fields (exact titles, relevance scores, store availability). It clearly identifies the tool's job but does not explicitly contrast it with siblings like get_game or find_deals.
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 implicit: finding a game's exact title and store availability suggests use when the agent knows a title or keyword but not the store. There is no explicit when-not guidance or reference to compare_prices/find_deals/get_game as alternatives, leaving routing to inference.
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.
2 tool updates
- Changed
compare_prices4 fields changed- changed
Output schema / properties / cheapest / anyOfPrevious value: -[ - { - "properties": { - "coupon": { - "properties": { - "code": { - "type": "string" - } - }, - "required": [ - "code" - ], - "type": "object" - }, - "currency": { - "type": "string" - }, - "price": { - "type": "number" - }, - "store": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "store", - "price", - "currency", - "url" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "coupon": { + "properties": { + "code": { + "type": "string" + } + }, + "required": [ + "code" + ], + "type": "object" + }, + "currency": { + "type": "string" + }, + "price": { + "type": "number" + }, + "promotions": { + "items": { + "properties": { + "code": { + "type": [ + "string", + "null" + ] + }, + "endsAt": { + "type": "number" + }, + "id": { + "type": "string" + }, + "startsAt": { + "type": "number" + }, + "terms": { + "type": "string" + }, + "title": { + "type": "string" + }, + "validUntil": { + "type": "number" + } + }, + "required": [ + "id", + "title", + "terms", + "startsAt", + "endsAt" + ], + "type": "object" + }, + "type": "array" + }, + "store": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "store", + "price", + "currency", + "url" + ], + "type": "object" + }, + { + "type": "null" + } +] - added
Output schema / properties / offers / items / properties / promotionsAdded value: +{ + "items": { + "properties": { + "code": { + "type": [ + "string", + "null" + ] + }, + "endsAt": { + "type": "number" + }, + "id": { + "type": "string" + }, + "startsAt": { + "type": "number" + }, + "terms": { + "type": "string" + }, + "title": { + "type": "string" + }, + "validUntil": { + "type": "number" + } + }, + "required": [ + "id", + "title", + "terms", + "startsAt", + "endsAt" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / properties / products / items / properties / cheapest / anyOfPrevious value: -[ - { - "properties": { - "coupon": { - "properties": { - "code": { - "type": "string" - } - }, - "required": [ - "code" - ], - "type": "object" - }, - "currency": { - "type": "string" - }, - "price": { - "type": "number" - }, - "store": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "store", - "price", - "currency", - "url" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "coupon": { + "properties": { + "code": { + "type": "string" + } + }, + "required": [ + "code" + ], + "type": "object" + }, + "currency": { + "type": "string" + }, + "price": { + "type": "number" + }, + "promotions": { + "items": { + "properties": { + "code": { + "type": [ + "string", + "null" + ] + }, + "endsAt": { + "type": "number" + }, + "id": { + "type": "string" + }, + "startsAt": { + "type": "number" + }, + "terms": { + "type": "string" + }, + "title": { + "type": "string" + }, + "validUntil": { + "type": "number" + } + }, + "required": [ + "id", + "title", + "terms", + "startsAt", + "endsAt" + ], + "type": "object" + }, + "type": "array" + }, + "store": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "store", + "price", + "currency", + "url" + ], + "type": "object" + }, + { + "type": "null" + } +] - added
Output schema / properties / products / items / properties / offers / items / properties / promotionsAdded value: +{ + "items": { + "properties": { + "code": { + "type": [ + "string", + "null" + ] + }, + "endsAt": { + "type": "number" + }, + "id": { + "type": "string" + }, + "startsAt": { + "type": "number" + }, + "terms": { + "type": "string" + }, + "title": { + "type": "string" + }, + "validUntil": { + "type": "number" + } + }, + "required": [ + "id", + "title", + "terms", + "startsAt", + "endsAt" + ], + "type": "object" + }, + "type": "array" +}
- Changed
find_deals1 field changed- added
Output schema / properties / deals / items / properties / offer / properties / promotionsAdded value: +{ + "items": { + "properties": { + "code": { + "type": [ + "string", + "null" + ] + }, + "endsAt": { + "type": "number" + }, + "id": { + "type": "string" + }, + "startsAt": { + "type": "number" + }, + "terms": { + "type": "string" + }, + "title": { + "type": "string" + }, + "validUntil": { + "type": "number" + } + }, + "required": [ + "id", + "title", + "terms", + "startsAt", + "endsAt" + ], + "type": "object" + }, + "type": "array" +}
4 tool updates
- First observed
compare_prices - First observed
find_deals - First observed
get_game - First observed
search_games
Related MCP Connectors
Cheapest legit PC and console game keys across stores in 40 countries, plus deals and free games.
Product price checks and affiliate link building for AI shopping agents.
Game prices across Steam, Epic, GOG and Microsoft, with real price history and giveaways.
PC game prices from Steam, GOG, Gamivo, G2A, Kinguin: deals and upcoming releases.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceLive PC game key prices: the lowest listed price for a game across official stores and key stores (by name, Steam app ID or Steam URL, or up to 50 games at once), with a link to the full comparison.-
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to search, compare prices, and get details on discounted and free games across Steam, Epic, GOG, and Humble Bundle.-
- AlicenseNot gradedqualityBmaintenanceEnables real-time multi-merchant price comparison, coupon stacking, delivery-speed trade-offs, stock volatility tracking, and optimal purchase routing for cross-platform commerce inventory arbitrage.7MIT
- AlicenseAqualityCmaintenanceEnables LLMs to fetch game prices, historical lows, and bundles from gg.deals.415 npmCreative Commons Attribution Non Commercial 4.0 International
Glama MCP Gateway
Add one secure layer between your agents and this server.