# midnight-cast (npm · midnight-cast)

Read-only tools for live Midnight networks: health, transactions, DUST, errors and example code

- Trust score: 92/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- npm · `midnight-cast`: 92/100 (this document), [markdown](https://verifymcp.io/servers/kanasjnr-midnight-cast/midnight-cast.md), [page](https://verifymcp.io/servers/kanasjnr-midnight-cast/midnight-cast)

## Channel facts

- Registry: `npm`
- Package: `midnight-cast`
- Version: `0.2.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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-11-05.

- **Supply Chain Security**: 99/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 1 of 8 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to Kanasjnr/midnight-cast).
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 12 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 83/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).
  - Tool/resource definitions use about 1621 tokens (~90/item across 18 items; 14 tools + 4 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 73/100
  - Stability observed for 22 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 14 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the midnight-cast MCP server?

midnight-cast runs locally as an npm package, launched with npx -y midnight-cast. 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 kanasjnr-midnight-cast -- npx -y midnight-cast
```

### Cursor

```json
{
  "mcpServers": {
    "kanasjnr-midnight-cast": {
      "command": "npx",
      "args": [
        "-y",
        "midnight-cast"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "kanasjnr-midnight-cast": {
      "command": "npx",
      "args": [
        "-y",
        "midnight-cast"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add kanasjnr-midnight-cast -- npx -y midnight-cast
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "kanasjnr-midnight-cast": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "midnight-cast"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add kanasjnr-midnight-cast --command npx --arg -y --arg midnight-cast
```

### Hermes

```yaml
mcp_servers:
  kanasjnr-midnight-cast:
    command: "npx"
    args: ["-y", "midnight-cast"]
```

### Netclaw

```json
{
  "McpServers": {
    "kanasjnr-midnight-cast": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "midnight-cast"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add kanasjnr-midnight-cast -t stdio -c npx -a -y midnight-cast
```

### Other

```json
{
  "mcpServers": {
    "kanasjnr-midnight-cast": {
      "command": "npx",
      "args": [
        "-y",
        "midnight-cast"
      ]
    }
  }
}
```

## 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-11-04 (score 92, +1)

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

### 2026-11-02 (score 91, +1)

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

### 2026-10-31 (score 90, +1)

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

### 2026-10-28 (score 89, +1)

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

### 2026-10-26 (score 88, +1)

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

### 2026-10-24 (score 87, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-10-23 (score 71, −4)

- [security regression] Malware scan: pass → unverified
- [security improvement] Provenance: fail → pass
- [security] The attested source repository moved: Kanasjnr/midnight-cast
- [functional] Package version: 0.2.0 → 0.2.1

### 2026-10-22 (score 75, +3)

- [functional improvement] Stability: unverified → 0.27

## MCP tools (14)

### `health` (~113 tokens)

midnight-cast health

Full check of a Midnight network: RPC and indexer reachability, indexer sync against the node, and live versions against the support matrix. data.examples says whether Midnight's own examples pass on the node the network runs. Start here when something might be wrong with the network rather than the user's code.

Input parameters:

- `network` (string, required): Midnight network to query: preview, preprod, mainnet, local
- `threshold` (integer): Indexer lag, in blocks, that counts as out of sync (default 100)

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

### `preflight` (~133 tokens)

midnight-cast preflight

Check that a network, its proof server and optionally a wallet are ready before the first transaction: the network answers and is in sync, the proof server answers at the expected version, and the wallet holds NIGHT registered for DUST generation. data.expectations quotes how long wallet sync and restore took in Midnight's examples run, so a long first sync isn't mistaken for a hang.

Input parameters:

- `address` (string): The wallet's Midnight unshielded address (mn_addr_…) or a Cardano reward address (stake…)
- `network` (string, required): Midnight network to query: preview, preprod, mainnet, local

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

### `ping` (~54 tokens)

midnight-cast ping

Check whether the network's RPC node, indexer and proof server answer, with latency and a classified error kind for each failure.

Input parameters:

- `network` (string, required): Midnight network to query: preview, preprod, mainnet, local

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

### `tip` (~69 tokens)

midnight-cast tip

Compare the node's latest block height with the indexer's, to see whether the indexer is behind.

Input parameters:

- `network` (string, required): Midnight network to query: preview, preprod, mainnet, local
- `threshold` (integer): Lag in blocks that counts as out of sync (default 100)

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

### `versions` (~146 tokens)

midnight-cast versions

Compare the network's live node, runtime, indexer API and proof server with Midnight's support matrix, and a project's Midnight packages (package.json and package-lock.json) with the matrix pins. data.localProject says which directory was checked and whether it had a package.json, and data.examples whether Midnight's own examples pass on the node the network runs.

Input parameters:

- `checkLocalPackages` (boolean): Check the project's packages at all (default true)
- `network` (string, required): Midnight network to query: preview, preprod, mainnet, local
- `projectDir` (string): Absolute path of the user's project; defaults to the server's working directory, which may not be the project

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

### `block` (~59 tokens)

midnight-cast block

Read a block header: the latest one, or the block at a height.

Input parameters:

- `height` (integer): Block height; omit for the latest block
- `network` (string, required): Midnight network to query: preview, preprod, mainnet, local

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

### `tx` (~86 tokens)

midnight-cast tx

Look up a transaction on the indexer: status, segments, fees, contract actions and the DUST and Zswap events it produced.

Input parameters:

- `by` (string): What hash is (default hash)
- `hash` (string, required): Transaction hash, or an identifier when by is identifier
- `network` (string, required): Midnight network to query: preview, preprod, mainnet, local

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

### `dust_event` (~55 tokens)

midnight-cast dust-event

Read one DUST ledger event by id from the indexer subscription.

Input parameters:

- `id` (integer, required): DUST ledger event id
- `network` (string, required): Midnight network to query: preview, preprod, mainnet, local

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

### `dust_events` (~88 tokens)

midnight-cast dust-events

Read DUST ledger events from the indexer: the latest ones, or a run starting at an id.

Input parameters:

- `from` (integer): First event id; omit for the latest events
- `limit` (integer): How many events to read (default 10, at most 50)
- `network` (string, required): Midnight network to query: preview, preprod, mainnet, local

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

### `contract` (~127 tokens)

midnight-cast contract

Look up a deployed contract by address: whether it exists, its latest action (deploy, call or update) and the circuit a call ran, the deploy transaction and block (not reported after an update), unshielded balances, and the state's size and sha256.

Input parameters:

- `address` (string, required): Contract address, hex, optionally prefixed with 0x
- `includeState` (boolean): Also return the full state hex, which can be hundreds of kilobytes (default false)
- `network` (string, required): Midnight network to query: preview, preprod, mainnet, local

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

### `dust_status` (~93 tokens)

midnight-cast dust-status

DUST generation for Cardano reward addresses: whether each is registered, its NIGHT balance, generation rate, and current and maximum DUST capacity. Use when a wallet has no DUST.

Input parameters:

- `addresses` (array, required): Cardano reward addresses (stake1… on mainnet, stake_test1… on test networks)
- `network` (string, required): Midnight network to query: preview, preprod, mainnet, local

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

### `decode` (~96 tokens)

midnight-cast decode

Explain a Midnight error. Paste the whole message from a wallet, node, toolkit or Blockfrost: 1010 rejections, Custom(N) ledger codes, pallet errors, JSON-RPC codes and known tooling messages are recognised. A bare code such as 170 works too.

Input parameters:

- `message` (string, required): The error message or code
- `network` (string): Network the error came from, to check the ledger map matches it

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

### `explain` (~35 tokens)

midnight-cast explain

Background on a Midnight topic: dust, 1010, versions, transcript, sync.

Input parameters:

- `topic` (string, required): Topic to explain

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

### `examples` (~121 tokens)

midnight-cast examples

Working code from Midnight's official examples (midnightntwrk/midnight-examples), each compiled and tested in CI. Give a topic such as "DUST sponsorship", "send shielded tokens" or "verify a signature in a circuit" to get the examples that show it, with file paths, line ranges, links pinned to a commit and the code itself. Without a topic, lists every example and what it covers. Prefer these over writing Midnight code from memory.

Input parameters:

- `topic` (string): What the code should show; omit to list every example

Output parameters:

- `command` (string|null)
- `data`
- `error`
- `network` (string|null)
- `next` (array)
- `ok` (boolean)
- `schemaVersion` (number)
- `warnings` (array)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/kanasjnr-midnight-cast/midnight-cast#diagnostics

## Score history

- 2026-11-05: 92
- 2026-11-04: 92
- 2026-11-03: 91
- 2026-11-02: 91
- 2026-11-01: 90
- 2026-10-31: 90
- 2026-10-30: 89
- 2026-10-29: 89
- 2026-10-28: 89
- 2026-10-27: 88
- 2026-10-26: 88
- 2026-10-25: 87
- 2026-10-24: 87
- 2026-10-23: 71
- 2026-10-22: 75
- 2026-10-21: 72
- 2026-10-20: 72
- 2026-10-19: 72
- 2026-10-18: 72
- 2026-10-17: 72
- 2026-10-16: 72
- 2026-10-15: 72
- 2026-10-14: 72
- 2026-10-13: 39
- 2026-10-12: 39

## Common questions

### What is the midnight-cast MCP server?

midnight-cast is an MCP server listed in the public MCP registry as io.github.Kanasjnr/midnight-cast. Read-only tools for live Midnight networks: health, transactions, DUST, errors and example code. This page covers its npm package (midnight-cast).

### Is the midnight-cast MCP server safe to use?

midnight-cast scores 92 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. 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 midnight-cast MCP server expose?

midnight-cast exposes 14 tools: health, preflight, ping, tip, versions, and 9 more. Their descriptions and schemas cost roughly 1,275 tokens of context every time the server is loaded.

### Is the midnight-cast MCP server still maintained?

midnight-cast is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the midnight-cast MCP server under?

midnight-cast declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/midnight-cast
- Socket report: https://socket.dev/npm/package/midnight-cast
- Repository: https://github.com/Kanasjnr/midnight-cast
- Changelog RSS feed: https://verifymcp.io/servers/kanasjnr-midnight-cast/midnight-cast.xml
- Changelog JSON feed: https://verifymcp.io/servers/kanasjnr-midnight-cast/midnight-cast.json
- HTML version of this page: https://verifymcp.io/servers/kanasjnr-midnight-cast/midnight-cast
