CS2 skin prices, case odds and ROI, Armory value, and Trade Up contracts.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Find cheap Counter-Strike 2 skins grouped into price-threshold pages, for example AK-47 skins under 10 dollars or the cheapest knives. Without a slug it lists every available page; with a slug it returns the skins on that page with their current cheapest listing price.
Bargain page slug, for example "ak-47-skins-under-10-dollars" or "cheapest-knives". Omit to list every available page.
Find cheap Counter-Strike 2 skins grouped into price-threshold pages, for example AK-47 skins under 10 dollars or the cheapest knives. Without a slug it lists every available page; with a slug it returns the skins on that page with their current cheapest listing price.
| Argument | Type | Description |
|---|---|---|
| slug | string | Bargain page slug, for example "ak-47-skins-under-10-dollars" or "cheapest-knives". Omit to list every available page. |
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Bargain page slug, for example \"ak-47-skins-under-10-dollars\" or \"cheapest-knives\". Omit to list every available page."
}
}
}List Counter-Strike 2 cases, capsules and souvenir packages, or get one container with its contents plus its drop odds and expected opening value. Odds use the standard CS2 tier weights and are renormalised over the tiers actually present.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number. |
| slug | string | Container slug. When set, returns that container with its contents and opening odds instead of the list. |
| sort | string | List ordering: newest, oldest or name. For a single container the contents order: rarity, name, price_asc or price_desc. |
| type | string | Filter the list by container type. |
| search | string | Free-text container name search. |
| per_page | integer | Results per page, 1 to 25. |
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Page number."
},
"slug": {
"type": "string",
"description": "Container slug. When set, returns that container with its contents and opening odds instead of the list."
},
"sort": {
"type": "string",
"description": "List ordering: newest, oldest or name. For a single container the contents order: rarity, name, price_asc or price_desc."
},
"type": {
"enum": [
"weapon_case",
"souvenir_package",
"autograph_capsule",
"sticker_capsule",
"graffiti_box",
"sticker_collection"
],
"type": "string",
"description": "Filter the list by container type."
},
"search": {
"type": "string",
"description": "Free-text container name search."
},
"per_page": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Results per page, 1 to 25."
}
}
}List Counter-Strike 2 collections, or get one collection with its contents. Optionally includes the collection Trade Up map: which rarity tiers exist in the collection and what each tier can produce. That map is catalog contract math, not scanner output.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number. |
| slug | string | Collection slug. When set, returns that collection with its contents instead of the list. |
| sort | string | List ordering: newest, oldest or name. For a single collection the contents order: rarity, name, price_asc or price_desc. |
| type | string | Filter the list by what the collection contains. |
| search | string | Free-text collection name search. |
| per_page | integer | Results per page, 1 to 25. |
| include_tradeup_map | boolean | Only with slug. Adds the collection Trade Up map showing each rarity tier and its possible outputs. |
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Page number."
},
"slug": {
"type": "string",
"description": "Collection slug. When set, returns that collection with its contents instead of the list."
},
"sort": {
"type": "string",
"description": "List ordering: newest, oldest or name. For a single collection the contents order: rarity, name, price_asc or price_desc."
},
"type": {
"enum": [
"skin",
"sticker",
"charm",
"agent"
],
"type": "string",
"description": "Filter the list by what the collection contains."
},
"search": {
"type": "string",
"description": "Free-text collection name search."
},
"per_page": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Results per page, 1 to 25."
},
"include_tradeup_map": {
"type": "boolean",
"description": "Only with slug. Adds the collection Trade Up map showing each rarity tier and its possible outputs."
}
}
}List the current Counter-Strike 2 Armory rotation tiles with their credit cost and expected value, or get one tile with every item it can produce and the rarity weighting. Use this to compare what Armory credits are worth across the current rotation.
| Argument | Type | Description |
|---|---|---|
| slug | string | Armory tile slug. When set, returns that tile with its full item list instead of the rotation overview. |
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Armory tile slug. When set, returns that tile with its full item list instead of the rotation overview."
}
}
}Rank Counter-Strike 2 cases by expected return on opening. Each entry gives the case price, expected value, return in basis points and the chance of an opening being profitable, all computed from current listing prices plus the key price. Cases whose contents are not sufficiently priced are excluded.
No arguments.
{
"type": "object",
"properties": {}
}Get one Counter-Strike 2 skin with its float range, per-wear prices, collections and cases. Optionally includes the catalog Trade Up context: which rarity tier the skin sits in and what it can be traded up into.
| Argument | Type | Description |
|---|---|---|
| skin_slug* | string | Skin slug, for example "redline". |
| weapon_slug* | string | Weapon slug, for example "ak-47". |
| include_tradeup_context | boolean | Include the catalog Trade Up context for this skin. This is contract math derived from the collection, not scanner output. |
{
"type": "object",
"required": [
"weapon_slug",
"skin_slug"
],
"properties": {
"skin_slug": {
"type": "string",
"description": "Skin slug, for example \"redline\"."
},
"weapon_slug": {
"type": "string",
"description": "Weapon slug, for example \"ak-47\"."
},
"include_tradeup_context": {
"type": "boolean",
"description": "Include the catalog Trade Up context for this skin. This is contract math derived from the collection, not scanner output."
}
}
}Get the free preview of the SkinGrind Trade Up scanner: the featured Trade Ups with their full recipes, the number of contracts currently active, and locked teasers for recent finds showing their economics and when they unlock. Every input has to be bought at or below its target float, and the costs are hourly price estimates, so the response carries execution_notes explaining what to verify before buying. Full recipes for the whole feed need a SkinGrind account and the authenticated server.
| Argument | Type | Description |
|---|---|---|
| type | string | Which Trade Up feed to preview: "profitable" for contract Trade Ups, "knife" for knife and glove Trade Ups, or "all". Defaults to all. |
{
"type": "object",
"properties": {
"type": {
"enum": [
"profitable",
"knife",
"all"
],
"type": "string",
"description": "Which Trade Up feed to preview: \"profitable\" for contract Trade Ups, \"knife\" for knife and glove Trade Ups, or \"all\". Defaults to all."
}
}
}Search Counter-Strike 2 cosmetic items that are not weapon skins: stickers, charms, agents, patches, graffiti and music kits. Returns names and cheapest listing prices, or one item with its full detail including per-marketplace prices.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number. |
| slug | string | Item slug. When set, returns that single item with full detail. |
| sort | string | Result ordering. Defaults to name. |
| search | string | Free-text item name search. |
| category* | string | Which kind of cosmetic item to search. |
| per_page | integer | Results per page, 1 to 25. |
{
"type": "object",
"required": [
"category"
],
"properties": {
"page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Page number."
},
"slug": {
"type": "string",
"description": "Item slug. When set, returns that single item with full detail."
},
"sort": {
"enum": [
"name",
"price_asc",
"price_desc"
],
"type": "string",
"description": "Result ordering. Defaults to name."
},
"search": {
"type": "string",
"description": "Free-text item name search."
},
"category": {
"enum": [
"stickers",
"charms",
"agents",
"patches",
"graffiti",
"music-kits"
],
"type": "string",
"description": "Which kind of cosmetic item to search."
},
"per_page": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Results per page, 1 to 25."
}
}
}Search and filter Counter-Strike 2 weapon skins by name, weapon, rarity, collection or case. Returns skin names, rarities, wear ranges and the cheapest current listing price in cents. Use get_skin_detail for a single skin with per-wear prices.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number. |
| sort | string | Result ordering. Defaults to name. "popularity" ranks by listing quantity. |
| crate | string | Case or capsule slug. |
| rarity | string | Rarity name, for example "Covert", "Classified", "Restricted", "Mil-Spec Grade". |
| search | string | Free-text skin name search, for example "Redline". Used alone it also returns matching weapons; combined with any other argument it filters the paginated skin list instead. |
| weapon | string | Weapon slug, for example "ak-47" or "desert-eagle". |
| per_page | integer | Results per page, 1 to 25. Defaults to 10. |
| souvenir | boolean | Only skins available as Souvenir. |
| stattrak |
| boolean |
| Only skins available as StatTrak. |
| collection | string | Collection slug. |
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Page number."
},
"sort": {
"enum": [
"name",
"rarity",
"price_asc",
"price_desc",
"popularity"
],
"type": "string",
"description": "Result ordering. Defaults to name. \"popularity\" ranks by listing quantity."
},
"crate": {
"type": "string",
"description": "Case or capsule slug."
},
"rarity": {
"type": "string",
"description": "Rarity name, for example \"Covert\", \"Classified\", \"Restricted\", \"Mil-Spec Grade\"."
},
"search": {
"type": "string",
"description": "Free-text skin name search, for example \"Redline\". Used alone it also returns matching weapons; combined with any other argument it filters the paginated skin list instead."
},
"weapon": {
"type": "string",
"description": "Weapon slug, for example \"ak-47\" or \"desert-eagle\"."
},
"per_page": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Results per page, 1 to 25. Defaults to 10."
},
"souvenir": {
"type": "boolean",
"description": "Only skins available as Souvenir."
},
"stattrak": {
"type": "boolean",
"description": "Only skins available as StatTrak."
},
"collection": {
"type": "string",
"description": "Collection slug."
}
}
}