Skip to content

Brük — verified XRP Ledger answers

by brukledger.com · remote · no sign-in to list tools · v0.8.0 · published by com.brukledger

Verified XRP Ledger answers with proof: payment, send, and issuer checks. Pay per call via x402.

Final · 6Changes · 6

14 tools: 6 do something that can't be undone, 6 change things and 2 only read.

Scanned Oct 21, 2026

6 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http bruk https://bruk-agent-api.fly.dev/mcp

Findings

Matches of fixed checks, with the text they matched.

6 warn
  • The server marks "payment_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "payment_check" says "payment": a word that usually means money moves, which cannot be taken back.

    What this check looks for
  • The server marks "large_payments" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "large_payments" says "payment": a word that usually means money moves, which cannot be taken back.

    What this check looks for
  • The server marks "send_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "send_check" says "send": a word for sending, and what is sent cannot be taken back.

    What this check looks for
  • The server marks "receipt_card" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The input carries an amount (input.amount) and a currency, so it moves money.

    What this check looks for
  • The server marks "free_send_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "free_send_check" says "send": a word for sending, and what is sent cannot be taken back.

    What this check looks for
  • The server marks "token_types" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true}; The name "token_types" says "type": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

14 tools

Can't be undone 6Claude Code: ask
  • free_send_checkFree, one per user per day.1 finding

    Why it is in this group

    • The name "free_send_check" says "send": a word for sending, and what is sent cannot be taken back.
    • The input carries an amount (input.amount) and a currency, so it moves money.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "free_send_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "free_send_check" says "send": a word for sending, and what is sent cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Free, one per user per day. Before sending XRP or a token on the XRP Ledger: will the payment fail (missing destination tag, unfunded or deleted account, no trust line, wrong issuer) and what should you double-check? Returns the verdict, blockers, and cautions from a validated ledger. The paid send_check adds the full evidence and has no daily limit.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • large_paymentsLists large XRP Ledger payments (50,000+ XRP or major stablecoins) in a recent window of up to 120 minutes, each independently re-checked on the ledger, with an explicit note when …1 finding

    Why it is in this group

    • The name "large_payments" says "payment": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "large_payments" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "large_payments" says "payment": a word that usually means money moves, which cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Lists large XRP Ledger payments (50,000+ XRP or major stablecoins) in a recent window of up to 120 minutes, each independently re-checked on the ledger, with an explicit note when the window is not fully covered. Useful for market and liquidity monitoring. The first call each day returns the real answer without payment. After that, about $0.02 via x402 (USDC on Base, or XRP / RLUSD on the XRP Ledger). A payment watch is paid from the first call. Bad input and ledger outages are never charged.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • payment_checkVerifies that an XRP Ledger payment settled as expected: validation, result code, destination, destination tag, currency, issuer, and the amount actually delivered, which exposes p…1 finding

    Why it is in this group

    • The name "payment_check" says "payment": a word that usually means money moves, which cannot be taken back.
    • The input carries an amount (input.amount) and a currency, so it moves money.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "payment_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "payment_check" says "payment": a word that usually means money moves, which cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Verifies that an XRP Ledger payment settled as expected: validation, result code, destination, destination tag, currency, issuer, and the amount actually delivered, which exposes partial-payment tricks. Useful when confirming that a customer or counterparty really paid. The first call each day returns the real answer without payment. After that, about $0.01 via x402 (USDC on Base, or XRP / RLUSD on the XRP Ledger). A payment watch is paid from the first call. Bad input and ledger outages are never charged.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • payment_watchPayment arrival alert: watches an XRP Ledger address for up to 24 hours and POSTs a signed webhook when a matching payment is final (validated, tesSUCCESS, delivered amount checked…No findings

    Why it is in this group

    • The name "payment_watch" says "payment": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    Payment arrival alert: watches an XRP Ledger address for up to 24 hours and POSTs a signed webhook when a matching payment is final (validated, tesSUCCESS, delivered amount checked), or a watch.expired event if none arrives. Payments that land during restarts are still caught. Useful when waiting on an incoming payment without polling. The first call each day returns the real answer without payment. After that, about $0.05 via x402 (USDC on Base, or XRP / RLUSD on the XRP Ledger). A payment watch is paid from the first call. Bad input and ledger outages are never charged.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: true
  • receipt_cardVerified payment receipt image (1200x675 PNG) for an XRP Ledger payment, drawn only from the validated ledger: delivered amount, sender, recipient, destination tag, ledger, close t…1 finding

    Why it is in this group

    • The input carries an amount (input.amount) and a currency, so it moves money.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "receipt_card" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The input carries an amount (input.amount) and a currency, so it moves money.

      What this check looks for
    Description, as the server wrote it
    Verified payment receipt image (1200x675 PNG) for an XRP Ledger payment, drawn only from the validated ledger: delivered amount, sender, recipient, destination tag, ledger, close time, result, optional expectation checks, and a QR code to the public explorer. Only final outcomes are drawn; not-found or unvalidated transactions are not charged. Useful for showing a person proof that a payment arrived. The first call each day returns the real answer without payment. After that, about $0.02 via x402 (USDC on Base, or XRP / RLUSD on the XRP Ledger). A payment watch is paid from the first call. Bad input and ledger outages are never charged.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • send_checkPre-send check for an XRP Ledger payment: whether the destination is activated, requires a destination tag, blocks or pre-approves senders, can hold the token (trust line, or MPT o…1 finding

    Why it is in this group

    • The name "send_check" says "send": a word for sending, and what is sent cannot be taken back.
    • The description says "irreversible".
    • The input carries an amount (input.amount) and a currency, so it moves money.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "send_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "send_check" says "send": a word for sending, and what is sent cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Pre-send check for an XRP Ledger payment: whether the destination is activated, requires a destination tag, blocks or pre-approves senders, can hold the token (trust line, or MPT opt-in and issuer approval), is blackholed, and whether the source can afford it. For a multi-purpose token, pass mpt_issuance_id instead of currency and issuer. Returns ok_to_send, send_with_caution, or will_fail with reasons. Useful before any irreversible XRP Ledger payment. The first call each day returns the real answer without payment. After that, about $0.005 via x402 (USDC on Base, or XRP / RLUSD on the XRP Ledger). A payment watch is paid from the first call. Bad input and ledger outages are never charged.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
Changes things 6Claude Code: ask
  • issuer_checkChecks whether an XRP Ledger token issuer is who it claims to be: two-way domain verification (on-ledger Domain field against the domain's xrp-ledger.toml), tokens issued and outst…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Checks whether an XRP Ledger token issuer is who it claims to be: two-way domain verification (on-ledger Domain field against the domain's xrp-ledger.toml), tokens issued and outstanding, and control flags such as freeze, clawback, blackholed, and multisign. Useful before accepting or holding a token. The first call each day returns the real answer without payment. After that, about $0.01 via x402 (USDC on Base, or XRP / RLUSD on the XRP Ledger). A payment watch is paid from the first call. Bad input and ledger outages are never charged.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • learn_about_brukFree.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Free. Brük's site, its short film about the XRP Ledger (chapters, transcript, captions), and the credit line for quoting it.

    Annotations the server declares

    • readOnlyHint: true
  • ledger_momentLedger moment image (1200x675 PNG): one validated XRP Ledger ledger drawn as one tile per transaction in ledger order, colored by type (payments, DEX offers, trust lines, AMM, NFTs…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Ledger moment image (1200x675 PNG): one validated XRP Ledger ledger drawn as one tile per transaction in ledger order, colored by type (payments, DEX offers, trust lines, AMM, NFTs, other), failed transactions hollow, with counts, fees burned, XRP supply, and the ledger hash. Latest validated ledger by default. Useful for posts, reports, and newsletters about network activity. The first call each day returns the real answer without payment. After that, about $0.02 via x402 (USDC on Base, or XRP / RLUSD on the XRP Ledger). A payment watch is paid from the first call. Bad input and ledger outages are never charged.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • ledger_pulseXRP Ledger network health right now: latest validated ledger, close time, transactions and payments in it, fee levels, load, and rolling averages cross-checked against a direct led…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    XRP Ledger network health right now: latest validated ledger, close time, transactions and payments in it, fee levels, load, and rolling averages cross-checked against a direct ledger read. Useful before submitting XRP Ledger transactions or when reporting current network conditions. The first call each day returns the real answer without payment. After that, about $0.001 via x402 (USDC on Base, or XRP / RLUSD on the XRP Ledger). A payment watch is paid from the first call. Bad input and ledger outages are never charged.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • token_checkIdentifies one XRP Ledger token from the validated ledger: a trust-line token (currency code plus issuer) or a multi-purpose token (48-hex issuance id).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Identifies one XRP Ledger token from the validated ledger: a trust-line token (currency code plus issuer) or a multi-purpose token (48-hex issuance id). Reports the type, issuer domain check, supply, and controls that can freeze, lock, claw back, or restrict holders. Issuer-written metadata is quoted and is not treated as fact; a missing asset class is reported missing. Does not check other chains, and does not rate legal backing or solvency. Useful before accepting an MPT or any other token. The first call each day returns the real answer without payment. After that, about $0.01 via x402 (USDC on Base, or XRP / RLUSD on the XRP Ledger). A payment watch is paid from the first call. Bad input and ledger outages are never charged.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • token_typesFree guide, not a live check.1 finding

    Why it is in this group

    • The name "token_types" says "type": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "token_types" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The name "token_types" says "type": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Free guide, not a live check. Which XRP Ledger token types Brük can identify, how to pass an MPT issuance id, and which other chains Brük does not read.

    Annotations the server declares

    • readOnlyHint: true
Only reads 2Claude Code: allow
  • get_sampleFree.No findings

    Why it is in this group

    • The name "get_sample" says "get": a word for reading.
    Description, as the server wrote it
    Free. Returns a recent real answer from a Brük service (cached up to 5 minutes) so you can see the format before paying.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • list_servicesFree.No findings

    Why it is in this group

    • The name "list_services" says "list": a word for reading.
    Description, as the server wrote it
    Free. Lists every Brük service with price, inputs, and its HTTP endpoint.

    Annotations the server declares

    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.8.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http bruk https://bruk-agent-api.fly.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__bruk__list_services",
      "mcp__bruk__get_sample"
    ],
    "ask": [
      "mcp__bruk__ledger_pulse",
      "mcp__bruk__payment_check",
      "mcp__bruk__issuer_check",
      "mcp__bruk__token_check",
      "mcp__bruk__large_payments",
      "mcp__bruk__send_check",
      "mcp__bruk__payment_watch",
      "mcp__bruk__receipt_card",
      "mcp__bruk__ledger_moment",
      "mcp__bruk__free_send_check",
      "mcp__bruk__token_types",
      "mcp__bruk__learn_about_bruk"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as bruk. Review it before you use it.