Skip to main content
Glama
rainaajay

Setu MCP Server

by rainaajay

Setu

A post-blockchain settlement prototype: Byzantine fault-tolerant payments without consensus, blocks, mining, or fees — finality in one network round trip. Based on the FastPay/pod/ABC line of research; see SPEC.md for the design and the evidence behind every choice.

Live network

Four authorities run on Fly.io in London, Frankfurt, Washington DC and Singapore (setu-auth-1..4.fly.dev; committee in committee-prod.json, public keys only — private keys are Fly secrets). Payments from a laptop settle in ~200 ms:

$env:SETU_COMMITTEE = "$PWD\committee-prod.json"   # PowerShell
node src/wallet.ts new me
node src/wallet.ts fund me 1000        # devnet-style genesis; endpoint is demo-only
node src/wallet.ts pay me <to> 100
node src/wallet.ts balance me          # as seen by each of the 4 authorities

Each authority app runs exactly one machine (an authority is a single logical signer — Fly's default 2-machine HA split one authority's state in two and broke quorum funding; fly scale count 1 is part of the deploy procedure). State is durable: each authority mounts a Fly volume at /data (SETU_STATE_DIR=/data) and writes it crash-safely (atomic temp+rename with a .bak generation), so state survives process and machine restarts — verified. Redeploy: flyctl deploy . -c deploy/auth-N/fly.toml --dockerfile Dockerfile --remote-only. First-time volume setup: flyctl volumes create setu_data --app setu-auth-N --region <r> --size 1.

Related MCP server: remit.md MCP Server

Use it from an AI agent (MCP)

Setu ships an MCP server so any MCP-speaking agent (Claude Desktop, Claude Code, …) can hold a wallet, pay other agents, and charge for its own services — no Setu-specific code. See packages/setu-mcp. One line of client config:

{ "mcpServers": { "setu": { "command": "node", "args": ["<path>/packages/setu-mcp/server.ts"] } } }

Run locally

Requires Node ≥ 23.6 (native TypeScript). Zero dependencies.

node src/devnet.ts      # persistent local devnet (state in ./state), then use wallet.ts
node src/bench.ts       # throughput benchmark: 423 TPS, p50 223 ms under full load (one laptop)
node src/chain-bench.ts # chained-spend benchmark: can Bob immediately spend money he just
                        # received? 280/280 chained spends first-try, no extra sync delay,
                        # survives an authority failure (localhost)
node src/chain-bench-wan.ts # same, against the LIVE 4-region network: 48/48 chained spends
                        # first-try, ~183 ms/hop, no extra delay over a fresh payment
node src/demo.ts        # v0:   Plane 1 in-process, simulated latency
node src/demo-live.ts   # v0.2: Plane 1, 4 authorities as real OS processes over localhost HTTP
node src/demo-trust.ts  # v0.3: Plane 2, committee-less P2P trust layer (BFT hash-DAG CRDT)
node src/demo-allowance.ts # server-enforced delegated budgets: authorities track cumulative
                        # spend, per-payment cap, and revocation — a signed credential alone
                        # cannot be over-spent or double-presented across merchants
node src/demo-issuer.ts # what a unit IS: a closed-loop Credit issued from a fixed-supply
                        # Treasury (every unit traces to the issuer; supply conserved). See CREDITS.md

Plane 1 demos prove: one-round-trip finality (~4ms over real sockets), liveness with an authority process killed mid-flight, double-spend impossibility, safety against a Byzantine authority, and fee-less anti-spam via per-account rate limits.

The Plane 2 demo proves: P2P convergence with no committee or server, offline-first catch-up, forged/tampered ops rejected by every honest peer, equivocation unable to split the network, and attester-only revocation.

Layout

  • src/crypto.ts — ed25519 + canonical serialization; the post-quantum swap seam

  • src/types.ts — orders, signatures, certificates

  • src/network.ts — network abstraction (v0: in-process with simulated latency)

  • src/authority.ts — the protocol core: first-seen locking, quorum settlement, rate limiting; plus an equivocating authority for adversarial demos

  • src/client.ts — wallet: broadcast order → collect quorum → certificate = finality

  • src/keygen.ts, src/authority-server.ts, src/httpNetwork.ts — v0.2 multi-process deployment

  • src/trust/op.ts, src/trust/peer.ts — Plane 2: signed content-addressed ops in a hash-DAG; local-first peers that gossip and converge

  • src/demo.ts, src/demo-live.ts, src/demo-trust.ts — the adversarial scenario suites

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    F
    maintenance
    Enables AI agents to perform financial transactions such as direct payments, escrows, and bounty management using natural language with zero code integration. It provides a comprehensive suite of tools for fund streaming, subscriptions, and reputation tracking to facilitate secure agent-to-agent commerce.
    Last updated
    29
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to manage USDC wallets on Solana, allowing them to send payments, create invoices, and access paid APIs within human-defined spending limits. It uses threshold signatures to provide agents with financial autonomy while ensuring secure oversight and transaction approval.
    Last updated
    6
    36
    44
    3
    Apache 2.0

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rainaajay/setu'

If you have feedback or need assistance with the MCP directory API, please join our Discord server