accueil / serveurs / Recherche & Web / org.sky-1/rate-hub
org.sky-1/rate-hub
serveur MCP (Model Context Protocol) · rate-hub 0.19.0-bc856dd
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que org.sky-1/rate-hub est sûr ?
Au dernier audit MCP Hub, le serveur MCP « org.sky-1/rate-hub » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 7 outils
- get_categories≈ 316 tokens
Coin categories (GET /v1/categories): each category id and name with the catalog uids that belong to it, for example layer-1 or stablecoins. Join it with uids from get_rates or search_assets to group holdings. It changes about once a day; as_of says when it was refreshed. A coin can be in several categories, and only the larger coins of a category are listed. Categories without a catalog member are omitted. The result grows with the catalog (one uid list per category, both copies of the result). not_ready (503) before the first daily refresh; not_found when the server has categories switched off.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_categories", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"as_of": "texte", "build": "texte", "categories": "texte", "server_time": "texte"}} - get_daily≈ 515 tokens
Immutable daily rates for uids and UTC days (POST /v1/rates/daily). Days are UTC calendar dates (YYYY-MM-DD) in the past. Crypto history older than about a year is served at daily granularity from daily candles (source s8) back to the earliest day each asset has; an asset with no such history is out_of_range. Each item carries a status: ok = exact immutable rate; out_of_range = the day is before the archive start, after today UTC, before the first available day of a crypto asset, or before the asset was listed (final, do not retry); pending = transient upstream miss, retry after retry_after seconds; unsupported = unknown uid. Limits (assets, quotes, assets times days) are in get_meta. Edge cases: read resource ratehub://docs/behavior (behaviour notes).
Paramètres, retour & exemple (3)
Paramètresvs· array · requis
Quote currenciesdays· array · requis
Past UTC calendar days, YYYY-MM-DDassets· array · requis
Catalog uids
Exemple d'appel{"name": "get_daily", "arguments": {"vs": [], "days": [], "assets": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"build": "texte", "rates": "texte", "server_time": "texte"}} - get_meta≈ 404 tokens
API limits, supported quote currencies, and build info (GET /v1/meta).
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_meta", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"build": "texte", "max_vs": 1, "collector": "texte", "upstreams": "texte", "max_assets": 1, "api_version": "texte", "supported_vs": "texte", "max_body_bytes": 1, "max_daily_pairs": "texte", "stale_after_seconds": "texte", "pending_retry_after_seconds": "texte"}} - get_rates≈ 1074 tokens
Batch indicative prices for catalog uids (POST /v1/rates). Prices are decimal strings. Uids are class-ranged (uid = class*1e8+seq; 1=fiat e.g. usd 100000001, 2=crypto e.g. btc 200000001). Use search_assets to find uids. Per-rate status: ok = fresh price; stale = last known price, upstream is late (see as_of); pending = in the catalog but not priced yet, wait retry_after seconds for that asset and ask again; unsupported = the uid is not in the catalog (a dynamic coin may have expired; look it up again). Size: about 0.4 KB per asset and quote without include (the result is sent twice, as text and as structuredContent; sizes here count both); sparkline adds a long price array per asset, so request it only when needed. Limits (max assets, max quote currencies) are in get_meta. Optional source (a code such as s1) returns that source's own price instead of the server's choice: source_code equals it, and an asset the source has no reading for is unsupported, never another source's price; exchange codes only answer when the deployment runs multi-source aggregation. A dynamic coin expires after 7 days without use and may get a new uid when registered again (also after a server reset): match it by symbol or a new search, not by a stored uid. Edge cases: read resource ratehub://docs/behavior (behaviour notes).
Paramètres, retour & exemple (4)
Paramètresvs· array · requis
Quote currency codes (usd, eur, btc, ...)assets· array · requis
Catalog uids to price (class*1e8+seq; use search_assets to find uids)source· null|string · optionnel
Optional source code such as s1: every rate is then that source's own reading, or unsupported when it has none (never another source's price)include· null|array · optionnel
Optional extras: change, market, sparkline. sparkline is large (a long price array per asset); ask for it only when needed
Exemple d'appel{"name": "get_rates", "arguments": {"vs": [], "assets": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"build": "texte", "rates": "texte", "server_time": "texte"}} - get_series≈ 605 tokens
Price history of one asset for charts (GET /v1/rates/series). Crypto: every range. Fiat: 1d and 7d from rate-hub's own readings taken about every 30 minutes; 30d, 90d, 1y and max one point per UTC day from the daily archive (it has a start day, days without a document are skipped, a cold range fills over a few retries, so an early answer may have fewer points). A fiat with no reading in the range, or an unknown uid, answers status unsupported with empty points, not an error. status: ok = fresh series; stale = last cached series, upstream failed (see fetched_at); pending = not ready, retry after retry_after seconds; unsupported = unknown uid, an asset no upstream knows, or a fiat with no reading in the range. Size: about 110 bytes per point (both copies of the result). max_points (2..500, default 100) downsamples evenly and keeps the first and last point; pass 500 for full detail. A non-USD fiat quote clips the series at the start of the fiat archive (range max only), and with a dynamic coin an unsupported answer may mean its uid expired. Edge cases: read resource ratehub://docs/behavior (behaviour notes).
Paramètres, retour & exemple (4)
Paramètresvs· string · requis
Quote currencyuid· integer · requis
Catalog uid of a crypto assetrange· string · requis · 1d | 7d | 30d | 90d | 1y | max
Chart rangemax_points· null|integer · optionnel
Downsample to at most this many points, 2..500 (default 100); first and last points are kept
Exemple d'appel{"name": "get_series", "arguments": {"vs": "texte", "uid": 1, "range": "1d"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"vs": "texte", "uid": 1, "build": "texte", "range": "texte", "points": "texte", "source": "texte", "status": "texte", "fetched_at": "texte", "retry_after": "texte", "server_time": "texte"}} - get_top≈ 732 tokens
Top crypto assets by market rank (GET /v1/top), with change and, by default, the market block (rank, market cap, volume, supply). Size: about 1 KB per asset with market (both copies of the result), smaller without. Default limit is 20 (max 250); pass include_market=false for a compact list. Items that cannot be priced in the requested quote are skipped. Edge cases: read resource ratehub://docs/behavior (behaviour notes).
Paramètres, retour & exemple (3)
Paramètresvs· null|array · optionnel
Quote currencies (default usd)limit· null|integer · optionnel
Ranked assets to return (1..250, default 20)include_market· null|boolean · optionnel
Include the market block (rank, market cap, volume, supply) per asset; default true. false makes the result smaller
Exemple d'appel{"name": "get_top", "arguments": {"vs": [], "limit": 1, "include_market": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"build": "texte", "rates": "texte", "server_time": "texte"}} - search_assets≈ 905 tokens
Catalog lookup (GET /v1/assets); use it to turn tickers or names into uids. Filters: q (free text), symbol, symbols (several tickers in one call), candidate (the uid of a candidates entry; registers that coin on demand; use alone), chain+contract (an unknown Solana mint can be registered on demand; mints are case-sensitive). Size: about 0.4 KB per asset (both copies of the result). Without any filter the default limit is 50 (the whole catalog is hundreds of assets); page with limit (1..1000) and after (next_after of the previous page). An explicit limit of 0 is an error. For a q lookup with few catalog hits, candidates lists at most 5 unregistered coins (not yet priced); pass a candidate's uid as candidate to register it and make it priceable. Dynamic coins expire after 7 days without use and may get a new uid after expiry or a server reset, so do not store a dynamic uid as identity; asset.icon is a placeholder image for an asset with no image source. Edge cases: read resource ratehub://docs/behavior (behaviour notes).
Paramètres, retour & exemple (8)
Paramètresq· string · optionnel
Free-text search over symbol and nameafter· null|integer · optionnel
Uid cursor for pagination (next_after from the previous page)chain· string · optionnel
Chain name with contractlimit· null|integer · optionnel
Page size 1..1000. Default 50 when no filter is given, otherwise no limitsymbol· string · optionnel
Exact symbol (non-unique, all matches returned)symbols· null|array · optionnel
Several exact symbols in one call, e.g. [btc, eth, sol]; all matches for each are returnedcontract· string · optionnel
Token contract addresscandidate· integer · optionnel
The uid of a candidates entry from an earlier search; registers that coin on demand and returns its asset. Use alone
Exemple d'appel{"name": "search_assets", "arguments": {"q": "texte", "after": 1, "chain": "texte", "limit": 1, "symbol": "texte", "symbols": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"build": "texte", "total": "texte", "assets": "texte", "candidates": "texte", "next_after": "texte", "candidates_status": "texte"}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».