# ChainRPC MCP (remote · chainrpc-mcp.mitander.io)

Safety-first EVM and Bitcoin RPC tools for balances, contracts, blocks, and transactions

- Trust score: 62/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-20

## Components

- remote · `chainrpc-mcp.mitander.io`: 62/100 (this document), [markdown](https://verifymcp.io/servers/john0n1-chainrpc-mcp/chainrpc-mcp.md), [page](https://verifymcp.io/servers/john0n1-chainrpc-mcp/chainrpc-mcp)
- npm · `chainrpc-mcp`: 65/100, [markdown](https://verifymcp.io/servers/john0n1-chainrpc-mcp/chainrpc-mcp-2.md), [page](https://verifymcp.io/servers/john0n1-chainrpc-mcp/chainrpc-mcp-2)

## Channel facts

- Endpoint: `https://chainrpc-mcp.mitander.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `2.0.2`

## 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-08-20.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (evm_broadcastTransaction).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - 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**: 70/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 768 tokens (~42/item across 18 items; 18 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 69/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 6% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http john0n1-chainrpc-mcp https://chainrpc-mcp.mitander.io/mcp
```

### Codex

```toml
[mcp_servers.john0n1-chainrpc-mcp]
url = "https://chainrpc-mcp.mitander.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "john0n1-chainrpc-mcp": {
      "type": "remote",
      "url": "https://chainrpc-mcp.mitander.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add john0n1-chainrpc-mcp --url https://chainrpc-mcp.mitander.io/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  john0n1-chainrpc-mcp:
    url: "https://chainrpc-mcp.mitander.io/mcp"
```

### Other

```json
{
  "mcpServers": {
    "john0n1-chainrpc-mcp": {
      "type": "http",
      "url": "https://chainrpc-mcp.mitander.io/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-08-20 (score 62, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-08-19 (score 61)

First indexed and scored.

## MCP tools (18)

### `evm_getBlockNumber` (~23 tokens)

Return the latest EVM block number from the configured endpoint.

### `evm_getChainInfo` (~22 tokens)

Return the EVM chain ID and upstream client version.

### `evm_getNativeBalance` (~56 tokens)

Read an address native-token balance at an EVM block without requiring a wallet.

Input parameters:

- `address` (string, required)
- `block` (string|number): Block number or latest, earliest, pending, safe, or finalized

### `evm_getBlock` (~37 tokens)

Read an EVM block by number, tag, or block hash.

Input parameters:

- `block` (required)
- `includeTransactions` (boolean)

### `evm_getTransaction` (~29 tokens)

Read an EVM transaction and its receipt by transaction hash.

Input parameters:

- `hash` (string, required)

### `evm_call` (~65 tokens)

Run a read-only eth_call with pre-encoded calldata. This never submits a transaction.

Input parameters:

- `block` (string|number)
- `data` (string)
- `from`
- `to` (string, required)
- `valueWei` (string|number)

### `evm_readContract` (~73 tokens)

Encode, execute, and decode a read-only smart-contract function using a supplied JSON ABI.

Input parameters:

- `abi` (array, required): JSON ABI entries needed for this function
- `address` (string, required)
- `args` (array)
- `block` (string|number)
- `functionName` (string, required)

### `evm_estimateTransaction` (~29 tokens)

Estimate gas for an unsigned EVM transaction. Values are accepted as decimal or hex quantities.

### `evm_getLogs` (~25 tokens)

Read EVM event logs using an address/topics filter and bounded block range.

### `evm_broadcastTransaction` (~64 tokens)

Preflight and broadcast an already-signed EVM transaction. Disabled unless ALLOW_EVM_BROADCAST=true; never signs or stores keys.

Input parameters:

- `confirmation` (string, required)
- `expectedChainId` (integer, required)
- `rawTransaction` (string, required)

### `btc_getBlockchainInfo` (~23 tokens)

Return Bitcoin network, chain height, sync, and pruning information.

### `btc_getAddressBalance` (~49 tokens)

Scan the Bitcoin UTXO set for an address and return its confirmed spendable outputs. This is not address history and shared RPC nodes may reject concurrent scans.

Input parameters:

- `address` (string, required)

### `btc_getBlock` (~33 tokens)

Read a Bitcoin block by height or hash with selectable verbosity.

Input parameters:

- `block` (required)
- `verbosity` (integer)

### `btc_getTransaction` (~45 tokens)

Read a raw Bitcoin transaction by txid. A block hash can make confirmed transaction lookup more reliable.

Input parameters:

- `blockHash` (string)
- `txid` (string, required)

### `btc_getTxOut` (~54 tokens)

Read an unspent Bitcoin transaction output. Returns null when the output is spent or unknown.

Input parameters:

- `includeMempool` (boolean)
- `txid` (string, required)
- `vout` (integer, required)

### `btc_estimateFee` (~39 tokens)

Estimate a Bitcoin fee rate for confirmation within a target number of blocks.

Input parameters:

- `confirmationTarget` (integer, required)
- `mode` (string)

### `btc_decodeRawTransaction` (~27 tokens)

Decode a serialized Bitcoin transaction without broadcasting it.

Input parameters:

- `rawTransaction` (string, required)

### `btc_broadcastTransaction` (~75 tokens)

Validate and broadcast an already-signed Bitcoin transaction. Disabled unless ALLOW_BITCOIN_BROADCAST=true; never signs or stores keys.

Input parameters:

- `confirmation` (string, required)
- `expectedNetwork` (string, required)
- `maxFeeRateBtcPerKvB` (number)
- `rawTransaction` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/john0n1-chainrpc-mcp/chainrpc-mcp#diagnostics

## Score history

- 2026-08-20: 62
- 2026-08-19: 61

## Links

- Remote endpoint: https://chainrpc-mcp.mitander.io/mcp
- Repository: https://github.com/John0n1/chainrpc-mcp
- Changelog RSS feed: https://verifymcp.io/servers/john0n1-chainrpc-mcp/chainrpc-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/john0n1-chainrpc-mcp/chainrpc-mcp.json
- HTML version of this page: https://verifymcp.io/servers/john0n1-chainrpc-mcp/chainrpc-mcp
