Skip to main content
Glama
kaspa-script-mcp

kaspa-script-mcp

by DrVelvetFog

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.

Related MCP server: Casper Network MCP Server

Build & run

npm install && npm run build
node dist/selftest.js   # 17 checks
node dist/index.js      # stdio MCP server

Client config (Claude Code / desktop)

{ "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

Available Tools

4 tools
disassemble_scriptA

Disassemble a Kaspa (rusty-kaspa v2.1.0 / Toccata) script from hex into opcodes and data pushes, exactly as the engine's parser walks it. Flags disabled/reserved opcodes and truncated pushes.

Inputs: script_hex (required).

estimate_script_costA

Estimate a Kaspa script's compute cost: script units, compute-mass grams, share of the 500,000-gram block compute limit, and the minimum per-input compute budget to commit. Approximate; use it to size a compute budget before signing and to avoid ExceededCommittedScriptUnits.

Inputs: script_hex (required).

explain_script_errorA

Explain a rusty-kaspa txscript error message (e.g. 'script units exceeded...', 'stack contains N unexpected items', 'ZK Integrity: ...', disabled-opcode, push-encoding errors) in plain terms with a concrete fix.

Inputs: error_text (required).

lookup_opcodeA

Look up a Kaspa opcode by hex code (e.g. '0xa8') or by name (e.g. 'OpSHA256'). Returns code, name, disabled/illegal status.

Inputs: query (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: disassembling scripts, estimating cost, explaining errors, and looking up opcodes. There is no meaningful overlap between any of the four tools.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun snake_case pattern: disassemble_script, estimate_script_cost, explain_script_error, lookup_opcode. This makes the toolset predictable and easy for an agent to navigate.

    Tool Count5/5

    Four tools is an appropriately scoped size for a focused diagnostic utility server. Each tool handles a distinct part of the script analysis workflow without bloat or redundancy.

    Completeness5/5

    The toolset covers the full diagnostic lifecycle for Kaspa scripts: disassembly, cost estimation, error explanation, and opcode reference. There are no obvious dead ends for the server's apparent purpose.

    Maintenance

    ActivityMaintained
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers