# `io.github.nowi333/monerometrics` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/io.github.nowi333/monerometrics
- JSON: https://anlyon.dev/api/v1/servers/io.github.nowi333/monerometrics
- Version: 0.4.0 (active)
- Publisher: io.github.nowi333 (GitHub account)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Repository: https://github.com/nowi333/monerometrics
- Metadata from the official MCP Registry, synced 2026-10-21T18:42:48.132Z

Title and description, as the publisher wrote them:

```untrusted-server-text
Live Monero network metrics: reorgs, orphans, pool centralization and the Haveno order book.
```

Scanned 2026-10-21T19:25:37.965Z over streamable-http.

**19 tools: 1 do something that can't be undone, 15 change things and 3 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 0 | deny |
| Can't be undone | irreversible | 1 | ask |
| Changes things | write | 15 | ask |
| Only reads | read | 3 | allow |

## Exfil surface

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

| Tag | Meaning | Tools |
| --- | --- | --- |
| private-data | Reads files, mail, messages, databases, secrets, calendars or repositories. | none |
| untrusted-input | Brings in text someone else can write: web pages, inbound email, messages, issues and comments. | none |
| outbound | Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL. | `mcp__monerometrics__chain_fork_window` |

## Findings

No check matched anything in these tool definitions.


## Can't be undone (1)

Sends, pays, publishes or merges: once done, it cannot be taken back. Claude Code: ask.

### `chain_fork_window`

- The name "chain_fork_window" says "fork": a word for a change.
- The input addresses people (input.to): what it sends cannot be taken back.
- Tag outbound: The input takes a destination (input.to): what the tool writes goes there.

Description, as the server wrote it:

```untrusted-server-text
Canonical chain plus any competing orphan blocks around a height. 'to' is the highest height in the window (defaults to the current tip); lower it to browse older history down to the genesis block. limit 10..500.
```

## Changes things (15)

Creates or changes something that can be changed back. Claude Code: ask.

### `chain_provenance`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
How mining-pool attribution was established over a window: share proven by view key, claimed by pool API, inferred from coinbase, or unattributed. window in 1h,6h,24h,48h,7d.
```

### `haveno_book`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
The live Haveno XMR/USD order book, both sides, priced against centralized spot.

Each price level carries its cumulative depth, offer count, payment methods and a
reversible flag. `asks` are makers selling XMR, so taking one means buying; `bids`
are makers buying, so taking one means selling. Offers are advertisements with
differing payment methods rather than a matched book, so nothing executes on its own
and the best bid can sit at or above the best ask.

```

### `haveno_payment_methods`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Executed Haveno trades grouped by payment method, with the premium over spot.

window in 30d,90d,180d,1y,all. currency in USD,EUR. The premium tracks how reversible
and convenient the payment rail is, not privacy: every one of these trades is equally
non-KYC. The reversible flag is our own classification, not a Haveno field.

```

### `haveno_premium`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Haveno peer-to-peer quotes against centralized spot over time, both sides.

window in 24h,7d,30d,90d,1y. History starts on 24 August 2026, when recording began.

```

### `network_blocktime`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Block-time variance time series (seconds between blocks). window in 1h,24h,7d,30d,90d,1y,5y.
```

### `network_emission`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Block reward / emission time series (XMR per block). window in 1h,24h,7d,30d,90d,1y,5y.
```

### `network_hashrate`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Network hashrate time series. window in 1h,24h,7d,30d,90d,1y,5y.
```

### `network_info`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Current Monero network state: latest indexed height, difficulty, network hashrate and mempool size.
```

### `network_mempool`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Mempool size time series (number of pending transactions). window in 1h,24h,7d,30d,90d,1y,5y.
```

### `pool_distribution`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Mining-pool distribution over a window: block share per pool, largest-pool share and the Nakamoto coefficient (minimum pools controlling >50% of blocks). window in 1h,6h,24h,48h,7d.
```

### `pool_sources`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Reachability status of each mining-pool API used for block attribution.
```

### `price`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Current Monero (XMR) price: centralized spot plus both sides of the Haveno peer-to-peer book.

Returns the best offer and the amount-weighted average on each side, resting depth,
offer counts, and round_trip_cost_pct: the cost of buying XMR and selling it straight
back, which is far larger than the headline premium.

```

### `recent_orphans`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Most recent orphan blocks with their canonical counterpart at the same height, newest first. limit 1..50; window in 24h,48h,7d,30d,90d,180d,1y,all (default all, so the last N orphans are returned however old they are).
```

### `reorg_stats`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Aggregate reorg statistics over windows: counts, average and maximum depth, affected transactions.
```

### `reorgs`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Detected Monero chain reorganizations, most recent first, with fork point, depth and affected transactions.
```

## Only reads (3)

Looks things up and changes nothing. Claude Code: allow.

### `get_block`

- The name "get_block" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Full detail for one block by its 64-character block hash: height, previous hash, size, difficulty, reward, coinbase, transaction list and merge-mining tags.
```

### `lookup_transaction`

- The name "lookup_transaction" says "lookup": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Look up a transaction by its 64-character hash: whether it is in the mempool or mined, its block, confirmations, whether it is spendable yet, the pool that mined its block, and whether that height was ever contested by a reorg. No amounts, senders or recipients: the protocol encrypts them.
```

### `search_block`

- The name "search_block" says "search": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Find a block by height (a number) or by 64-character hash, anywhere in the chain down to the genesis block (height 0). Returns the block detail plus whether it is canonical or an orphan.
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `monerometrics`:

```json
{
  "permissions": {
    "allow": [
      "mcp__monerometrics__get_block",
      "mcp__monerometrics__search_block",
      "mcp__monerometrics__lookup_transaction"
    ],
    "ask": [
      "mcp__monerometrics__network_info",
      "mcp__monerometrics__price",
      "mcp__monerometrics__haveno_book",
      "mcp__monerometrics__haveno_premium",
      "mcp__monerometrics__haveno_payment_methods",
      "mcp__monerometrics__network_hashrate",
      "mcp__monerometrics__network_blocktime",
      "mcp__monerometrics__network_mempool",
      "mcp__monerometrics__network_emission",
      "mcp__monerometrics__reorgs",
      "mcp__monerometrics__reorg_stats",
      "mcp__monerometrics__recent_orphans",
      "mcp__monerometrics__pool_distribution",
      "mcp__monerometrics__pool_sources",
      "mcp__monerometrics__chain_provenance",
      "mcp__monerometrics__chain_fork_window"
    ],
    "deny": []
  }
}
```

Capability tags behind the rules (a read tagged outbound is asked about):

- `mcp__monerometrics__chain_fork_window`: outbound

## Remote posture

What an anonymous client saw at the remote endpoint, last 2026-10-22T15:03:22.671Z, unchanged since 2026-10-22T15:03:22.671Z. No credentials were sent and no tool was called. Values are shown as the endpoint returned them. Method: https://anlyon.dev/methodology#remote-posture

| Fact | Observed |
| --- | --- |
| Reachable | `yes` |
| HTTP status of an anonymous initialize | `200` |
| tools/list served without credentials | `yes` |
| Tools that change things, listed without credentials | `16` |
| Protocol version | `2025-06-18` |
| WWW-Authenticate on 401 | `not observed` |
| resource_metadata in WWW-Authenticate | `none` |
| RFC 9728 protected resource metadata | `https://api.monerometrics.net/.well-known/oauth-protected-resource/mcp` |
| Authorization servers | `none` |
| Legacy HTTP+SSE transport | `no` |
| Dynamic client registration | `not observed` |
| Client ID metadata documents | `not observed` |

- **high** Tools that change things, listed to anyone ([unauth-remote-writes](https://anlyon.dev/methodology#unauth-remote-writes))

```untrusted-server-text
The endpoint served tools/list without credentials, and the list has 16 tools that change things (1 irreversible, 15 write). Whether a call also works without credentials was not tested: tools are never called.

https://api.monerometrics.net/mcp: tools/list returned 19 tools to an anonymous client, including chain_fork_window (irreversible), network_info (write), price (write), haveno_book (write), haveno_premium (write) and 11 more
```
