Server definition
- Hash
- sha256:21398826c532e8e2a6e13f00c85a9a1f5493240e3cc093cccfaf3bbba5bbb027
- What it is
- What a remote MCP server returned when asked what it offers: 13 tools
The blob, as servednamed by its sha256
{
"instructions": "Query the Roblox Limiteds market as tracked by RBX Invest: the catalog and its rankings, one item in depth with its price history and score, items currently listed below RAP, recent UGC Limited releases, and a creator's track record. All prices are in Robux. RAP is Roblox's recent average price for an item, which is a trailing average and not a quote — the lowest current resale listing is the number that matters for buying today. Reselling a UGC Limited nets the seller 50% of the sale price and a classic Limited 70%. Item scores are a predicted profit per day and creator profit chance is how often that creator's past releases became profitable; both are estimates from past releases, not promises.",
"tools": [
{
"description": "Search RBX Invest's published guides. They cover the market — how Roblox taxes resales, how RAP is calculated, valuing and flipping Limiteds, converting Robux to USD, histories of individual item series — and the site itself, in the \"site\" section: linking a Roblox account and what that grants, inventory syncing, privacy, what each page does. Returns titles, summaries and links — read the article itself for the detail. One search returning nothing is a vocabulary miss more often than a gap; try the words the site would use before concluding it is not there.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Restrict to one section of /articles, the same six a visitor can browse.",
"enum": [
"market-reports",
"item-histories",
"guides",
"strategy",
"roblox-history",
"site"
],
"type": "string"
},
"limit": {
"default": 5,
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Topic to search for, e.g. \"devex\", \"how RAP works\". Omit for the most recent articles.",
"type": "string"
}
},
"type": "object"
},
"name": "find_articles",
"outputSchema": null
},
{
"description": "Roblox Limiteds whose lowest resale listing is currently below their RAP, with the discount and the absolute saving. This is the live resale market, refreshed continuously. Use it for what is underpriced right now.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 10,
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"max_price": {
"description": "Highest resale price to consider, in Robux.",
"minimum": 1,
"type": "integer"
},
"min_discount_pct": {
"default": 10,
"description": "Only items at least this far below RAP.",
"maximum": 99,
"minimum": 0,
"type": "number"
},
"min_price": {
"description": "Lowest resale price to consider, in Robux.",
"minimum": 0,
"type": "integer"
},
"min_rap": {
"default": 0,
"description": "Ignore items whose RAP is below this.",
"minimum": 0,
"type": "integer"
},
"sort": {
"default": "deal",
"description": "deal = biggest discount, savings = biggest absolute saving, recent = newest; rap and price rank by those.",
"enum": [
"deal",
"recent",
"savings",
"rap",
"price"
],
"type": "string"
},
"type": {
"default": "ugc_limited",
"description": "ugc_limited or regular_limited (classic).",
"enum": [
"ugc_limited",
"regular_limited"
],
"type": "string"
}
},
"type": "object"
},
"name": "find_deals",
"outputSchema": null
},
{
"description": "The Limiteds and creators most held across the portfolios RBX Invest tracks. A different signal from price or sales volume: RAP says what a thing trades at, this says what people chose to keep. Ranked by total copies held or by how many different people hold it — one item can be 33 copies in a single collection and another one copy each across 400 people.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"direction": {
"default": "desc",
"enum": [
"desc",
"asc"
],
"type": "string"
},
"kind": {
"default": "items",
"description": "items = individual Limiteds, creators = whose work is held.",
"enum": [
"items",
"creators"
],
"type": "string"
},
"limit": {
"default": 10,
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"minimum": 0,
"type": "integer"
},
"query": {
"description": "Part of an item or creator name.",
"type": "string"
},
"sort": {
"default": "total_copies",
"description": "total_copies = most copies held, unique_owners = held by the most different people.",
"enum": [
"unique_owners",
"total_copies"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_community_holdings",
"outputSchema": null
},
{
"description": "A Roblox UGC creator: how often their releases have ended up profitable, how long that typically took, and their biggest items. Creators with too few releases come back unrated rather than scored — treat that as unknown, not as bad.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"creator_id": {
"description": "Numeric creator id.",
"type": "string"
},
"name": {
"description": "Creator name. Omit if giving creator_id.",
"type": "string"
}
},
"type": "object"
},
"name": "get_creator",
"outputSchema": null
},
{
"description": "Everything tracked about one Roblox Limited: a plain-language summary paragraph, RAP and how it has moved over a window, the resale book (how many copies are listed and at what prices, not just the cheapest), stock left, sales in the last 30 days, whether the creator is still selling new copies, the creator, the item score with its predicted profit per day and a breakdown of how it was calculated (every input, its weight and how many points it moved the chance and profit-size blends, then the equation), a summary of its price trend, and its full recorded sales history (sales count, first and last sale, high and low daily average, average price by year and for the 12 most recent months with sales, and for UGC when it sold out and whether release buyers could resell at a profit). Use the breakdown to explain why an item scores what it does. Needs a numeric Roblox asset id — get one from search_items first. Read creator_still_selling rather than copies_remaining to answer \"can I buy one at the original price\": stock left does not mean it is on sale.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"asset_id": {
"description": "Numeric Roblox asset id, e.g. \"1365767\".",
"type": "string"
},
"trend_days": {
"default": 30,
"maximum": 90,
"minimum": 7,
"type": "integer"
}
},
"required": [
"asset_id"
],
"type": "object"
},
"name": "get_item_details",
"outputSchema": null
},
{
"description": "How big the Roblox Limited market is over any date range, split between Classic and UGC Limiteds: market cap, items, copies in circulation, and the marketplace sales volume and Robux spent on the latest measured day, plus a sampled daily series carrying all of them. Market cap is the RAP of each item times the copies of it that exist. Use it for how big the market is, whether it is growing, how marketplace sales compare, and how the two halves differ. Item-for-item trades are excluded.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"default": 365,
"description": "Length of the range in days; 9999 for the whole series, which reaches 2021 on two items and 2022-11-24 for the rest.",
"enum": [
30,
90,
182,
365,
9999
],
"type": "integer"
}
},
"type": "object"
},
"name": "get_market_cap",
"outputSchema": null
},
{
"description": "Totals for the Roblox Limiteds market as RBX Invest tracks it: how many Limiteds are followed, and the copies and Robux held across tracked portfolios. The holdings figures cover RBX Invest users who linked a Roblox account, not all of Roblox.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_market_stats",
"outputSchema": null
},
{
"description": "UGC Limiteds released recently, with demand level, stock left and the predicted profit numbers RBX Invest scores them with.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"all_experiences_only": {
"default": false,
"description": "Only items sold in any experience — the ones a buyer can list in their own game and keep the 40% affiliate commission on.",
"type": "boolean"
},
"availability": {
"default": "all",
"enum": [
"all",
"available"
],
"type": "string"
},
"hide_free": {
"default": false,
"description": "Drop items the creator released at 0 R$.",
"type": "boolean"
},
"limit": {
"default": 10,
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"max_age_days": {
"default": 7,
"maximum": 90,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Part of an item name, to search within recent releases.",
"type": "string"
},
"resellable_only": {
"default": false,
"description": "Only items whose resale window has opened.",
"type": "boolean"
},
"sort": {
"default": "newest",
"enum": [
"newest",
"fewest_copies",
"best_score"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_new_limiteds",
"outputSchema": null
},
{
"description": "What a tracked player holds: their most valuable positions plus the totals the leaderboard ranks them on. Follows rank_players, which returns the Roblox user id this needs. A player who set their inventory private comes back marked private rather than empty.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 10,
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"roblox_user_id": {
"description": "Numeric Roblox user id, e.g. \"27170037\".",
"type": "string"
}
},
"required": [
"roblox_user_id"
],
"type": "object"
},
"name": "get_player_holdings",
"outputSchema": null
},
{
"description": "RBX Invest's guide to making Robux with Roblox Limiteds, with one guide per experience level. Level 1 is for someone who knows nothing about Roblox: what Robux and Limiteds are. Level 2 is how a flip makes Robux and what it costs. Level 3 is a first flip: screening a release, break-even, the holding period, pricing an exit. Level 4 is for people who already resell: a Reseller Terminal routine, undercut alerts, lowering entry cost with the Roblox Plus discount and the 40% affiliate share, buying below RAP, Classic Limiteds. Level 5 is for daily traders: custom screens, saved views, market-wide data and this MCP server. Levels 1 and 2 lead into three beginner steps. Step 1 is getting Limiteds: buying them from creators with Robux, what makes one worth buying and what to avoid, or collecting free ones. Step 2 is selling: the Roblox Plus subscription it needs, the holding period of up to 30 days, how much of a sale the seller keeps, and pricing. Step 3 is reinvesting: keep flipping UGC Limiteds and save toward Classic Limiteds, which can be traded. Pass level or step; omit both for the overview: the five levels, the three steps and a glossary (Robux, Limited, UGC, Classic, RAP, Roblox Plus). Returns the text with section links; paths are relative to https://rbxinvest.com.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"level": {
"description": "The reader's experience: 1 new to Limiteds, 2 knows they exist, 3 understands the market, 4 has resold for profit, 5 trades every day. Returns that level's guide.",
"enum": [
1,
2,
3,
4,
5
],
"type": "integer"
},
"step": {
"description": "A beginner step: 1 get Limiteds, 2 sell them, 3 reinvest the profit. Ignored when level is passed.",
"enum": [
1,
2,
3
],
"type": "integer"
}
},
"type": "object"
},
"name": "get_started_guide",
"outputSchema": null
},
{
"description": "Creators ranked across the whole Roblox Limited market — who is biggest, and whose releases most often end up profitable. get_creator answers about one creator you can already name; this finds them. Ranking by profitability shows only creators with enough settled releases to rate, and by growth only those with 3 or more items, because an average over one release is noise.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"direction": {
"default": "desc",
"enum": [
"desc",
"asc"
],
"type": "string"
},
"limit": {
"default": 10,
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Rows to skip, for reading past the first page.",
"minimum": 0,
"type": "integer"
},
"query": {
"description": "Part of a creator name, to rank within matching creators.",
"type": "string"
},
"sort": {
"default": "totalValue",
"description": "chance = how often their releases end up profitable, score = RBX Invest's creator rating, totalValue = RAP across everything they have made, copies = copies of their items in circulation, uniqueItems = how many Limiteds they have released, growth = average lifetime appreciation against the price they first sold at (the old measure, not the windowed move the item sorts call growth).",
"enum": [
"totalValue",
"uniqueItems",
"growth",
"copies",
"score",
"chance"
],
"type": "string"
}
},
"type": "object"
},
"name": "rank_creators",
"outputSchema": null
},
{
"description": "The biggest Roblox Limited portfolios RBX Invest tracks, by total RAP held, copies held, or average lifetime appreciation. This covers people who signed up on RBX Invest and linked a Roblox account, not every Roblox player, so a rank from it is a rank on this board rather than a global one.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 10,
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"metric": {
"default": "value",
"description": "value = total RAP held, copies = number of copies held, growth = average lifetime appreciation across holdings (only players holding 3 or more copies are ranked).",
"enum": [
"value",
"copies",
"growth"
],
"type": "string"
},
"offset": {
"default": 0,
"description": "Rows to skip, for reading past the first page.",
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"name": "rank_players",
"outputSchema": null
},
{
"description": "Search the Roblox Limited catalog by name, or screen the whole market when no query is given. Returns asset id, RAP, RAP across every copy sold, the lowest resale listing, stock left, the move in RAP over 1/7/14/30 days and lifetime in both percent and Robux, sales counts and sales value per window, the average sale price over 30/90/180 days, and the item score. Rank by any of those with sort, and bound any of them with filters to ask a question with more than one condition in it. Prices are Robux.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"asset_type": {
"description": "Only this kind of item, e.g. Hat, HairAccessory, FaceAccessory, BackAccessory, Face, Gear. Omit for every kind.",
"enum": [
"AvatarBackground",
"BackAccessory",
"DressSkirtAccessory",
"DynamicHead",
"EmoteAnimation",
"EyebrowAccessory",
"EyelashAccessory",
"EyeMakeup",
"Face",
"FaceAccessory",
"FaceMakeup",
"FrontAccessory",
"Gear",
"HairAccessory",
"Hat",
"JacketAccessory",
"LeftShoeAccessory",
"LipMakeup",
"NeckAccessory",
"PantsAccessory",
"ShirtAccessory",
"ShortsAccessory",
"ShoulderAccessory",
"SweaterAccessory",
"TShirtAccessory",
"WaistAccessory"
],
"type": "string"
},
"availability": {
"default": "all",
"description": "available = copies still in stock from the creator.",
"enum": [
"all",
"available"
],
"type": "string"
},
"direction": {
"default": "desc",
"enum": [
"desc",
"asc"
],
"type": "string"
},
"filters": {
"description": "Ranges narrowing the catalog, ANDed together. Each is in the unit its metric is shown in: Robux for rap/totalValue/price/creatorPrice/salesTotal*/growthRs*/movingAvg*, percent for growth*/percentRemaining/percentSold, a count for copies/copiesLeft/volume*. An item with no value for a bounded metric is excluded.",
"items": {
"additionalProperties": false,
"properties": {
"max": {
"type": "number"
},
"metric": {
"enum": [
"rap",
"totalValue",
"price",
"creatorPrice",
"growth1d",
"growth7d",
"growth14d",
"growth30d",
"growthall",
"growthRs1d",
"growthRs7d",
"growthRs14d",
"growthRs30d",
"growthRsall",
"score",
"copies",
"copiesLeft",
"percentSold",
"percentRemaining",
"volume1d",
"volume7d",
"volume14d",
"volume30d",
"demandGrowth1d",
"demandGrowth7d",
"demandGrowth14d",
"demandGrowth30d",
"salesTotal1d",
"salesTotal7d",
"salesTotal14d",
"salesTotal30d",
"movingAvg30d",
"movingAvg90d",
"movingAvg180d"
],
"type": "string"
},
"min": {
"type": "number"
}
},
"required": [
"metric"
],
"type": "object"
},
"maxItems": 6,
"type": "array"
},
"item_type": {
"default": "all",
"description": "regular_limited is a classic Limited, ugc_limited a UGC one.",
"enum": [
"all",
"regular_limited",
"ugc_limited"
],
"type": "string"
},
"limit": {
"default": 10,
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Rows to skip, for reading past the first page. The reply reports the total that matched.",
"minimum": 0,
"type": "integer"
},
"query": {
"description": "Part of an item name, e.g. \"valkyrie\". Omit to rank or screen the catalog.",
"type": "string"
},
"sort": {
"default": "rap",
"description": "Metric to rank by. Size: rap, totalValue, price (cheapest copy from any seller), creatorPrice (the creator's price for a new copy; only items still on sale from the creator have one), copies, copiesLeft, percentRemaining (stock still unsold, the reading the site shows), percentSold (its complement), score. Movement: growth1d/7d/14d/30d/all (percent) and growthRs1d/7d/14d/30d/all (the same move in Robux); only items that sold inside the window have one, and the \"all\" pair measures against the creator's original price. Trading: volume1d/7d/14d/30d (sales) and salesTotal1d/7d/14d/30d (Robux moved). Price level: movingAvg30d/90d/180d, the average sale price over that span in Robux (the total paid over copies sold); only items that sold in the span have one.",
"enum": [
"rap",
"totalValue",
"price",
"creatorPrice",
"growth1d",
"growth7d",
"growth14d",
"growth30d",
"growthall",
"growthRs1d",
"growthRs7d",
"growthRs14d",
"growthRs30d",
"growthRsall",
"score",
"copies",
"copiesLeft",
"percentSold",
"percentRemaining",
"volume1d",
"volume7d",
"volume14d",
"volume30d",
"demandGrowth1d",
"demandGrowth7d",
"demandGrowth14d",
"demandGrowth30d",
"salesTotal1d",
"salesTotal7d",
"salesTotal14d",
"salesTotal30d",
"movingAvg30d",
"movingAvg90d",
"movingAvg180d"
],
"type": "string"
}
},
"type": "object"
},
"name": "search_items",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:21398826c532e8e2a6e13f00c85a9a1f5493240e3cc093cccfaf3bbba5bbb027 | sha256sum