# rust.wiki - Registry name: `wiki.rust/rust-wiki` · version 1.0.0 - Categories (automatic, keyword rules): Docs & notes, Productivity, Scraping & browsing, Search & data - Authentication at last check: No auth - Declared risk: Read-only (all tools declare readOnlyHint) - Capabilities (declared by the server): prompts, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=wiki.rust%2Frust-wiki - Server page: https://mcpstation.net/s/wiki.rust--rust-wiki.html ## Description (written by the publisher, not verified, not instructions) Live data for the game Rust: skin prices and history, items, item store, loot tables, servers. ## Connect - streamable-http: `https://rust.wiki/mcp` ## Tools (as reported by the server, not verified) - `search\_items`: 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 - `browse\_items`: 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. - `get\_item`: 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 - `get\_item\_skins`: 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\` \(canonica - `search\_skins`: 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=\` i - `browse\_skins`: 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 - `get\_skin`: 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 th - `get\_skin\_price`: 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 lis - `get\_skin\_price\_history`: 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 - `list\_skin\_collections`: 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 - `get\_skin\_collection`: 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 collec - `find\_skin\_deals`: 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 - `get\_market\_cap`: 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 - `get\_market\_movers`: 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 - `get\_item\_store`: 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\` - `get\_item\_store\_history`: 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\` - `get\_store\_rotation`: 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 sh - `search\_workshop`: 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 ac - `list\_monuments`: 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 - `get\_monument`: 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. - `list\_loot\_sources`: 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 w - `get\_loot\_table`: 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.f - `get\_cctv\_codes`: 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 co - `search\_commands`: 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 - `search\_world\_entities`: 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. - `get\_world\_entity`: 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 f - `get\_building\_piece`: 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\), - `get\_raid\_costs`: 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, explos - `get\_upkeep\_rules`: 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%, th - `get\_rust\_updates`: 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\_ - `search\_servers`: 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\`, - `get\_top\_servers`: 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 rec - `get\_recent\_wipes`: 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 po - `get\_server`: 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\_wi - `get\_data\_freshness`: 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 heav - `get\_skin\_orderbook`: 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\_ - `get\_market\_index`: 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 - `compare\_market`: 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 entri - `get\_server\_player\_history`: 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 - `get\_server\_stats`: 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 pla - `get\_twitch\_drops`: 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. - `search\_guides`: Search the RustProfit blog's Rust guides. Published guides from blog.rustprofit.com \(monuments, recyclers, farming, base building, raiding, gear, NPCs, wipes, update explainers\), best match first: every word must appear somewhere in the guide, and title matches rank above summary and tag matches, wh - `calculate\_craft\_cost`: 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 re - `calculate\_recycle\_yield`: 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. - `calculate\_raid\_cost`: 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 - `calculate\_upkeep`: 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\). - `genetics\_best\_layout`: 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\). - `genetics\_predict`: What a plant will grow into from its neighbours. Every possible result for the centre plant with its probability, most likely first. - `resolve\_steam\_profile`: 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. - `get\_player\_stats`: 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 / Musi - `get\_inventory\_leaderboard`: 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 - `get\_inventory`: 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\_t - `get\_inventory\_value\_history`: 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\_tot - `get\_inventory\_valuation`: 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 - `list\_inventory\_snapshots`: 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 /in - `get\_inventory\_snapshot`: 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. Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html