# org.sky-1/rate-hub (remote · x402-v1.sky-1.org)

Indicative fiat and crypto rates over MCP, paid per request via x402 at $0.0001/request.

- Trust score: 67/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

## Components

- remote · `x402-v1.sky-1.org`: 67/100 (this document), [markdown](https://verifymcp.io/servers/org-sky-1-rate-hub/x402-v1.md), [page](https://verifymcp.io/servers/org-sky-1-rate-hub/x402-v1)

## Channel facts

- Endpoint: `https://x402-v1.sky-1.org/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.19.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-18.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 7 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 74/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1817 tokens (~227/item across 8 items; 7 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the org.sky-1/rate-hub MCP server?

org.sky-1/rate-hub is a hosted endpoint at https://x402-v1.sky-1.org/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.

### Claude

```bash
claude mcp add --transport http org-sky-1-rate-hub 'https://x402-v1.sky-1.org/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "org-sky-1-rate-hub": {
      "url": "https://x402-v1.sky-1.org/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "org-sky-1-rate-hub": {
      "type": "http",
      "url": "https://x402-v1.sky-1.org/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.org-sky-1-rate-hub]
url = "https://x402-v1.sky-1.org/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "org-sky-1-rate-hub": {
      "type": "remote",
      "url": "https://x402-v1.sky-1.org/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add org-sky-1-rate-hub --url 'https://x402-v1.sky-1.org/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  org-sky-1-rate-hub:
    url: "https://x402-v1.sky-1.org/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "org-sky-1-rate-hub": {
      "Transport": "http",
      "Url": "https://x402-v1.sky-1.org/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add org-sky-1-rate-hub -t streamable-http -u 'https://x402-v1.sky-1.org/mcp'
```

### Other

```json
{
  "mcpServers": {
    "org-sky-1-rate-hub": {
      "type": "http",
      "url": "https://x402-v1.sky-1.org/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-17 (score 67, 0)

- [functional] Server version: 0.20.0-119806c → 0.21.1-a78bfbd

### 2026-10-16 (score 67, +1)

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

### 2026-10-14 (score 66, +1)

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

### 2026-10-12 (score 65, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-11 (score 64)

First indexed and scored.

## MCP tools (7)

### `get_categories` (~138 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.

Output parameters:

- `as_of` (string)
- `build` (string)
- `categories` (null|array)
- `server_time` (string)

### `get_daily` (~215 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).

Input parameters:

- `assets` (array, required): Catalog uids
- `days` (array, required): Past UTC calendar days, YYYY-MM-DD
- `vs` (array, required): Quote currencies

Output parameters:

- `build` (string)
- `rates` (null|array)
- `server_time` (string)

### `get_meta` (~25 tokens)

API limits, supported quote currencies, and build info (GET /v1/meta).

Output parameters:

- `api_version` (string)
- `build` (string)
- `collector` (null|object)
- `max_assets` (integer)
- `max_body_bytes` (integer)
- `max_daily_pairs` (null|integer)
- `max_vs` (integer)
- `pending_retry_after_seconds` (null|integer)
- `stale_after_seconds` (null|object)
- `supported_vs` (null|array)
- `upstreams` (null|object)

### `get_rates` (~445 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).

Input parameters:

- `assets` (array, required): Catalog uids to price (class*1e8+seq; use search_assets to find uids)
- `include` (null|array): Optional extras: change, market, sparkline. sparkline is large (a long price array per asset); ask for it only when needed
- `source` (null|string): 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)
- `vs` (array, required): Quote currency codes (usd, eur, btc, ...)

Output parameters:

- `build` (string)
- `rates` (null|array)
- `server_time` (string)

### `get_series` (~344 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).

Input parameters:

- `max_points` (null|integer): Downsample to at most this many points, 2..500 (default 100); first and last points are kept
- `range` (string, required): Chart range
- `uid` (integer, required): Catalog uid of a crypto asset
- `vs` (string, required): Quote currency

Output parameters:

- `build` (string)
- `fetched_at` (null|string)
- `points` (null|array)
- `range` (string)
- `retry_after` (null|integer)
- `server_time` (string)
- `source` (null|string)
- `status` (string)
- `uid` (integer)
- `vs` (string)

### `get_top` (~178 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).

Input parameters:

- `include_market` (null|boolean): Include the market block (rank, market cap, volume, supply) per asset; default true. false makes the result smaller
- `limit` (null|integer): Ranked assets to return (1..250, default 20)
- `vs` (null|array): Quote currencies (default usd)

Output parameters:

- `build` (string)
- `rates` (null|array)
- `server_time` (string)

### `search_assets` (~416 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).

Input parameters:

- `after` (null|integer): Uid cursor for pagination (next_after from the previous page)
- `candidate` (integer): The uid of a candidates entry from an earlier search; registers that coin on demand and returns its asset. Use alone
- `chain` (string): Chain name with contract
- `contract` (string): Token contract address
- `limit` (null|integer): Page size 1..1000. Default 50 when no filter is given, otherwise no limit
- `q` (string): Free-text search over symbol and name
- `symbol` (string): Exact symbol (non-unique, all matches returned)
- `symbols` (null|array): Several exact symbols in one call, e.g. [btc, eth, sol]; all matches for each are returned

Output parameters:

- `assets` (null|array)
- `build` (string)
- `candidates` (null|array)
- `candidates_status` (null|string)
- `next_after` (null|integer)
- `total` (null|integer)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/org-sky-1-rate-hub/x402-v1#diagnostics

## Score history

- 2026-10-18: 67
- 2026-10-17: 67
- 2026-10-16: 67
- 2026-10-15: 66
- 2026-10-14: 66
- 2026-10-13: 65
- 2026-10-12: 65
- 2026-10-11: 64

## Common questions

### What is the org.sky-1/rate-hub MCP server?

org.sky-1/rate-hub is an MCP server listed in the public MCP registry as org.sky-1/rate-hub. Indicative fiat and crypto rates over MCP, paid per request via x402 at $0.0001/request. This page covers its hosted endpoint (https://x402-v1.sky-1.org/mcp).

### Is the org.sky-1/rate-hub MCP server safe to use?

org.sky-1/rate-hub scores 67 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 org.sky-1/rate-hub MCP server expose?

org.sky-1/rate-hub exposes 7 tools: get_categories, get_daily, get_meta, get_rates, get_series, and 2 more. Their descriptions and schemas cost roughly 1,761 tokens of context every time the server is loaded.

### Does the org.sky-1/rate-hub MCP server require authentication?

No. We connected to org.sky-1/rate-hub without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the org.sky-1/rate-hub MCP server still maintained?

org.sky-1/rate-hub is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://x402-v1.sky-1.org/mcp
- Changelog RSS feed: https://verifymcp.io/servers/org-sky-1-rate-hub/x402-v1.xml
- Changelog JSON feed: https://verifymcp.io/servers/org-sky-1-rate-hub/x402-v1.json
- HTML version of this page: https://verifymcp.io/servers/org-sky-1-rate-hub/x402-v1
