Skip to content

rust.wiki

wiki.rust/rust-wikirust.wikistreamable-httpv1.0.0Scanned

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

35 tools: 35 only read.

Tools: 0 delete, 0 irreversible, 0 write, 35 read.
  • Reads private data · 2
  • Reads text others write · 4
  • Can send data out · 0
  • No findings

Anlyon alternative

Run the operations that matter as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

35 tools

Only reads 35Show 35 read-only tools
  • browse_itemsBrowse or search the item catalogue.Reads text others writeNo findings

    Why it is in this group

    • The name "browse_items" says "browse": a word for reading.

    What it can reach

    • untrusted-inputThe name "browse_items" says "browse": it reads web pages, which anyone can write.
    • untrusted-inputThe description's first sentence says "browse": it reads web pages, which anyone can write.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • browse_skinsBrowse skins with the site's filters and sorts.Reads text others writeNo findings

    Why it is in this group

    • The name "browse_skins" says "browse": a word for reading.

    What it can reach

    • untrusted-inputThe name "browse_skins" says "browse": it reads web pages, which anyone can write.
    • untrusted-inputThe description's first sentence says "browse": it reads web pages, which anyone can write.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • find_skin_dealsExecutable buy-on-marketplace, sell-on-Steam flips.No findings

    Why it is in this group

    • The name "find_skin_deals" says "find": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_building_pieceOne building piece: costs, durability, siblings.No findings

    Why it is in this group

    • The name "get_building_piece" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_cctv_codesCCTV camera codes by monument.No findings

    Why it is in this group

    • The name "get_cctv_codes" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_data_freshnessWhen each dataset last changed and how often it refreshes.No findings

    Why it is in this group

    • The name "get_data_freshness" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_itemFull item detail bundle.No findings

    Why it is in this group

    • The name "get_item" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_item_skinsAll skins for an item, priced.No findings

    Why it is in this group

    • The name "get_item_skins" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_item_storeThe current Rust item store.No findings

    Why it is in this group

    • The name "get_item_store" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_item_store_historyPast item-store rotations.No findings

    Why it is in this group

    • The name "get_item_store_history" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_loot_tableOne loot table with every drop.Reads private dataNo findings

    Why it is in this group

    • The name "get_loot_table" says "get": a word for reading.

    What it can reach

    • private-dataThe name "get_loot_table" says "get" and "table": it reads databases.
    • private-dataThe description's first sentence says "table": it reads databases.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_market_capMarket cap of the Rust skin market.No findings

    Why it is in this group

    • The name "get_market_cap" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_market_moversStonking, crashing and most-anticipated skins.No findings

    Why it is in this group

    • The name "get_market_movers" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_monumentOne monument with its loot sources.No findings

    Why it is in this group

    • The name "get_monument" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_raid_costsRaid cost table: explosives and sulfur per building piece.Reads private dataNo findings

    Why it is in this group

    • The name "get_raid_costs" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "table": it reads databases.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_recent_wipesRecently wiped servers.No findings

    Why it is in this group

    • The name "get_recent_wipes" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_rust_updatesFacepunch's Rust updates and devblogs.No findings

    Why it is in this group

    • The name "get_rust_updates" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_serverOne server in full.No findings

    Why it is in this group

    • The name "get_server" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_skinFull skin detail: price, order book, history, cross-market prices.No findings

    Why it is in this group

    • The name "get_skin" says "get": a word for reading.
    Description, as the server wrote it
    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

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_skin_collectionOne collection with all its skins.No findings

    Why it is in this group

    • The name "get_skin_collection" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_skin_priceLive price, order book depth, extremes and 7d/30d change for one skin.No findings

    Why it is in this group

    • The name "get_skin_price" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_skin_price_historySteam sale history for one skin.No findings

    Why it is in this group

    • The name "get_skin_price_history" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_store_rotationOne rotation's full item list.No findings

    Why it is in this group

    • The name "get_store_rotation" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_top_serversMost populated servers right now.No findings

    Why it is in this group

    • The name "get_top_servers" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_upkeep_rulesUpkeep decay brackets and decay times.No findings

    Why it is in this group

    • The name "get_upkeep_rules" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_world_entityOne world entity with its loot.No findings

    Why it is in this group

    • The name "get_world_entity" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_loot_sourcesEvery loot source (crates, NPCs, barrels).No findings

    Why it is in this group

    • The name "list_loot_sources" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_monumentsAll 60 fixed monuments.No findings

    Why it is in this group

    • The name "list_monuments" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_skin_collectionsSkin collections with counts and values.No findings

    Why it is in this group

    • The name "list_skin_collections" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_commandsConsole and server commands.No findings

    Why it is in this group

    • The name "search_commands" says "search": a word for reading.
    Description, as the server wrote it
    Console and server commands. One page of Rust console/server commands, alphabetical. Each carries `command`, `syntax`, `description`, `category` (Rust's own ConVar namespace, e.g. `server`, `gather`), `command_type` (`command` or `variable`), `default_value` (variables only) and `permission_required` (null when any player can run it). Cached for 30 minutes.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_itemsItem name / shortname typeahead.No findings

    Why it is in this group

    • The name "search_items" says "search": a word for reading.
    Description, as the server wrote it
    Item name / shortname typeahead. Up to 25 live items matching `q`, best match first: a case-insensitive substring match on the display name OR the shortname, plus trigram similarity on the display name so typos still resolve (`asault` finds the Assault Rifle) - the same ILIKE + similarity search the site's item pickers use. Each result is `{shortname, display_name, category, icon_url}`; use the shortname with `/items/{shortname}`. For filtered, paginated results use `/items?search=` instead. Cached for 5 minutes per query.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_serversBrowse, filter and search the server list.Reads text others writeNo findings

    Why it is in this group

    • The name "search_servers" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "browse": it reads web pages, which anyone can write.
    Description, as the server wrote it
    Browse, filter and search the server list. One page of servers with the same filters, ordering and five-minute cache as the servers.rustprofit.com list and its hub pages (/country/de, /vanilla, /solo, /gather/2x ...). Each result is the full public server record: identity and connect details (`ip`, `game_port`, `query_port`, `connect` as a `steam://` URI), `map`, `world_seed`, `world_size`, `country`/`country_name`, live `current_players`/`max_players`/`queued_players`, the `kind` (official/modded/vanilla) and `is_*` flags, `password_protected`, `vac_enabled`, `gather_rate` with its `gather_bucket`, `group_limit` with its `group` label, `tags`, owner-supplied `description` (first 500 characters), `banner_url`, `website_url`, `discord_url`, `first_seen_at`/`last_seen_at`/`last_polled_at`, the aggregates `votes`, `rating` (1-5 average, null when unrated) and `last_wipe_at`, and the server's page `url` plus embeddable `widget_url`/`badge_url`. Ties in every sort are broken by `id` so pages never overlap.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_skinsSkin name typeahead.No findings

    Why it is in this group

    • The name "search_skins" says "search": a word for reading.
    Description, as the server wrote it
    Skin name typeahead. Up to 10 skins whose name matches `q`, best match first (the same ILIKE + trigram search the site's search boxes use). Each result is `{itemdefid, name, icon_url}`; use the `itemdefid` with the other skin endpoints. For filtered, paginated results use GET /skins with `search=` instead.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_workshopBrowse or search Workshop submissions.Reads text others writeNo findings

    Why it is in this group

    • The name "search_workshop" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "browse": it reads web pages, which anyone can write.
    Description, as the server wrote it
    Browse or search Workshop submissions. One page of submissions. Each carries `workshopid` (the Steam published-file id), `title`, `author_steamid64`, `preview_image_url`, `submitted_at` (UTC ISO-8601, may be null), `accepted` and `accepted_itemdefid` (the in-game item definition id when Facepunch accepted it - use it with `/skins/{itemdefid}`), `target_item_tag`, `subscriptions` and `vote_score` (Steam's 0-1 score; both null when Steam has not reported them). Same filters, ordering and cache as the /workshop page.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_world_entitiesWorld entities: animals, NPCs, resource nodes.No findings

    Why it is in this group

    • The name "search_world_entities" says "search": a word for reading.
    Description, as the server wrote it
    World entities: animals, NPCs, resource nodes. One page of world entities (anything not tied to one monument), alphabetical. Each carries `slug`, `display_name`, `is_npc`, `npc_hp` (null for resources) and `icon_url`. Cached for one hour.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.

Reads private data2
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write4
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

No check matched anything in these tool definitions. That is not a safety guarantee.

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http rust-wiki https://rust.wiki/mcp
claude mcp add --transport http rust-wiki https://rust.wiki/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__rust-wiki__search_items",
      "mcp__rust-wiki__browse_items",
      "mcp__rust-wiki__get_item",
      "mcp__rust-wiki__get_item_skins",
      "mcp__rust-wiki__search_skins",
      "mcp__rust-wiki__browse_skins",
      "mcp__rust-wiki__get_skin",
      "mcp__rust-wiki__get_skin_price",
      "mcp__rust-wiki__get_skin_price_history",
      "mcp__rust-wiki__list_skin_collections",
      "mcp__rust-wiki__get_skin_collection",
      "mcp__rust-wiki__find_skin_deals",
      "mcp__rust-wiki__get_market_cap",
      "mcp__rust-wiki__get_market_movers",
      "mcp__rust-wiki__get_item_store",
      "mcp__rust-wiki__get_item_store_history",
      "mcp__rust-wiki__get_store_rotation",
      "mcp__rust-wiki__search_workshop",
      "mcp__rust-wiki__list_monuments",
      "mcp__rust-wiki__get_monument",
      "mcp__rust-wiki__list_loot_sources",
      "mcp__rust-wiki__get_loot_table",
      "mcp__rust-wiki__get_cctv_codes",
      "mcp__rust-wiki__search_commands",
      "mcp__rust-wiki__search_world_entities",
      "mcp__rust-wiki__get_world_entity",
      "mcp__rust-wiki__get_building_piece",
      "mcp__rust-wiki__get_raid_costs",
      "mcp__rust-wiki__get_upkeep_rules",
      "mcp__rust-wiki__get_rust_updates",
      "mcp__rust-wiki__search_servers",
      "mcp__rust-wiki__get_top_servers",
      "mcp__rust-wiki__get_recent_wipes",
      "mcp__rust-wiki__get_server",
      "mcp__rust-wiki__get_data_freshness"
    ],
    "ask": [],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as rust-wiki. Review it before you use it.

Capability tags behind 6 rules
  • mcp__rust-wiki__browse_items untrusted-input
  • mcp__rust-wiki__browse_skins untrusted-input
  • mcp__rust-wiki__search_workshop untrusted-input
  • mcp__rust-wiki__get_loot_table private-data
  • mcp__rust-wiki__get_raid_costs private-data
  • mcp__rust-wiki__search_servers untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/wiki.rust/rust-wiki/verify?hash=68ed611abd9d6d848ef3da3b597453dbc76ff9950c98a7903374542e5144558f" | jq -e '.changed == false'

Pinned hash 68ed611abd9d, from Oct 25, 2026, 21:18 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/wiki.rust/rust-wiki/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for wiki.rust/rust-wiki
[![anlyon.dev](https://anlyon.dev/badge/wiki.rust/rust-wiki.svg)](https://anlyon.dev/servers/wiki.rust/rust-wiki)

Source: MCP Registry. Synced Oct 25, 2026, 21:18 UTC.