NimBooks
NPM · NIMBOOKS-MCP
Read-only Nimiq books: balances, history, statements, staking, payment and stake links. Never signs.
Available components
Last scanned (5 hours ago)
Scores higher than 48% of npm servers
Category Crypto and Web3
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. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 8 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability65
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2525 tokens (~229/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management40
- Stability observed for 12 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +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.
- 3 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Oct 26 +26
- Malware scan: unverified → pass ▲ security
- Known CVEs: unverified → pass ▲ security
- Dependency health: unverified → 0.86 ▲ functional
- 28 Oct 26 −24
- Known CVEs: pass → unverified ▼ security
- Malware scan: pass → unverified ▼ security
- Dependency health: 0.85 → unverified ▼ functional
- Stability: unverified → 0.13 ▲ functional
- Package version: 1.2.1 → 1.3.0 functional
- Package version: 1.2.1 → 1.2.2 functional
- 25 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 24 Oct 26 53
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed npm/nimbooks-mcp@1.3.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 92 packages
| Packages resolved | 92 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
check_request_paid Check whether a request was paid ~117
Looks for a payment tagged with a request’s reference (nimbooks:invoice:<id>) in the address’s transactions — the same match the NimBooks app uses to mark a request paid. Read-only: it reports what the chain says and changes nothing, here or in the app. Scans the newest 200 transactions.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | The payee address the request was made for. Optional; defaults to the server’s configured address. |
| id | string | yes | The request id, as returned by create_payment_request. |
No output schema declared.
No examples provided.
create_payment_request Draft a payment request ~280
DRAFTS a payment request and returns a shareable link. This never signs anything, never sends anything, and never marks anything paid — the whole request rides inside the link, and only the payer’s wallet, with their approval, can actually move money. The link opens in the NimBooks app; the payment it produces carries the reference nimbooks:invoice:<id>, which check_request_paid looks for later. Note: inside the link, the payload field amountNim is denominated in Luna by the app’s link format; this tool’s own output reports amountNim in NIM and amountLuna in Luna.
| Name | Type | Req | Description |
|---|---|---|---|
| amountNim | string | yes | Amount in NIM, as a decimal string — "12.5". Up to 5 decimals (1 NIM = 100000 Luna). |
| expiry | string | – | When the request stops being valid: "1h", "24h", "7d", "none" (default), or an ISO 8601 timestamp. |
| id | string | – | Fixed request id, for reproducible links. Generated when omitted. |
| memo | string | – | What the request is for, up to 80 characters. Travels in the link, not on chain. |
| payee | string | – | Address to be paid. Optional; defaults to the server’s configured address. |
No output schema declared.
No examples provided.
draft_stake Draft a stake link ~240
DRAFTS a stake and returns a link only. This never signs anything and never sends anything: the link opens the NimBooks app with the stake panel pre-filled, and you check the amount and validator there and confirm in your own wallet. No validator is recommended, ranked or chosen for you, and there is no default validator. The link is the deliverable, exactly like create_payment_request: nothing is built, broadcast or queued here, and nothing is marked as staked. Notes explain what the app will do with the values, including a cap to the free balance and the 100 NIM first-stake minimum.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | The staker account, used only to read the current delegation and liquid balance for notes. Optional; defaults to the server’s configured address. |
| amountNim | string|number | – | Amount in NIM, decimal, at most 5 decimals. An omitted or invalid amount is left out of the link with a note. |
| validator | string | – | A validator NQ address, or a validator name (exact, or a unique part of the name). There is no default validator. |
No output schema declared.
No examples provided.
get_rewards Staking rewards ~277
Staking rewards for an address over a window: the total (Luna and NIM), the reward days, the first and last reward date, and the breakdown per paying pool, plus an actual yield over the trailing 30 days measured against the current active stake and the current validator's estimate for comparison. Read-only, never signs and never sends. Important: only restaking (compounding) pools show up in this data; a direct-payout pool's rewards arrive as ordinary incoming transactions and are found with list_transactions instead. The public rewards data starts January 2025, so earlier asks come back empty, and it can lag by a day. A year Nimiq Watch did not answer is named in the answer, never silently dropped.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | Nimiq address (NQ form, spaced or flat, or 40 hex characters). Optional; defaults to the server’s configured address. |
| includeDays | boolean | – | Include the per-day reward rows, newest first, at most 400. Default false. |
| since | string | – | Start of the window, YYYY-MM-DD or ISO 8601 (UTC). Default: the start of the public rewards data. |
| until | string | – | End of the window, YYYY-MM-DD or ISO 8601 (UTC). Default: now. |
No output schema declared.
No examples provided.
get_staking Staked position ~170
A Nimiq address's staking position: active staked, inactive (cooling down after an unstake), retired (ready to withdraw) and total, plus the pool it is staked to with its fee, net yield and payout type, an unstake clock (a retire only becomes valid one full epoch after deactivation), and a first-year rewards estimate at the pool's current net yield. Read-only: reads the public chain and the public validators list, never signs and never sends. Never staked reads as staked: false, never as a failed lookup; a failed lookup is an error that says so.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | Nimiq address (NQ form, spaced or flat, or 40 hex characters). Optional; defaults to the server’s configured address. |
No output schema declared.
No examples provided.
get_statement Daily statement ~237
Day-by-day money in and out for a year (or one month of it), priced at the CoinGecko daily close in USD for each UTC day — the same basis the NimBooks tax statement uses. Read-only: never signs, never sends. Failed transactions are excluded and fees are counted on outgoing transactions only. Staking rewards (restaking payouts) are included as in-day income; moving NIM into or out of the staking contract is not a fiat flow, so it is excluded, exactly like the app’s statement. Nimiq Pay’s round trips through its own contracts go in internalInNim/internalOutNim, not in or out, as in the app. Days with no price available come back with closeUsd: null rather than a guess.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | Nimiq address (NQ form, spaced or flat, or 40 hex characters). Optional; defaults to the server’s configured address. |
| month | integer | – | Optional month 1–12. Omit for the whole year. |
| year | integer | yes | Calendar year, UTC — e.g. 2026. |
No output schema declared.
No examples provided.
get_summary Account summary ~269
Balance and money in/out for a Nimiq address over a window. Read-only: never signs, never sends. Defaults to the full history the public index returns (up to 1000 transactions, newest first). Balance is the live account balance now, not the balance at the end of the window; any staked NIM is reported separately because it lives in the staking contract. Money out includes transfers into the staking contract and out of it — the same treatment as the app’s statement; validator rewards arrive through a separate channel and are reported as their own line (rewardsReceivedNim). Nimiq Pay’s round trips through its own contracts are the wallet’s own money and are reported as internalIn/internalOut, not as money in or out, the same split the app makes; netNim counts both.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | Nimiq address — "NQ82 6GYU …", the flat form, or 40 hex characters. Optional; defaults to the server’s configured address. |
| since | string | – | Start of the window, YYYY-MM-DD or ISO 8601 (UTC). Default: no start. |
| until | string | – | End of the window, YYYY-MM-DD or ISO 8601 (UTC). Default: now. |
No output schema declared.
No examples provided.
list_invoices List saved payment requests ~97
Payment requests stored in a NimBooks backup file (the app keeps them on the device; there is no server holding them). Requires the server to be started with --backup <path>. Read-only: the file is never written to, and the cashlink shelf inside it — which holds link private keys — is never opened.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | The account whose requests to list. Optional; defaults to the server’s configured address. |
No output schema declared.
No examples provided.
list_transactions List transactions ~200
Classified transactions for a Nimiq address, newest first. Read-only: never signs, never sends. Each row carries the kind the NimBooks app shows (payment, stake, unstake, reward, swap, vesting), the counterparty, and the memo — a cashlink’s protocol tag reads as "Cashlink" rather than raw bytes, and a `nimbooks:invoice:<id>` memo is the reference that ties a payment to a request.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | Nimiq address (NQ form, spaced or flat, or 40 hex characters). Optional; defaults to the server’s configured address. |
| limit | integer | – | Rows to return. Default 50. |
| since | string | – | Only transactions at or after this date (YYYY-MM-DD or ISO 8601, UTC). |
| until | string | – | Only transactions at or before this date (YYYY-MM-DD or ISO 8601, UTC). |
No output schema declared.
No examples provided.
list_validators Nimiq validator pools ~184
The Nimiq validator pools of the current epoch, ranked neutrally, exactly as the NimBooks app ranks them: producing pools first (those with a reliability score this epoch), best net annual yield first within them, pools that publish no yield last, then the non-producing pools, and the name as the final stable tiebreak. Nothing is pinned first. Read-only: one call to the public validators list, never signs and never sends. netYieldPercent is the net annual yield on the network's total stake after the pool's fee, the Nimiq wallet's convention; it moves as emission falls and as stake moves.
| Name | Type | Req | Description |
|---|---|---|---|
| includeNonProducing | boolean | – | Include pools with no reliability score this epoch (they earn nothing right now). Default true. |
| limit | integer | – | Pools to return, 1 to 50. Default 50. |
No output schema declared.
No examples provided.
project_yield Project staking yield ~302
Projects what staking an amount of NIM might earn, year by year. With an explicit rate it is a pure offline calculation. Read-only, never signs and never sends. Rate resolution, in order: an explicit annualRatePercent, then the named pool's current net yield, then the median of the producing pools. Compounding follows the pool's payout type (direct pools pay out, the rest restake) unless an explicit compound choice is given. Returns per-year rewards, cumulative rewards and balance, plus its assumptions: emission falls along the protocol supply curve, the network's total stake is held at today's level, and it is a projection, not a promise.
| Name | Type | Req | Description |
|---|---|---|---|
| amountNim | string | yes | Amount to stake, in NIM, as a decimal string, e.g. "1000". At most 5 decimals. |
| annualRatePercent | number | – | Explicit annual rate in percent, more than 0 and at most 100. Wins over any pool's or the typical rate, and makes the call work offline. |
| compound | boolean | – | Restake rewards as they arrive (true) or pay them out (false). Default: the pool's payout type, else true. |
| validator | string | – | A pool: its NQ address, exact name, or a unique part of the name (list_validators has them). |
| years | integer | – | Horizon in years, 1 to 10. Default 1. |
No output schema declared.
No examples provided.
How do I install the NimBooks MCP server?
NimBooks runs locally as an npm package, launched with npx -y nimbooks-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · nimbooks-mcp
claude mcp add subimpact-nimbooks-mcp -- npx -y nimbooks-mcp
What is the NimBooks MCP server?
NimBooks is an MCP server listed in the public MCP registry as io.github.subimpact/nimbooks-mcp. Read-only Nimiq books: balances, history, statements, staking, payment and stake links. Never signs. This page covers its npm package (nimbooks-mcp).
Is the NimBooks MCP server safe to use?
NimBooks scores 74 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. 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 NimBooks MCP server expose?
NimBooks exposes 11 tools: get_summary, list_transactions, get_statement, create_payment_request, check_request_paid, and 6 more. Their descriptions and schemas cost roughly 2,373 tokens of context every time the server is loaded.
Is the NimBooks MCP server still maintained?
NimBooks 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 NimBooks MCP server under?
NimBooks declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.