Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

rust.wiki

REMOTE · RUST.WIKI

Live data for the game Rust: skin prices and history, items, item store, loot tables, servers.

Available components

+4 this week 80 Trust /100

Last scanned (18 hours ago)

Scores higher than 81% of remote servers

Reachable. Last reached 4 Nov 2026.

Category Entertainment and Games

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security83
Transport & Reachability100
Schema Quality & AI Usability76
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 12288 tokens (~215/item across 57 items; 57 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management33
  • Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 57 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 58 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Oct 26 +1
    • New tool “get_skin_marketplace_history” functional
  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 26 Oct 26 +2
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “get_inventory” rewrote its description, which is the text the model reads security
    • Tool “list_inventory_snapshots” rewrote its description, which is the text the model reads security
    • Schema quality: 8550 → 11992 ▼ functional
    • Stability: unverified → 0.03 ▲ functional
    • The server now declares the “prompts” capability functional
    • First check of Schema quality: 100 functional
    • New prompt “find_server” functional
    • New prompt “item_store” functional
    • New prompt “price_check” functional
    • New prompt “raid_cost” functional
    • New prompt “value_inventory” functional
    • New tool “calculate_craft_cost” functional
    • New tool “calculate_raid_cost” functional
    • New tool “calculate_recycle_yield” functional
    • New tool “calculate_upkeep” functional
    • New tool “compare_market” functional
    • New tool “genetics_best_layout” functional
    • New tool “genetics_predict” functional
    • New tool “get_inventory_valuation” functional
    • New tool “get_inventory_value_history” functional
    • New tool “get_market_index” functional
    • New tool “get_player_stats” functional
    • New tool “get_server_player_history” functional
    • New tool “get_server_stats” functional
    • New tool “get_skin_orderbook” functional
    • New tool “get_twitch_drops” functional
    • New tool “resolve_steam_profile” functional
    • New tool “search_guides” functional
  • 25 Oct 26 73

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Probed https://rust.wiki/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=rust.wiki CN=WE1,O=Google Trust Services,C=US 27 Oct 2026 25 Jan 2027 ECDSA 256 ECDSA-SHA256 b1b87f1e2bee4a6e0e5392c058f04572
SANs: rust.wiki, *.rust.wiki
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of rust.wiki. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
wiki. present 46628 13 Verified
rust.wiki. present 2371 13 Verified
rust.wiki. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=31536000; includeSubDomains; preload
content-security-policy frame-ancestors 'none'; object-src 'none'; base-uri 'self'
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy geolocation=(), camera=(), microphone=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://rust.wiki/mcp Verified 200
http (plaintext) http://rust.wiki/mcp HTTPS enforced 301 https://rust.wiki/mcp
MCP tools · 57 exposed · ~12,034 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
browse_items ~216

Browse or search the item catalogue. One page of live items (seasonal, obsolete and unreleased items are excluded from browsing but still resolve by shortname). Each result carries `shortname`, `display_name`, `category`, `icon_url` and `is_craftable`; fetch `/items/{shortname}` for everything else. Same ordering and cache as the /items page on the site (15 minutes).

NameTypeReqDescription
categorystring–Restrict to one of the 14 wiki.facepunch.com item categories.
pageinteger–1-based page number.
per_pageinteger–Results per page (max 200).
searchstring–Fuzzy name search: substring match plus trigram similarity, so a typo like `asault` still finds the Assault Rifle. Results are ranked by similarity unless `sort=category`.
sortstring–`name` = alphabetical (similarity-ranked while searching); `category` = grouped by category, then name.

No output schema declared.

No examples provided.

browse_skins ~548

Browse skins with the site's filters and sorts. One page of skin cards exactly as the /skins browser shows them: `itemdefid`, `name`, icons, `category`, `item_collection`, `market_hash_name`, flags (`is_twitch_drop`, `is_limited_time`, `marketable`, `tradable`, `is_permanent`...), `price` (canonical wiki price in cents, null when Steam has no listing), `subscriptions` (Workshop subscribers, the site's supply proxy), `store_price` (the original item-store price in cents), `store_change_pct` (market price vs store price) and `released` (date accepted into the store). Filters combine with AND. `total` is the filtered count; results are cached for 120 seconds per filter combination.

NameTypeReqDescription
breakableboolean–Only skins with a recycle yield (`recycle_hint`).
categorystring–Skin category.
collectionstring–Exact collection name, e.g. `Forest Raiders` (see /skins/collections).
colorstring–Dominant icon colour bucket; matches any of a skin's up to five dominant colours.
commodityboolean–Only Steam commodity items.
creatorstring–Workshop creator: a 17-digit SteamID64 for an exact match, or part of the creator's display name.
glowsboolean–Only skins with glow-in-the-dark elements.
hide_dropsboolean–Hide loot-crate drops, publisher drops and Twitch drops (what the site calls DLCs and drops).
itemstring–Base item shortname, e.g. `rifle.ak` - every skin of that one item.
limited_timeboolean–Only limited-time store items.
marketableboolean–Only Steam-marketable skins.
min_subsstring–Minimum Steam Workshop subscriber count of the skin's original submission.
pageinteger–1-based page number.
per_pageinteger–Results per page (max 200).
permanentboolean–Only permanent store items.
releasedstring–Year the skin was accepted into the item store.
searchstring–Fuzzy name search (trigram similarity; with sort=name results are relevance-ordered). Searches are never cached server-side.
sortstring–Ordering. `popularity` and `supply_asc` use Workshop subscribers; `trending` is the 7-day price change; `marketcap_desc` is price x subscribers.
tradableboolean–Only tradable skins.

No output schema declared.

No examples provided.

calculate_craft_cost ~118

Raw materials to craft a list of items. Resolves every recipe down to raw materials, per unit (items made in batches, like gunpowder, are divided by their batch size), exactly as the craft calculator page does. `raw_materials` is the total, largest first; `items` echoes each input with its direct recipe; `unknown` lists inputs that matched no item.

NameTypeReqDescription
itemsstringyesComma-separated `shortname:quantity` pairs (display names work too; quantity defaults to 1).

No output schema declared.

No examples provided.

calculate_raid_cost ~161

Explosives needed to destroy a set of building pieces. For every explosive that can destroy all the given pieces: total units and sulfur, cheapest sulfur first; `cheapest` is the best single option. Single-explosive totals - damage adds up across explosives, so a mix can be cheaper (use /calculators/raid's damage_per_unit for that). Doors and deployables aren't covered yet.

NameTypeReqDescription
explosivesstring–`staples` (rockets, C4, satchels, explosive ammo, beancans), `all`, or a comma list of explosive shortnames.
targetsstringyesComma-separated `slug:count` building pieces (slugs from /building, or display names).

No output schema declared.

No examples provided.

calculate_recycle_yield ~99

What recycling a list of items yields. Expected outputs (quantity x per-unit yield x chance) per input and in total, for the chosen recycler.

NameTypeReqDescription
itemsstringyesComma-separated `shortname:quantity` pairs (display names work too; quantity defaults to 1).
recyclerstring–`recycler` (monument) or `safe_zone` (Outpost/Bandit Camp, lower yields).

No output schema declared.

No examples provided.

calculate_upkeep ~134

Daily upkeep for a base. The upkeep calculator page's math: the block count walks Rust's default upkeep brackets to a blended daily rate, and each resource's daily upkeep is what was spent building times that rate (`per_week` = 7 days).

NameTypeReqDescription
blocksintegeryesNumber of building blocks (foundations, walls, floors... each counts one).
high_quality_metalnumber–Total high quality metal spent.
metal_fragmentsnumber–Total metal fragments spent.
stonenumber–Total stone spent.
woodnumber–Total wood spent building the base.

No output schema declared.

No examples provided.

compare_market ~413

Overlay skins, baskets and indices on one date axis. The data behind rust.wiki/skins/compare: one shared `dates` axis and a `series` entry per token with `key`, `name`, `icon_url`, `is_basket`, `is_index` and `prices` aligned to the axis (null where that entry has no data yet). Skin and basket entries are prices in cents (a basket is the plain average of its members' prices); index entries are index levels rebased to 100. Spans over two years are downsampled to weekly points. Cached for 24 hours per parameter combination.

NameTypeReqDescription
end_datestring–Custom range end (YYYY-MM-DD, inclusive). Only read when range=custom.
entriesstringyesComma-separated, up to 8: an `itemdefid` (that skin's price), `category:weapon` / `collection:Forest Raiders` / `item:shoes.boots` (the basket's average price) or `index:all` / `index:category:weapon…
index_weight_modestring–Weighting for any `index:` entries (see /market/index).
rangestring–Window: `7d`, `30d`, `90d`, `1y`, `2y`, `3y`, `4y`, `5y`, `all`, or `custom` with `start_date`/`end_date`. Spans over two years are downsampled to one point per week.
smoothboolean–Apply a trailing 30-day moving average.
start_datestring–Custom range start (YYYY-MM-DD, inclusive). Only read when range=custom.
trim_daysinteger–Mask each constituent's first N days of history (0-90) to drop launch-week volatility.

No output schema declared.

No examples provided.

find_skin_deals ~414

Executable buy-on-marketplace, sell-on-Steam flips. Every skin that can be bought on a third-party marketplace for less than it nets on Steam Community Market right now, as rust.wiki/skins/deals computes it. Per deal: `buy_market` and `buy_price` (the cheapest in-stock listing we poll, cents), `sell_url` (the Steam listing page), the two Steam references `bid_gross`/`bid_net` (highest buy order, and what you actually receive after Steam's 15% fee) and `ask_gross`/`ask_net` (lowest sell order, same), then for the chosen `steam_ref`: `sell_price` (the net proceeds), `sell_gross`, `spread_abs` (cents) and `spread_pct`. Only rows profitable under the chosen reference are returned. A stale buy order above a fresher ask is capped at the ask. Filters combine with AND; `search` matches the skin name case-insensitively. Marketplace links are not included. Recomputed every ~5 minutes from the marketplace poll.

NameTypeReqDescription
categorystring–Only skins of this category.
marketplacearray–Only deals whose cheapest listing is on one of these marketplaces (repeat the parameter).
max_priceinteger–Maximum buy price in cents.
min_priceinteger–Minimum buy price in cents.
pageinteger–1-based page number.
per_pageinteger–Results per page (max 200).
searchstring–Case-insensitive substring of the skin name (or Steam market name).
sortstring–Best `pct` (spread as % of buy price) or `abs` (spread in cents) first.
steam_refstring–Steam exit price: `buy` = sell instantly into the highest buy order (default), `sell` = list just under the lowest sell order.

No output schema declared.

No examples provided.

genetics_best_layout ~179

Best crossbreeding layout from a pool of plant clones. The gene calculator's beam search, ported exactly: which clones to plant around the centre, how many of each, and what the centre will most likely become (with every outcome's chance). Uses the game's gene weights (red W/X 1.0, green G/Y/H 0.6).

NameTypeReqDescription
centrestring–Optional genes of the plant in the centre slot (default: unknown).
clonesstringyesComma-separated 6-letter gene strings of the clones you have (G Y H W X).
max_neighboursinteger–Most neighbouring plants to use (a planter grid allows 8).
targetstring–Optional 6-letter target such as GGGGYY; default: as many G and Y as possible.

No output schema declared.

No examples provided.

genetics_predict ~67

What a plant will grow into from its neighbours. Every possible result for the centre plant with its probability, most likely first.

NameTypeReqDescription
centrestring–Genes of the centre plant, if known.
neighboursstringyesComma-separated 6-letter gene strings of the neighbouring plants.

No output schema declared.

No examples provided.

get_building_piece ~190

One building piece: costs, durability, siblings. The piece's `slug`, `display_name`, `grade`, `health` and `decay_hours`, plus `costs` (`build`, `repair` and `upkeep` lists of `item_name`, `amount` or `min_amount`/`max_amount`, with `shortname`/`icon_url` when the material maps to a catalogue item), `durability` (up to ten entries each for `explosive`, `melee` and `bullet` damage: `item_name`, `seconds_taken` to destroy, `required_items` = how many of that weapon/explosive) and `siblings` - the same piece at every other grade, Twig to Armored. Cached for one hour.

NameTypeReqDescription
slugstringyesPiece slug from `/building`, e.g. `stone-wall`.

No output schema declared.

No examples provided.

get_cctv_codes ~107

CCTV camera codes by monument. The 12 monuments with working CCTV cameras and their Computer Station identifiers (60 codes). `codes` are the literal in-game console codes; when `randomized` is true the trailing `****` is a per-wipe random 4-digit suffix posted near the camera in-game, not a fixed code. `slug` links to `/monuments/{slug}` (null for Cargo Ship, which is a moving monument). Fixed reference data.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_data_freshness ~139

When each dataset last changed and how often it refreshes. The quota-saver: for every dataset the API serves, `updated_at` (the newest timestamp actually in the table, UTC) and `refresh_seconds` (how often it can change), with the endpoints it feeds. Poll this cheap endpoint and only re-fetch a heavy payload such as /market/prices or /servers when its dataset's `updated_at` has moved; cache reference data (items, monuments, ...) locally since it only changes with Facepunch's monthly patch. Timestamps are read live from the database and cached for 60 seconds.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_inventory ~336

Value a Steam account's Rust skins. Every Rust skin the account holds with `quantity`, unit `price` and `value` (cents), sorted by value, and the same attributes /skins filters on (`collection`, `creator`, `item_shortname`, `item_name`, `est_supply`, `released_year`, `colors`, and `flags`: limited_time, permanent, marketable, tradable, breakable, glows, commodity, drop), plus `total_value`, `item_count`, `distinct_skins`, a `categories` breakdown with share percentages, the owner's display name and avatar, and `value_history` (the current holdings re-priced at each of the last 365 days, in USD DOLLARS, not cents, at each day's Steam sale price - so its latest point can be below `total_value`, which is at current asking prices). `found` is false for private or empty inventories; `stale` is true when Steam was unreachable and the last stored snapshot was re-priced instead. Takes a 17-digit SteamID64 (use resolve_steam_profile for a profile URL or custom name); the inventory must be public. Served from the stored copy when the inventory was checked in the last 24 hours, otherwise read live from Steam. No key needed: keyless clients share a daily inventory cap; send your own free key (https://rust.wiki/api-keys) as X-API-Key for a private quota.

NameTypeReqDescription
steamidstringyes17-digit SteamID64 (resolve URLs and vanity names with /players/resolve).

No output schema declared.

No examples provided.

get_inventory_leaderboard ~96

Most valuable inventories ever checked. The rust.wiki/inventory leaderboard: every inventory anyone has looked up, ranked by total value at its last check (values are re-priced each time an inventory is viewed or by the daily warmer for the top 20). Includes the network-wide totals. 20 per page. No key needed.

NameTypeReqDescription
pageinteger–1-based page; 20 inventories per page.

No output schema declared.

No examples provided.

get_inventory_snapshot ~93

One saved daily snapshot. The inventory exactly as it was priced on that day: items with quantity and that day's price, total value and item count. Useful for 'what was this worth last month' comparisons. No key needed.

NameTypeReqDescription
datestringyesISO date (YYYY-MM-DD) from /inventory/{steamid}/snapshots.
steamidstringyes17-digit SteamID64.

No output schema declared.

No examples provided.

get_inventory_valuation ~272

What an inventory is realistically worth. The inventory valued three ways, plus what selling would actually raise. `at_asks` is the headline number (each skin at its cheapest Steam listing, falling back to the best buy order); `at_bids` is every skin at its best buy order; `at_recent_sales` is every skin at its latest Steam median sale price (the inventory chart's basis). `sell_now` walks each skin's real buy-order ladder for the quantity held: `units_sellable` of `units_held` could be sold instantly for `gross` (what buyers pay) and `net_after_fees` (after Steam's 15%). `biggest_ask_gaps` lists the skins whose cheapest listing sits furthest above their recent sales - thin order books where the headline is least reliable. All cents. Uses the stored holdings (the last lookup) and current order books: never a live Steam call; look the inventory up first if `found` is false. No key needed. Use when asked what an inventory is REALLY worth or would sell for: asks vs bids vs recent sales, and instant-sell proceeds after Steam's 15% fee.

NameTypeReqDescription
steamidstringyes17-digit SteamID64.

No output schema declared.

No examples provided.

get_inventory_value_history ~329

Inventory value over time. The inventory's value over time: the account's current holdings re-priced at each day's Steam SALE price (median sale), `values` in USD cents, oldest first - the line on the rust.wiki inventory chart. It shows how the market moved, not when items were bought. `headline_total_value` is the total at current Steam ASKING prices (lowest sell order) as of `headline_checked_at`, the number shown at the top of the inventory page; for thinly traded skins it can sit well above the latest point here. Only inventories that have been looked up have a series. Read from stored data: never a live Steam call. No key needed. Use this for the value-over-time graph's data points (any range, daily/weekly/monthly); get_inventory only carries a thinned one-year series. Look the inventory up with get_inventory first if it returns found=false.

NameTypeReqDescription
end_datestring–YYYY-MM-DD, with range=custom.
intervalstring–daily, weekly, monthly, or auto (daily up to 400 points, then weekly, then monthly past 400 weeks).
rangestring–7d, 30d, 90d, 1y, 2y, 3y, 4y, 5y, all, or custom (with start_date/end_date).
start_datestring–YYYY-MM-DD, with range=custom.
steamidstringyes17-digit SteamID64.

No output schema declared.

No examples provided.

get_item ~224

Full item detail bundle. Everything the item page shows, in one response: `item` (name, description, category, icon, stack size, despawn seconds, craftable flag), `recipe` (components with quantities), `blueprint_costs` (unlock source, scrap cost, workbench tier), `recycle` (yields per recycler type with chance), `repair`, `loot_sources` (every crate/NPC/barrel that drops it, with `chance_pct` and `amount`, highest chance first), `used_in` (items this one is an ingredient of), `skins` (the first 24 skins by price, each with `price` and `store_price` in USD cents, `subscriptions` and `released`), `skins_total` and `similar` (six items from the same category). Page through all skins with `/items/{shortname}/skins`. Cached for 15 minutes.

NameTypeReqDescription
shortnamestringyesThe item's shortname, e.g. `rifle.ak` or `metal.fragments`.

No output schema declared.

No examples provided.

get_item_skins ~208

All skins for an item, priced. Every skin for one base item, most expensive first (unpriced skins last, then by name) - the same list and order as the Skins tab on the item page. Each skin carries `itemdefid`, `name`, `icon_url`, `market_hash_name`, `item_collection`, `workshopid`, `price` (canonical wiki price, USD cents, null when nothing is listed), `store_price` (its original Rust item-store price, USD cents), `store_change_pct`, `subscriptions` (Workshop subscriber count), `released` and the tradable/marketable/banned flags. Prices refresh about every 12 minutes; this list is cached for 15.

NameTypeReqDescription
pageinteger–1-based page number.
per_pageinteger–Results per page (max 200).
shortnamestringyesThe item's shortname, e.g. `rifle.ak`.

No output schema declared.

No examples provided.

get_item_store ~262

The current Rust item store. What is purchasable in Rust's item store right now, in the three sections the wiki shows: `limited_time` (this week's rotation, most Workshop subscribers first), `general` (the permanent catalogue) and `dlc_packs` (bundles, by name). Each item carries `itemdefid`, `name`, `icon_url`, `category`, `store_price` (cents), `market_price` (its Steam Community Market price in cents, null when unlisted), `rarity`, `item_collection`, `creator_name`/`creator_avatar_url`, `subscriptions`, `est_supply` with `est_supply_source` (`workshop` subscribers for brand-new items, the market estimate otherwise), `base_item_name` and the usual flags. Also `recent_rotations` (the last six, newest first, `is_current` marks the open one), `active_rotation_id` and `next_rotation_at` (the open rotation's start + 7 days; rotations land on Thursdays). Steam's own purchase URL for any item is `https://store.steampowered.com/buyitem/252490/{itemdefid}/{quantity}`. Cached 30 minutes.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_item_store_history ~219

Past item-store rotations. Every weekly rotation, newest first (the open one included): `id` (the rotation slug, `YYYY-MM-DD-HHMM`, or `General` for the permanent catalogue), `name` (Facepunch's label when it had one, usually null), `start`, `end` (null while current), `itemdefid_count` and `icons` - every skin in it as `{url, name}`, DLC packs excluded. With `search`, only the rotations that sold a matching skin are returned (same shape, newest first), which answers "when was X in the store?". Full item lists via GET /store/rotations/{rotation_id}. Cached for an hour; searches are computed live.

NameTypeReqDescription
pageinteger–1-based page number.
per_pageinteger–Results per page (max 200).
searchstring–Only rotations that contained a skin whose name matches this (case-insensitive substring), e.g. `Tempered`.

No output schema declared.

No examples provided.

get_loot_table ~134

One loot table with every drop. The loot source's `id` and `name` plus `drops`, highest chance first: for each item `shortname`, `display_name`, `icon_url`, `chance_pct` (0-100), `amount_min`/`amount_max` and, for items that spawn damaged, `condition_min_pct`/`condition_max_pct`. Scraped from wiki.facepunch.com; cached for 30 minutes.

NameTypeReqDescription
source_idintegeryesLoot source id from `/loot-tables`, `/monuments/{slug}` or an item's `loot_sources`.

No output schema declared.

No examples provided.

get_market_cap ~146

Market cap of the Rust skin market. The rust.wiki Market Cap page as data: `total_value` (cents), `skin_count`, `unit_count`, `by_category` (`{category, value}`) and `top`, every skin ranked by value with `{itemdefid, name, icon_url, price, amount, value}`. Supply is not something Steam exposes, so `amount` is the skin's Steam Workshop subscriber count - a stated approximation (subscribing is not owning) - and `value` is price x amount. Only marketable skins with a live Steam price and a linked Workshop submission are included. Cached for 15 minutes.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_market_index ~471

Skin market index series. The rust.wiki Market Index: a basket of skins rebased to 100 at the start of the window, like a stock index, built from Steam's daily price history (one point per day; weekly beyond two years). Returns `dates` (ISO dates), `values` (index level, 100 = the window's first day), `constituent_count` (skins that had a price at the baseline; baskets are capped at 300 constituents) and `label`. A skin whose history starts inside the window joins from its first price. Cached for 24 hours per parameter combination (history only gains a point every 6 hours); the full catalogue, every category and every collection are kept warm server-side.

NameTypeReqDescription
basket_typestring–Which skins form the index: `all`, `high_value`/`low_value` (300 priciest/cheapest), `category`, `collection`, `color`, `item` (one base item's skins) or `custom` (your own list).
basket_valuestring–The category, collection name, colour, item shortname, or for `custom` a comma-separated list of up to 300 itemdefids. Ignored for all/high_value/low_value.
end_datestring–Custom range end (YYYY-MM-DD, inclusive). Only read when range=custom.
rangestring–Window: `7d`, `30d`, `90d`, `1y`, `2y`, `3y`, `4y`, `5y`, `all`, or `custom` with `start_date`/`end_date`. Spans over two years are downsampled to one point per week.
smoothboolean–Apply a trailing 30-day moving average.
start_datestring–Custom range start (YYYY-MM-DD, inclusive). Only read when range=custom.
trim_daysinteger–Mask each constituent's first N days of history (0-90) to drop launch-week volatility.
weight_modestring–`equal`: every constituent's % move counts the same. `marketcap`: weighted by price x Workshop subscribers, like an S&P-style index.

No output schema declared.

No examples provided.

get_market_movers ~158

Stonking, crashing and most-anticipated skins. The rust.wiki Insights page: `stonking` - the 10 skins trading closest to (or above) their all-time high, `crashing` - the 10 closest to their all-time low (each `{itemdefid, name, icon_url, price, reference_price}`, cents; the reference is that skin's own all-time high or low from Steam's multi-year history, skins with under 30 history points excluded), and `anticipated` - the 50 marketable skins with the most Steam Workshop subscribers (`{itemdefid, name, icon_url, subscriptions}`). Refreshed with each price-history run, about every 6 hours.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_monument ~94

One monument with its loot sources. The same fields as `/monuments` for one monument plus `loot_sources`: every crate/NPC loot table that spawns at it (`id`, `name`, `drop_count`), alphabetical - fetch each with `/loot-tables/{id}`. Cached for one hour.

NameTypeReqDescription
slugstringyesMonument slug from `/monuments`, e.g. `airfield`.

No output schema declared.

No examples provided.

get_player_stats ~160

Player profile, Rust stats and achievements. Profile summary (name, avatar, country, Steam level, account age), VAC/game bans, Rust playtime, every Rust stat Steam exposes grouped into Combat / Animals & NPCs / How you died / Gathering & loot / Building / Travel / Life on the island / Fishing / Music / Everything else, six headline figures (kills, deaths, K/D, headshots, bullet and arrow accuracy), and all 116 achievements with unlock dates. `stats_private` is true when the profile hides game details, in which case `groups` and `achievements` are empty.

NameTypeReqDescription
steamidstringyes17-digit SteamID64. Use /players/resolve for URLs and vanity names.

No output schema declared.

No examples provided.

get_raid_costs ~359

Raid cost table: explosives and sulfur per building piece. The dataset behind the raid calculator. `explosives` lists every explosive the building durability data covers: `shortname`, `name`, `icon_url`, `group` (`staples`, `other` or `siege`), `staple` (true for rockets, C4, satchel charges, explosive 5.56 ammo and beancans - the page's default set), `sulfur_per_unit` and `raw_cost_per_unit` (the crafting recipe resolved down to raw resources such as sulfur, charcoal, metal fragments and low grade fuel, per single unit; both null for loot-only explosives like MLRS rockets), `batch` (units one craft makes: explosive ammo 2, mortar shells 2) and `recipe_source` (`wiki` = the wiki's own crafting data, `fallback` = Rust's standard recipe where that data has none yet, e.g. rockets). `targets` is every building piece with explosive data (`slug`, `name`, `grade`, `health`), each with `costs` - for every explosive that can damage it, `required` (how many destroy one piece), `damage_per_unit` and `sulfur` (null for loot-only) - and `cheapest_staple`, the single staple explosive that destroys it for the least sulfur. Damage from different explosives adds up, so a cheaper mix can be computed from `damage_per_unit`. Doors and deployables are not covered yet. Cached for 24 hours.

NameTypeReqDescription
gradestring–Restrict `targets` to one building grade.

No output schema declared.

No examples provided.

get_recent_wipes ~190

Recently wiped servers. Wipes detected across every online server in the window, newest first - the feed behind servers.rustprofit.com/wipes. A wipe is detected when a server's `world_seed` or `world_size` changes between two polls, or when the last-wipe time it advertises moves past our previous poll (for servers with A2S rules disabled). Each entry has `detected_at`, the old and new seed/size, and the full server record. Expect thousands of entries in the 24 hours after Rust's monthly forced wipe (first Thursday). Cached for five minutes.

NameTypeReqDescription
hoursinteger–Look-back window in hours (1-168). The site's /wipes page shows 24.
pageinteger–1-based page number.
per_pageinteger–Results per page (max 200).

No output schema declared.

No examples provided.

get_rust_updates ~149

Facepunch's Rust updates and devblogs. Every post from rust.facepunch.com/news, newest first. Each carries `slug`, `title`, `summary`, `category` (`devblog`, `news`, `update`, ...), `published_date` (UTC date), `thumbnail_url`, `url` (the official post, or this network's own write-up when `has_blog_post` is true) and `has_blog_post`. Polled every few minutes; the first page is refreshed the moment a new post is found.

NameTypeReqDescription
pageinteger–1-based page number.
per_pageinteger–Results per page (max 200).

No output schema declared.

No examples provided.

get_server ~263

One server in full. Everything the server's page shows except the live player names: the full public record (see `/servers`) read fresh, plus `votes`, `rating` (1-5 average) and `rating_count`, the last ten detected `wipes` (newest first, with the seed/size before and after), `last_wipe_at`, `avg_wipe_cycle_hours` across those wipes, `next_wipe_estimate_at` (last wipe + average cycle; a guess, not a schedule), `next_force_wipe_at` (Rust's monthly forced wipe) and `map_preview` - null until a RustMaps render exists for the server's seed/size, otherwise `image_url`, `thumbnail_url`, `total_monuments`, `monuments` (`{type, x, y}`), `monument_types`, `land_percentage` and the five `biome_*` percentages. Offline servers still resolve; unknown ids are 404. Player-count history is at `/servers/{id}/history`. Aggregates are cached for five minutes.

NameTypeReqDescription
server_idintegeryesThe server's numeric id (from `/servers`, or the number in its servers.rustprofit.com/server/{id} URL).

No output schema declared.

No examples provided.

get_server_player_history ~212

Player-count history for one server. The per-poll `player_count`/`queued_count` readings behind the server page's 24-hour chart, oldest first, as `points` of `{t, players, queued}`. One reading lands per poll cycle (roughly hourly); when the window holds more than 500 readings they are averaged into equal time buckets (`resolution_seconds`, null when the points are raw) so a response never exceeds 500 points. Also `peak_players`, `avg_players` and `point_count`. A server that has never answered a poll has an empty series. Cached for five minutes.

NameTypeReqDescription
daysinteger–How many days back to return (1-30). Snapshots are pruned nightly to the configured retention window (7 days by default - see `snapshot_retention_days` on `/servers/stats`), so longer ranges come bac…
server_idintegeryesThe server's numeric id.

No output schema declared.

No examples provided.

get_server_stats ~206

Site-wide totals and data freshness. The headline numbers from the servers.rustprofit.com homepage: `online_servers`, `total_players` and `queued_players` summed across every online server, `tracked_servers` (every row ever discovered, offline included), `steam_global_players` (Rust's concurrent player count from Steam, null if Steam did not answer), `next_force_wipe_at` (the first Thursday of the month at 2 PM US Eastern: 18:00 UTC during US daylight saving time, 19:00 UTC otherwise), the poller's configuration (`poll_interval_seconds` between cycles, `offline_after_seconds` before an unanswering server is marked offline, `snapshot_retention_days` of per-server history kept) and `workers` - the live heartbeat status of the discovery, polling and map-generation jobs, so you can tell how fresh the data is. Includes next_force_wipe_at (Rust's monthly forced wipe).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_skin ~425

Full skin detail: price, order book, history, cross-market prices. Everything the skin's wiki page shows, as data. `skin` is the full catalogue record (creator, workshop title and dates, collection, flags, store price and availability, crafting components, glow/cutout ratios, colours). `price` is the canonical wiki price in cents and `price_source` says which side of the book it came from. `orderbook` is Steam's live book: lowest sell order, highest buy order, order counts, the `buy_orders` and `sell_orders` depth ladders (`{price, quantity}`, best first) and `fetched_at`; the headline price refreshes more often than the ladders, so they can briefly trail it. `steam_history` is the last year of Steam's own sale history (`recorded_at`, median sale `price`, `volume`; `sale_basis` false means Steam has no sale series and the points are our ask-price readings instead) - wider ranges via /skins/{itemdefid}/history. `market_stats` is the page's Community & Market Stats card: an archived SCMM snapshot (frozen September 2026) of `supply_total`/`supply_total_estimated`/`supply_total_owners_estimated`, Workshop `subscriptions_current`/ `subscriptions_lifetime`, `favourited_current`, `views`, `votes_up`/`votes_down`, `market_24hr_value`, `market_168hr_value`, `market_last_30d_sales`, `market_rank_index`, `market_liquidity_score`, the market high/low with their dates, `change_7d_percent`/`change_30d_percent`/`change_90d_percent` and `ath_percent`; null for skins SCMM never covered. `cros

NameTypeReqDescription
itemdefidintegeryesThe skin's Steam item definition id (also its rust.wiki URL: /skin/{itemdefid}).

No output schema declared.

No examples provided.

get_skin_collection ~133

One collection with all its skins. The collection's `name`, `slug`, `count`, `total_value` and `avg_value` (cents), `released` (the earliest member's store-acceptance date) and `skins`: every member as `{itemdefid, name, icon_url, rarity, category, price}` ordered by price, highest first. The collection's value-over-time series is GET /market/collection-value. Cached for 30 minutes.

NameTypeReqDescription
slugstringyesCollection slug (lower-case, hyphenated name), e.g. `forest-raiders`.

No output schema declared.

No examples provided.

get_skin_marketplace_history ~296

Price and sales history for one skin on each marketplace. The skin's history on every marketplace rust.wiki tracks, Steam included. Per site in `sites`: `listing` is `[day, low, close, qty]` per UTC day - the lowest listing price we read that day (`low` the day's lowest reading, `close` the last) and how many listings stood behind it; `sales` maps a period to `[day, volume, avg_price]` rows - `day` and `week` are real sales buckets (DMarket's own sales graph, `day` = the bucket's first day), `r7` and `r30` a site's rolling 7- and 30-day sales figures as we read them that day (Skinport, Rust.tm, CS.Deals and TradeRust only publish those). Prices are integer USD cents. Listing history starts 2026-10-30; DMarket sales go back about a year (weekly) and two months (daily). Steam's own sale history is GET /skins/{itemdefid}/history. Updated through the day (listings every ~5 minutes).

NameTypeReqDescription
itemdefidintegeryesThe skin's item definition id.
rangestring–How far back: `1m`, `3m`, `6m`, `1y` or `all`.

No output schema declared.

No examples provided.

get_skin_orderbook ~200

Full Steam order book for one skin. Steam Community Market's current order book for the skin, straight from our scraper's latest snapshot: `lowest_sell_order` and `highest_buy_order` (cents; null when that side is empty), `sell_order_count` and `buy_order_count`, the COMPLETE `sell_orders` and `buy_orders` depth ladders as `[{price, quantity}, ...]` best price first (every level Steam publishes, not a top-N cut), and `fetched_at`, when the snapshot was taken. The headline ask is refreshed by a market-wide sweep every ~12 minutes; the depth ladders come from the per-item rotation (every few hours), so they can trail it slightly. 404 when the skin has no Steam order book (unmarketable items). Not cached: this is one indexed row.

NameTypeReqDescription
itemdefidintegeryesThe skin's item definition id.

No output schema declared.

No examples provided.

get_skin_price ~280

Live price, order book depth, extremes and 7d/30d change for one skin. The compact price card the rust.wiki Discord bot's /price command shows, as data. All prices are integer USD cents: `price_cents` (the canonical wiki price - Steam's lowest sell order, or the highest buy order when nothing is listed), `ask_cents` and `bid_cents` (the two sides of Steam's book), `sell_orders`/`buy_orders` (how many orders stand on each side), `sell_ladder` and `buy_ladder` (the top five price levels on each side, best first, as `{price, quantity}`), `ath_cents`/`atl_cents` (the skin's all-time high and low from Steam's sale history), `change_7d`/`change_30d` (percent move of today's price against our closest Steam price reading 7 and 30 days back; null without enough history) and `sales_30d` (units sold on Steam in the last 30 days, null when none). Plus `name`, `icon_url`, `market_hash_name` and `category`. Cached for 5 minutes.

NameTypeReqDescription
itemdefidintegeryesThe skin's item definition id.

No output schema declared.

No examples provided.

get_skin_price_history ~218

Steam sale history for one skin. Steam Community Market's own sale history for the skin, scraped from Steam's listing page: `points` of `{recorded_at, price, volume}` where `price` is Steam's median sale price for that interval in cents and `volume` the number of sales. Steam reports roughly hourly points for the recent month and daily beyond; ranges of a year or more are condensed to one point per day (median price, summed volume). Empty when Steam has no sale series for the item (unmarketable skins). History goes back to the skin's first sale, as far as 2015. Refreshed continuously; the full series is cached for an hour.

NameTypeReqDescription
itemdefidintegeryesThe skin's item definition id.
rangestring–How far back: `1d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `5y` or `all`.

No output schema declared.

No examples provided.

get_store_rotation ~156

One rotation's full item list. One rotation as the wiki's /store/rotation page shows it: `rotation` (`id`, `name`, `start`, `end`, `itemdefid_count` - the number of items that still resolve in the catalogue) and its items split into `limited_time`, `general` and `dlc_packs`, each item in the same shape as GET /store, including today's `market_price` and `is_available_on_store` (a past rotation can still contain evergreen catalogue items). Cached for an hour.

NameTypeReqDescription
rotation_idstringyesRotation id from /store/history, e.g. `2017-07-13-2006`, or `General`.

No output schema declared.

No examples provided.

get_top_servers ~129

Most populated servers right now. The online servers with the most players right now - the same query behind the rust.wiki Discord bot's `/servers` command - as a compact list: `id`, `name`, `players`, `max_players`, `country` and the server's page `url`. Use `/servers?sort=players` for the full records. Cached for 60 seconds.

NameTypeReqDescription
countrystring–Restrict to one ISO 3166-1 alpha-2 country.
limitinteger–How many servers to return (1-50).

No output schema declared.

No examples provided.

get_twitch_drops ~68

Current Rust Twitch and Kick drops. The live drops campaigns (Twitch and Kick: round, dates, general and streamer drops with the skin each one gives), the most valuable drop skins ever by Steam price, and past rounds - the data behind rust.wiki/drops.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_upkeep_rules ~178

Upkeep decay brackets and decay times. Rust's dedicated-server upkeep defaults (the `decay.bracket_*` and `decay.duration_*` ConVars, as most servers run them). `brackets` are applied in order to a base's block count: the first 15 blocks cost 10% of their build cost per day, the next 35 cost 15%, the next 75 cost 20%, and every block beyond 125 costs 33.3% (`blocks` null = unbounded); a base's blended daily rate is the block-weighted average of the brackets it fills, paid in the resources each piece was built from. `decay_hours` is how long an unmaintained piece of each grade takes to decay completely. Fixed constants, no computation happens server-side.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_world_entity ~139

One world entity with its loot. The entity's `slug`, `display_name`, `is_npc`, `npc_hp`, `icon_url` and `loot_source_id` (null when it drops nothing), plus `drops` - its five likeliest drops (`shortname`, `display_name`, `icon_url`, `chance_pct`, `amount_min`, `amount_max`) - and `drop_count`, the full number of distinct drops. The complete table is `/loot-tables/{loot_source_id}`. Cached for one hour.

NameTypeReqDescription
slugstringyesEntity slug from `/world`, e.g. `bear`.

No output schema declared.

No examples provided.

list_inventory_snapshots ~136

Dates with a saved daily snapshot. Every date (newest first, up to 400) on which a daily snapshot of this inventory was stored, plus `totals`: each of those days' total value in cents (that day's holdings at that day's prices). Snapshots are written when an inventory is looked up; fetch one with /inventory/{steamid}/snapshots/{date}. No key needed. Only inventories someone has looked up have snapshots. `totals` gives each saved day's total value (that day's holdings at that day's prices).

NameTypeReqDescription
steamidstringyes17-digit SteamID64.

No output schema declared.

No examples provided.

list_loot_sources ~134

Every loot source (crates, NPCs, barrels). One page of loot sources, alphabetical. Each carries `id`, `name` (Facepunch's own loot-table name, e.g. `Elite Tier Crate`), `drop_count` (how many distinct items it can drop) and `icons` (the icons of its four likeliest drops). Fetch the full drop table with `/loot-tables/{id}`. Cached for 30 minutes.

NameTypeReqDescription
pageinteger–1-based page number.
per_pageinteger–Results per page (max 200).

No output schema declared.

No examples provided.

list_monuments ~146

All 60 fixed monuments. Every fixed-location monument, alphabetical, in one response (no pagination - the set is 60 and static). Each carries `slug`, `name`, `tier` (1-3, null for safe zones and minor monuments), `is_safezone`, `has_radiation` and `radiation_level`, `recyclers` (count on site), `has_tunnel_entrance` (underground rail), `has_chinook_drop_zone`, `allows_patrol_heli_crash`, `no_build_area_sqm` and `icon_url`. Moving monuments (Cargo Ship) are not included. Cached for one hour.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_skin_collections ~200

Skin collections with counts and values. Every skin collection (about 750, e.g. `Forest Raiders`, `Abyss`): `name`, `count` (members), `total_value` and `avg_value` (cents, over the priced members only; null when nothing in it is priced) and `icons`, one `{url, name}` per member skin. The collection's URL slug is its lower-cased name with non-alphanumerics collapsed to `-` (`Forest Raiders` -> `forest-raiders`), which is what GET /skins/collections/{slug} takes. Cached for 30 minutes.

NameTypeReqDescription
pageinteger–1-based page number.
per_pageinteger–Results per page (max 200).
sortstring–`value_*` sorts by the summed wiki price of the collection's skins, `count_*` by member count.

No output schema declared.

No examples provided.

resolve_steam_profile ~100

Resolve a profile URL or vanity name to a SteamID64. Turns any of the accepted identifier forms into a 17-digit SteamID64. Does not fetch the profile. Turn a steamcommunity.com/id/... or /profiles/... link, or a custom URL name, into the SteamID64 the inventory and player tools need.

NameTypeReqDescription
qstringyesA steamcommunity.com profile URL, a custom URL name, or a SteamID64.

No output schema declared.

No examples provided.

Install

How do I install the rust.wiki MCP server?

rust.wiki is a hosted endpoint at https://rust.wiki/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · rust.wiki

# add to Claude Code
claude mcp add --transport http wiki-rust-rust-wiki 'https://rust.wiki/mcp'
Common questions

What is the rust.wiki MCP server?

rust.wiki is an MCP server listed in the public MCP registry as wiki.rust/rust-wiki. Live data for the game Rust: skin prices and history, items, item store, loot tables, servers. This page covers its hosted endpoint (https://rust.wiki/mcp).

Is the rust.wiki MCP server safe to use?

rust.wiki scores 80 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the rust.wiki MCP server expose?

rust.wiki exposes 57 tools: search_items, browse_items, get_item, get_item_skins, search_skins, and 52 more. Their descriptions and schemas cost roughly 12,034 tokens of context every time the server is loaded.

Does the rust.wiki MCP server require authentication?

No. We connected to rust.wiki without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the rust.wiki MCP server still maintained?

rust.wiki is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.