
kaspa-script-mcp
io.github.DrVelvetFog/kaspa-script-mcp
Disassemble Kaspa script hex, estimate compute cost, explain txscript errors, look up opcodes.
Documentation
kaspa-script-mcp
An MCP server with tooling for Kaspa's Toccata-era script/covenant layer. Pure
TypeScript, no node or SDK dependency at runtime — the opcode table and pricing
constants are generated from rusty-kaspa v2.1.0 (commit 01b532e).
Tools
- disassemble_script — hex → opcodes + data pushes, the way the engine's parser walks it; flags disabled/reserved opcodes and truncated pushes.
- estimate_script_cost — approximate script units, compute-mass grams, share of the 500,000-gram block compute limit, and the minimum per-input compute budget to commit. Size a budget before signing to avoid
ExceededCommittedScriptUnits. - explain_script_error — plain-language explanation + fix for txscript errors (metering, stack, opcode, push-encoding, ZK integrity).
- lookup_opcode — by hex code or name.
Install
No build needed. Add it to your MCP client (Claude Code, Claude Desktop, Cursor, VS Code):
{ "mcpServers": { "kaspa-script": { "command": "npx", "args": ["-y", "kaspa-script-mcp"] } } }
In Claude Code: claude mcp add kaspa-script -- npx -y kaspa-script-mcp
Build from source
npm install && npm run build
node dist/selftest.js # 17 checks
node dist/index.js # stdio MCP server
To run a local build instead, point the client at it:
{ "mcpServers": { "kaspa-script": { "command": "node", "args": ["<path>/kaspa-script-mcp/dist/index.js"] } } }
Scope & honesty
estimate_script_cost is an estimate of the dominant charges (per-byte, pushed
bytes, hash opcodes, fixed ZK costs), not the consensus value; ZK per-public-input
VK pricing isn't fully derivable statically and is flagged in the output. The
opcode table and constants are pinned to a specific rusty-kaspa commit; regenerate
on consensus changes.
License
MIT
kaspa-script-mcpnpm install kaspa-script-mcp