BagOS mark: a transaction packet held at a checkpoint gate

Every AI-initiated  Solana spend:
gated, capped, confirmed on chain.

BagOS — an MCP server with a conscience about money.

$ npx bagos-mcp-server

The problem

An MCP server that can move money hands the model a signing key

The assistant decides, and the transaction is on chain before a human reads about it.

Nothing in the protocol makes the model pause. Nothing bounds what one misunderstood instruction can spend.

The mechanism

Seven stages between an instruction and a signature

Every write goes through this, in order. The model cannot skip a stage — only you can, explicitly, in configuration.

The gate, live

The first call to a write tool signs nothing

⚠️  CONFIRMATION REQUIRED — nothing has been signed or sent.

Action:  Swap 0.05 of So1111…1112
         for       EkJuyY…dBAGS
         expect    4823917722 (min 4679199990)
         slippage  3%
         network   🔴 MAINNET — real funds

Spend:   0.05 SOL
Caps:    0.1 SOL/tx · 0/1 SOL used this session

To execute, call bags_execute_trade again with the identical arguments plus:
  confirm: "kR3nT9xQm2vP"

Why that token is safe

Fingerprinted, single-use, five minutes

What ships

14 tools, and the numbers behind them

14 tools

10 read, 2 gated/write, plus heartbeat and authenticate

212 tests

100% coverage — statements, branches, functions, lines — enforced in CI

v2.0.0

"the write tools actually write" — released 2026-08-15, on npm with SLSA provenance

Registry-listed

Active in the official MCP registry as io.github.edycutjong/bagos

0.1 / 1.0 SOL

Default hard caps per transaction / per session

Devnet default

Writes are mainnet-only; an unconfigured install cannot spend real money

The honest slide

v1.x claimed success for transactions that never existed

The whole thesis of this product is not overclaiming. So:

v1.x had a defect — the write tools built transactions, discarded them, and reported success. v2.0.0 fixes it: success is only reported after the confirmed signature is re-fetched from the chain. Full account in the changelog.

Install

One command, or one config block

# anywhere
npx bagos-mcp-server

# Claude Code
claude mcp add bagos --env BAGS_API_KEY=your-key-here -- npx -y bagos-mcp-server

A Bags API key from dev.bags.fm enables the read tools. Writes stay off until you configure mainnet, a keypair, and the gating token.

Point your assistant at it

$ npx bagos-mcp-server
1 / 9 exit