Xahau MCP
NPM · XAHAU-MCP
MCP server for the Xahau network — offline Hook WASM VM + static analyzer, read-only ledger tools.
Available components
Last scanned (8 hours ago)
Scores higher than 43% 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 Security80
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known high-severity CVE affects @modelcontextprotocol/sdk 1.29.0, a direct dependency. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- 83 of 197 dependencies flagged as unhealthy (1 deprecated). 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 1 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability84
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 9206 tokens (~102/item across 90 items; 87 tools + 3 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 Management77
- Stability observed for 23 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage80
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 31% of tool parameters carry a description.Partial
- Structured output schemas are declared (32% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "execute_hook" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 88 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.
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.
- 21 Oct 26 +1
- CVE-2026-111768 affects this package: high ▼ security
- CVE-2026-111769 affects this package: high ▼ security
- CVE-2026-111767 affects this package: high ▼ security
- CVE-2026-111771 affects this package: high ▼ security
- 19 Oct 26 +1
- Security disclosure: unverified → fail ▼ functional
- 18 Oct 26 0
- Security disclosure: fail → unverified ▼ functional
- 17 Oct 26 +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.
- 14 Oct 26 +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.
- 12 Oct 26 −2
- CVE-2026-104850 affects this package: high ▼ security
- Known CVEs: partial → fail ▼ security
- CVE-2025-14505 no longer affects this package ▲ security
- 5 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
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 23 Oct 2026 · Analysed npm/xahau-mcp@2.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 →
Vulnerabilities 6 findings
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-22jm-h49p-29qw | CVE-2026-111767 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L | yes |
| GHSA-46jr-4wx8-v453 | CVE-2026-111768 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-6prh-2h8m-c8cw | CVE-2026-111769 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-6qxp-vccf-f47h | CVE-2026-104850 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N | yes |
| GHSA-rvq5-wwqv-78pq | CVE-2026-111771 | medium | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N | yes |
| GHSA-848j-6mx2-7j84 | CVE-2025-14505 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L | no |
Background: What a vulnerability scan can and cannot prove →
Dependencies 197 packages
| Packages resolved | 197 |
|---|---|
| Deprecated | 1 |
| Stale | 83 |
| 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 →
get_fee ~43
Current network transaction fee (base fee in drops + load/queue state) — for building a tx with the right Fee. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
No output schema declared.
No examples provided.
get_hook_definition ~49
Fetch a HookDefinition ledger object by hash (CreateCode WASM, HookOn, fee, reference count). Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| hookHash | string | yes | – |
| network | string | – | – |
No output schema declared.
No examples provided.
get_hook_state ~55
Read Hook State entries for an account namespace (32-byte key→value map). Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | – |
| namespace | string | yes | 32-byte HookNamespace hex |
| network | string | – | – |
No output schema declared.
No examples provided.
get_ledger ~37
Header/summary of a ledger (default the latest validated). Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| ledgerIndex | – | – | – |
| network | string | – | – |
No output schema declared.
No examples provided.
get_transaction ~47
A validated transaction by hash, including Xahau HookExecutions metadata (hook return codes/strings). Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
| txHash | string | yes | – |
No output schema declared.
No examples provided.
governance_state ~115
Genesis Governance Game — FULL live decode of the L1 table's hook state (layout canonical from xahaud hook/genesis/govern.c): all 20 seats and their members, member count, live reward rate/delay, every OPEN VOTE (who voted what, per topic) and every tally with its threshold (membership topics 80% of filled seats, everything else 100%) and whether it's reached. Plus the documented constants + a live genesis-account read. 2 RPC reads.
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
No output schema declared.
No examples provided.
hndl_exposure ~163
Measure an account's Harvest-Now-Decrypt-Later exposure: has its signing PUBLIC KEY been revealed on-ledger, and which key? An r-address is a HASH of the pubkey; the pubkey is exposed only once the account signs a tx. Walks history OLDEST-first and classifies: master (IRREVERSIBLE — master key can't be rotated), regular / multisig (RECOVERABLE — rotate the key), or none (never signed = hash-only, not Shor-actionable). Reports balance-at-risk + honest truncation caveat. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | r-address |
| maxPages | integer | – | history pages to scan (default 6 × 400 tx) |
| network | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | – |
| address | string | – | – |
| balanceAtRiskDrops | string | – | – |
| balanceDrops | string | – | – |
| conclusive | boolean | – | – |
| error | string | – | – |
| exposed | boolean | – | – |
| exposureClass | string | – | – |
| firstExposureLedger | – | – | – |
| masterDisabled | boolean | – | – |
| masterExposed | boolean | – | – |
| multisigExposed | boolean | – | – |
| network | string | – | – |
| note | string | – | – |
| recoverable | – | – | – |
| regularExposed | boolean | – | – |
| scanned | – | yes | – |
| severity | string | – | – |
| signedTxCount | number | – | – |
No examples provided.
hook_api_lookup ~51
Look up a Hook API function: category, exit/guard role, and security hazard metadata. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | e.g. emit, state_set, _g, otxn_field |
No output schema declared.
No examples provided.
hook_diff ~119
Compare two Hook versions (before/after an upgrade): imports/exports added or removed, HookOn changes, size/instruction deltas, and any newly-gained security-sensitive capability (emit, foreign-state write, hook_again, signature verify). Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| afterHookOn | string | – | – |
| afterWasmBase64 | string | – | – |
| afterWasmHex | string | – | – |
| beforeHookOn | string | – | – |
| beforeWasmBase64 | string | – | – |
| beforeWasmHex | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| byteSizeAfter | number | – | – |
| byteSizeBefore | number | – | – |
| byteSizeDelta | number | – | – |
| error | string | – | – |
| exports | object | – | – |
| firesOn | – | – | – |
| guardDelta | number | – | – |
| imports | object | – | – |
| instructionDelta | number | – | – |
| loopDelta | number | – | – |
| newSensitiveCapabilities | array | – | – |
| summary | string | – | – |
No examples provided.
hook_dry_run ~93
Quick STATIC check: does this hook fire on a given transaction type (HookOn match) and what exit calls does its WASM contain? Labelled STATIC_ONLY. For REAL bytecode execution use execute_hook. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| candidateTxType | string | yes | e.g. "Payment" |
| hookOn | string | yes | – |
| wasmBase64 | string | – | – |
| wasmHex | string | – | – |
No output schema declared.
No examples provided.
hook_execution_postmortem ~242
POST-MORTEM a real Xahau transaction's hooks: fetch the tx (with meta.HookExecutions + engine result), then for EACH hook that fired, run its REAL bytecode through the local VM and compare the VM's accept/rollback DIRECTION to what the chain actually recorded. Answers 'why did these hooks accept/rollback, and would the VM agree?'. The on-chain decision is AUTHORITATIVE; the VM run is best-effort and always labeled fidelity=LOCAL_VM. `agree` is null (not false) when the VM run is degraded/halted/no-exit or the on-chain decision is indeterminate (e.g. no CreateCode available) — never scored as a match or miss. Read-only; never signs/submits. Serial rate-limited RPC: 1 `tx` call + 1 `ledger_entry` per UNIQUE HookHash (deduplicated), each >=1100ms apart; tolerates literal 'Rate limited' bodies via the shared client.
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
| txHash | string | yes | Xahau tx hash of the transaction to post-mortem |
No output schema declared.
No examples provided.
hook_report ~108
One-call comprehensive report on a Hook: structure (imports/exports/size/instructions), a plain-English classification of what it does, the full security analysis (SARIF-lite findings + severity summary), HookOn decode, and a fee estimate. Combines inspect + classify + analyze + estimate. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| grants | array | – | – |
| hookOn | string | – | – |
| namespace | string | – | – |
| wasmBase64 | string | – | – |
| wasmHex | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| analysis | object | – | – |
| classification | object | – | – |
| error | string | – | – |
| feeEstimate | object | – | – |
| hookOnDecoded | – | – | – |
| structure | object | – | – |
| verdict | string | – | – |
No examples provided.
inspect_emitted_tx ~90
Decode what a hook's emit() actually built: pass the emitted[] blob hex(es) from an execute_hook result → each decoded to tx JSON + a plain-English 'what it tries to send' summary + danger score (scam rules). Closes the loop on emitter hooks. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| emitted | array | yes | emitted blob hex(es) from execute_hook's `emitted` array |
No output schema declared.
No examples provided.
inspect_hook_wasm ~73
Parse a Hook's CreateCode WASM (hex or base64): imports (Hook API functions), exports (hook/cbak), memory, custom sections, loop and guard(_g) counts. Offline, never executes the module.
| Name | Type | Req | Description |
|---|---|---|---|
| wasmBase64 | string | – | – |
| wasmHex | string | – | – |
No output schema declared.
No examples provided.
list_cron_jobs ~71
List an account's Cron ledger objects — scheduled Hook self-invocations — with decoded StartTime (ISO), DelaySeconds, remaining RepeatCount and an estimated next-fire time. Raw ledger object included per entry. 1 RPC read.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| network | string | – | – |
No output schema declared.
No examples provided.
list_rules ~26
Enumerate the Hook analyzer rule registry (id, severity, title, category). Offline.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
master_pubkey ~95
Derive an account's MASTER public key from the ledger — the SigningPubKey of any self-originated tx whose pubkey hashes to the account's own AccountID. Needed to configure a qkey_guard hook (its MPK param). Returns found=false if the master key has never signed (then the pubkey is not on-ledger). Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| network | string | – | – |
No output schema declared.
No examples provided.
monitor_cron_health ~85
Check an account's Crons for ones nearing exhaustion — remaining RepeatCount at or below a threshold (default 8) — so a recurring governance/game Hook doesn't silently stop. Returns alerts + a healthy flag. 1 RPC read.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| lowThreshold | number | – | warn when remaining repeats ≤ this |
| network | string | – | – |
No output schema declared.
No examples provided.
predict_amendment_activation ~85
Project when amendments now holding majority will enable. For each amendment in the on-ledger Majorities set: when it reached >80% support and its estimated enable time (majority + 5-day Xahau window), with seconds/days remaining. Reads the Amendments singleton — no admin node needed. 1 RPC read.
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| caveat | string | – | – |
| error | string | – | – |
| majorityWindowDays | number | – | – |
| network | string | – | – |
| pending | array | – | – |
| pendingCount | number | – | – |
| summary | string | – | – |
No examples provided.
prepare_transaction ~136
Autofill an unsigned transaction with live network values — Sequence (from the account), Fee (current base fee), LastLedgerSequence (now + offset), and NetworkID — so it's ready to sign OFFLINE. Read-only: fetches values, fills the tx, but NEVER signs or submits. Defaults to TESTNET — pass network:'mainnet' for a mainnet account (else you get a mainnet account's testnet Sequence/NetworkID or actNotFound).
| Name | Type | Req | Description |
|---|---|---|---|
| lastLedgerOffset | number | – | – |
| network | string | – | – |
| tx | object | yes | unsigned tx JSON; must include Account + TransactionType |
No output schema declared.
No examples provided.
quantum_config_census ~140
WHOLE-LEDGER key-rotation posture census via ledger_data (AccountRoot Flags/RegularKey/Balance) — no per-account tx scan, so figures ARE network statistics. Reports % of accounts AND % of XAH supply with: no rotation path (master active + no regular key), master disabled, regular key set. Measures CONFIG (can the master key be retired?), not exposure (hndl_exposure does that). HEAVY + rate-limited; paced. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| delayMs | integer | – | – |
| maxPages | integer | – | – |
| network | string | – | – |
| pageLimit | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| accounts | number | – | – |
| asOfComplete | boolean | – | – |
| caveat | string | – | – |
| error | string | – | – |
| hasRegularKeyCount | number | – | – |
| hasRegularKeyPct | number | – | – |
| masterDisabledCount | number | – | – |
| masterDisabledDrops | string | – | – |
| masterDisabledPct | number | – | – |
| masterDisabledSupplyPct | number | – | – |
| network | string | – | – |
| noRotationCount | number | – | – |
| noRotationDrops | string | – | – |
| noRotationPct | number | – | – |
| noRotationSupplyPct | number | – | – |
| pagesScanned | number | – | – |
| totalDrops | string | – | – |
No examples provided.
quantum_grade ~129
Grade a Xahau account for quantum (HNDL) FUTURE-hardening readiness: master-key-disabled, regular key, multi-sign, and a PROVEN quantum-policy Hook → 0-100 score + tier + recommendations. Framed as hardening, not a safety alarm (a BASELINE account is normal, not unsafe). A hook is credited (+30) ONLY when its exact bytecode (HookHash) matches a registered, formally proven quantum-policy hook; mere hook presence is never scored. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | r-address |
| network | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | – |
| error | string | – | – |
| framing | string | – | – |
| hasProvenQuantumHook | boolean | – | – |
| hookPolicyNote | string | – | – |
| hooks | – | – | – |
| masterDisabled | boolean | – | – |
| provenHook | – | – | – |
| recommendations | array | – | – |
| regularKey | – | – | – |
| score | number | – | – |
| signerList | – | – | – |
| tier | string | – | – |
| tierLabel | string | – | – |
No examples provided.
quantum_scorecard ~181
Network-level Quantum Readiness Scorecard: aggregate HNDL exposure (hndl_exposure) + config grade (quantum_grade) across a SAMPLE of accounts. HONEST SCOPE: a sample of recently-active accounts (or a caller-supplied list), NOT a ledger census — active accounts skew toward exposed, so figures are a sample, not a network %. Reports exposure-class breakdown, balance-at-risk, conclusive-vs-unknown, grade tiers, and top exposed. HEAVY (many RPC reads). Set --markdown for a public-facing report. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| accounts | array | – | explicit account list; omit to sample recently-active accounts |
| cap | integer | – | – |
| markdown | boolean | – | – |
| maxPages | integer | – | – |
| network | string | – | – |
| sampleLedgers | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| attempted | number | – | – |
| balanceAtRiskDrops | string | – | – |
| byExposureClass | – | yes | – |
| byGradeTier | – | yes | – |
| caveat | string | – | – |
| conclusiveCount | number | – | – |
| error | string | – | – |
| exposedCount | number | – | – |
| exposedPct | number | – | – |
| markdown | string | – | – |
| masterExposedBalanceDrops | string | – | – |
| masterExposedCount | number | – | – |
| masterExposedPct | number | – | – |
| network | string | – | – |
| originatorSample | boolean | – | – |
| population | string | – | – |
| provenQuantumHookCount | number | – | – |
| rows | – | yes | – |
| sampled | number | – | – |
| skipped | number | – | – |
| topExposedByBalance | – | yes | – |
| totalBalanceDrops | string | – | – |
| unknownCount | number | – | – |
No examples provided.
reward_status ~130
Balance Adjustment doctor — the full answer to Xahau's most common retail question: is this account opted in to network rewards, how much XAH is accrued (EXACT genesis reward-hook formula — reward.c — with live RR/RD read from genesis hook state), when can it next claim, and is the claim overdue (late claiming forfeits yield — the hook pays the per-claim rate once regardless of wait). Returns an unsigned opt-in or claim ClaimReward when applicable. Read-only; 3 serial RPC reads.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | r-address |
| network | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| accrual | – | – | – |
| address | string | – | – |
| balanceXah | – | – | – |
| eligibility | – | – | – |
| error | string | – | – |
| fields | – | – | – |
| network | string | – | – |
| notes | array | – | – |
| optedIn | boolean | – | – |
| params | object | – | – |
| summary | string | – | – |
| unsignedTx | – | – | – |
| unsignedTxPurpose | – | – | – |
| warnings | array | – | – |
No examples provided.
ripple_time ~66
Convert between Ripple time (seconds since 2000-01-01), Unix time, and ISO 8601. Xahau tx/ledger timestamps use Ripple time. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| iso | string | – | – |
| ripple | number | – | – |
| unix | number | – | – |
No output schema declared.
No examples provided.
scaffold_hook ~127
Generate a starter Xahau Hook in C for a stated intent (accept_all, firewall, payment_limit, require_dest_tag, state_counter, notary) — structurally valid (hook() entry, _g guards, accept/rollback) with build instructions. A STARTING POINT to compile + then verify with analyze_hook/execute_hook before deploying. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| archetype | string | yes | – |
| blockTxType | string | – | for firewall: tx type to reject, e.g. Payment |
| maxDrops | string | – | for payment_limit: max native drops to allow |
No output schema declared.
No examples provided.
scam_check ~166
Score a sign request (txjson or raw tx_blob hex) for risky patterns BEFORE signing: returns dangerScore 0-100, a SAFE/CAUTION/DANGER tier, a plain-English verdict, and per-rule findings (SetHook, AccountDelete-to-other, regular-key/signer-list changes, very large native payment, no-expiry replay risk, pre-signed blob). Offline + read-only. HONESTY: every finding is a POTENTIAL risk, NOT a confirmed scam — this tool does NOT consult any block list and NEVER verifies on-chain whether an address is malicious; it reads the transaction shape only. DANGER is reserved for near-universally-malicious/irreversible patterns.
| Name | Type | Req | Description |
|---|---|---|---|
| txBlobHex | string | – | – |
| txjson | object | – | – |
No output schema declared.
No examples provided.
simulate_hook_trigger ~115
Statically predict which accounts' hooks a transaction WOULD invoke (transactional stakeholders), with strong (can rollback) vs weak (runs, can't rollback) roles — from the tx fields alone, no bytecode run and no ledger read. For tx types whose stakeholders require ledger-object lookups it returns a `partial` flag rather than guessing. For a full prediction that runs the real hook bytecode against live state, use simulate_transaction. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| tx | object | yes | transaction JSON (needs at least TransactionType + Account) |
No output schema declared.
No examples provided.
simulate_transaction ~250
THE PRE-SIGN FLIGHT SIMULATOR — predict what Xahau will do with an UNSIGNED transaction before you sign it. Every hook the tx would trigger (originator chain first, then strong/weak transactional stakeholders — order canonical from xahaud Transactor.cpp/applyHook.cpp) runs as REAL bytecode against LIVE ledger state in the local VM (measured 100% agreement on 30 real mainnet hook executions — all accept-direction; rollback direction proven separately on real genesis bytecode). Reports per-hook accept/rollback + return strings, simulated state writes, decoded emitted transactions, labeled STATIC engine preflights (sequence/balance/destination/expiry), an APPROXIMATE transactor prediction (the stand-in for Xahau's missing `simulate` RPC — predicted engine_result + balance/reserve/trustline deltas for Payment/TrustSet against live state, labeled APPROXIMATE; other tx types UNSUPPORTED), and a scam score. Never signs, never submits. Slow but thorough (iterative state resolution, ~1.1s per read).
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
| tx | object | yes | unsigned transaction JSON (TransactionType, Account, ...) |
| Name | Type | Req | Description |
|---|---|---|---|
| baseTxHash | string | – | – |
| caveat | string | – | – |
| error | string | – | – |
| historical | boolean | – | – |
| hookRuns | array | – | – |
| ledgerIndex | number | – | – |
| notes | array | – | – |
| overriddenFields | array | – | – |
| scamScore | – | – | – |
| staticChecks | array | – | – |
| summary | string | – | – |
| transactor | – | – | – |
| verdict | string | – | – |
No examples provided.
trace_transaction_stakeholders ~97
Every account a transaction touched, from its metadata (AffectedNodes). Because the Touch amendment forces all transactional stakeholders into metadata — even ones nothing else changed for — this is the authoritative participant list, not a guess from tx fields. Returns each account with its roles, the ledger entry types it appeared in, and whether it materially changed. 1 RPC read.
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
| txHash | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | string | – | – |
| metaPresent | boolean | – | – |
| network | string | – | – |
| note | string | – | – |
| originator | – | – | – |
| stakeholderCount | number | – | – |
| stakeholders | array | – | – |
| summary | string | – | – |
| txHash | string | – | – |
No examples provided.
validate_address ~46
Validate a Xahau/XRPL address (classic r-address or X-address) → type, account-id, embedded destination tag, network. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | – |
| classicAddress | string | – | – |
| error | string | – | – |
| network | string | – | – |
| reason | string | – | – |
| tag | – | – | – |
| type | string | – | – |
| valid | boolean | – | – |
No examples provided.
verify_double_threading ~96
Structural audit of a transaction's metadata threading — lists each affected ledger object's PreviousTxnID / PreviousTxnLgrSeq and flags the duplicate-node symptom that fixProvisionalDoubleThreading addressed (a single ledger object touched by more than one AffectedNodes entry). Metadata-only check; does not walk the full cross-ledger thread. 1 RPC read.
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
| txHash | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| affectedNodeCount | number | – | – |
| anomalies | array | – | – |
| caveat | string | – | – |
| consistent | boolean | – | – |
| entries | array | – | – |
| error | string | – | – |
| network | string | – | – |
| summary | string | – | – |
| txHash | – | – | – |
| uniqueLedgerObjects | number | – | – |
No examples provided.
vm_fidelity_report ~184
HONEST FIDELITY METRIC: measures how faithfully the local Hook VM reproduces what REALLY happened on Xahau mainnet. Loads a committed corpus (data/hook-corpus.json) of real validated transactions whose metadata carried HookExecutions, runs each hook's real bytecode through the local VM, and compares the VM's accept/rollback DIRECTION to the on-chain HookResult. The agreement % is computed ONLY over COMPARABLE (non-degraded, scoreable) runs; degraded/halted/indeterminate runs are reported separately and EXCLUDED — never counted as a match. Strictly offline; reads no network. If the corpus is empty/tiny it says 'insufficient corpus' rather than print an unsupported number.
| Name | Type | Req | Description |
|---|---|---|---|
| includeMismatches | boolean | – | include the per-mismatch list (txHash/vmExit/onChainResult) |
| Name | Type | Req | Description |
|---|---|---|---|
| agreementPct | – | – | – |
| agreements | number | – | – |
| comparable | number | – | – |
| composition | – | – | – |
| coverageWarning | – | – | – |
| degradedCount | number | – | – |
| error | string | – | – |
| headline | string | – | – |
| insufficient | boolean | – | – |
| mismatches | array | – | – |
| perHook | array | – | – |
| total | number | – | – |
No examples provided.
what_if ~134
TIME MACHINE — counterfactual replay of a REAL historical transaction: fetch it by hash, apply your field overrides (different Amount, Destination, params, ...), then run the full flight simulator AT THAT HISTORICAL LEDGER (hooks, state and parameters as they were). Answers 'what would have happened if this tx had been X?'. Read-only; nothing is signed or submitted.
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
| overrides | object | – | fields to change on the tx before re-simulating (e.g. {"Amount": "99000000"}) |
| txHash | string | yes | real validated transaction hash |
| Name | Type | Req | Description |
|---|---|---|---|
| baseTxHash | string | – | – |
| caveat | string | – | – |
| error | string | – | – |
| historical | boolean | – | – |
| hookRuns | array | – | – |
| ledgerIndex | number | – | – |
| notes | array | – | – |
| overriddenFields | array | – | – |
| scamScore | – | – | – |
| staticChecks | array | – | – |
| summary | string | – | – |
| transactor | – | – | – |
| verdict | string | – | – |
No examples provided.
xaddress ~67
Encode a classic address + destination tag into an X-address, or decode an X-address back to classic + tag. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | classic r-address (to encode) or X-address (to decode) |
| tag | number | – | – |
| test | boolean | – | – |
No output schema declared.
No examples provided.
xah_amount ~42
Convert between XAH and drops (1 XAH = 1,000,000 drops). Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | yes | – |
| value | – | yes | – |
No output schema declared.
No examples provided.
xahau_server_info ~42
Health, version, amendments and ledger range of a Xahau node (mainnet or testnet). Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
No output schema declared.
No examples provided.
How do I install the Xahau MCP server?
Xahau MCP runs locally as an npm package, launched with npx -y xahau-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 · xahau-mcp
claude mcp add hugegreencandle-xahau-mcp -- npx -y xahau-mcp
What is the Xahau MCP server?
Xahau MCP is listed in the public MCP registry as io.github.Hugegreencandle/xahau-mcp. MCP server for the Xahau network, offline Hook WASM VM + static analyzer, read-only ledger tools. This page covers its npm package (xahau-mcp).
Is the Xahau MCP server safe to use?
Xahau MCP scores 74 out of 100 on VerifyMCP. We recorded 6 known advisories against it as of 23 October 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 Xahau MCP server expose?
Xahau MCP exposes 87 tools: xahau_server_info, get_account_info, get_account_objects, get_account_hooks, get_hook_definition, and 82 more. Their descriptions and schemas cost roughly 9,127 tokens of context every time the server is loaded.
Is the Xahau MCP server still maintained?
Xahau MCP is still listed as active in the MCP registry. We last reached this channel on 23 October 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 Xahau MCP server under?
Xahau MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.