Your books, answerable in plain language. The assistant can't spend a single Luna.
nimbooks-mcp is a small Model Context Protocol server that runs on your own machine. Point an AI assistant at it and your Nimiq books become answerable in ordinary sentences: balances, classified history, day-by-day statements priced at each day's close. It can also draft a payment request and hand you back the link. Six tools, about 1,600 lines, no account to create.
It never signs, it holds no key material, and no server of ours is involved: it reads the public chain and your local backup file, over two network endpoints in total.
create_payment_request returns a link. Only the payer's wallet can move money, and only when its owner approves it there.nimbooks.subimpact.net. Three hosts, all public Nimiq infrastructure: rpc.nimiqwatch.com for the chain, v2.nimiqwatch.com for staking rewards (the same analytics API the app reads), and api.coingecko.com for daily prices. That is the whole network surface.One command, nothing to clone or build:
npx -y nimbooks-mcp --help
Prefer to build it yourself, or to read every line before you run it:
git clone https://github.com/subimpact/nimbooks cd nimbooks/mcp npm install npm run build
Then register it with your assistant. Claude Code:
claude mcp add nimbooks -- npx -y nimbooks-mcp \ --address "YOUR_NQ_ADDRESS"
Claude Desktop: Settings, then Developer, then Edit Config, and add the server to claude_desktop_config.json:
{
"mcpServers": {
"nimbooks": {
"command": "npx",
"args": [
"-y", "nimbooks-mcp",
"--address", "YOUR_NQ_ADDRESS"
]
}
}
}
Built from source instead? Swap npx -y nimbooks-mcp for node /absolute/path/to/nimbooks/mcp/dist/index.js in either config.
Restart the client and the six tools appear. --address is the account used when a question does not name one; every tool also takes an address of its own. Add --backup /path/to/nimbooks-backup.json if you want it to see the payment requests your app keeps on the device: that file holds cashlink keys, so keep it as carefully as a wallet. The server discards that part of it at the door.