Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

BagOS

by edycutjongversion 3.0.7i★ –iRuns on your computer
Registry nameio.github.edycutjong/bagos

Install

Overview

Description from the maker (original English)

MCP server for Bags on Solana: token analytics, trade quotes, and gated write operations.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Marketing & social media
  • You need to fill in: BAGS_API_KEY, SOLANA_RPC_URL

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: BAGS_API_KEY, BAGS_NETWORK, SOLANA_RPC_URL, BAGS_KEYPAIR_PATH, BAGS_MAX_SOL_PER_TX, BAGS_MAX_SOL_PER_SESSION, BAGS_ALLOW_UNCONFIRMED, BOS_TOKEN_MINT, BOS_REQUIRED_BALANCE, BAGS_ALLOW_UNCAPPED_TOKEN_SWAPS, USE_MOCK_DATA

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "bagos": {
      "command": "npx",
      "args": [
        "-y",
        "bagos-mcp-server"
      ],
      "env": {
        "BAGS_API_KEY": "your-value",
        "BAGS_NETWORK": "your-value",
        "SOLANA_RPC_URL": "your-value",
        "BAGS_KEYPAIR_PATH": "your-value",
        "BAGS_MAX_SOL_PER_TX": "your-value",
        "BAGS_MAX_SOL_PER_SESSION": "your-value",
        "BAGS_ALLOW_UNCONFIRMED": "your-value",
        "BOS_TOKEN_MINT": "your-value",
        "BOS_REQUIRED_BALANCE": "your-value",
        "BAGS_ALLOW_UNCAPPED_TOKEN_SWAPS": "your-value",
        "USE_MOCK_DATA": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add bagos --env BAGS_API_KEY=your-value --env BAGS_NETWORK=your-value --env SOLANA_RPC_URL=your-value --env BAGS_KEYPAIR_PATH=your-value --env BAGS_MAX_SOL_PER_TX=your-value --env BAGS_MAX_SOL_PER_SESSION=your-value --env BAGS_ALLOW_UNCONFIRMED=your-value --env BOS_TOKEN_MINT=your-value --env BOS_REQUIRED_BALANCE=your-value --env BAGS_ALLOW_UNCAPPED_TOKEN_SWAPS=your-value --env USE_MOCK_DATA=your-value -- npx -y bagos-mcp-server

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "bagos": {
      "command": "npx",
      "args": [
        "-y",
        "bagos-mcp-server"
      ],
      "env": {
        "BAGS_API_KEY": "your-value",
        "BAGS_NETWORK": "your-value",
        "SOLANA_RPC_URL": "your-value",
        "BAGS_KEYPAIR_PATH": "your-value",
        "BAGS_MAX_SOL_PER_TX": "your-value",
        "BAGS_MAX_SOL_PER_SESSION": "your-value",
        "BAGS_ALLOW_UNCONFIRMED": "your-value",
        "BOS_TOKEN_MINT": "your-value",
        "BOS_REQUIRED_BALANCE": "your-value",
        "BAGS_ALLOW_UNCAPPED_TOKEN_SWAPS": "your-value",
        "USE_MOCK_DATA": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "bagos": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "bagos-mcp-server"
      ],
      "env": {
        "BAGS_API_KEY": "your-value",
        "BAGS_NETWORK": "your-value",
        "SOLANA_RPC_URL": "your-value",
        "BAGS_KEYPAIR_PATH": "your-value",
        "BAGS_MAX_SOL_PER_TX": "your-value",
        "BAGS_MAX_SOL_PER_SESSION": "your-value",
        "BAGS_ALLOW_UNCONFIRMED": "your-value",
        "BOS_TOKEN_MINT": "your-value",
        "BOS_REQUIRED_BALANCE": "your-value",
        "BAGS_ALLOW_UNCAPPED_TOKEN_SWAPS": "your-value",
        "USE_MOCK_DATA": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • BAGS_API_KEY secret required env
    Bags API key from dev.bags.fm. Required for all tools.
  • BAGS_NETWORK env
    Solana cluster: devnet (default) or mainnet. Writes on mainnet move real funds.
  • SOLANA_RPC_URL secret env
    Custom Solana RPC endpoint. Defaults to the public RPC for BAGS_NETWORK.
  • BAGS_KEYPAIR_PATH env
    Path to a Solana keypair JSON file. Only required for write tools.
  • BAGS_MAX_SOL_PER_TX env
    Hard cap on SOL spent by any single transaction. Default 0.1.
  • BAGS_MAX_SOL_PER_SESSION env
    Hard cap on total SOL spent across one server session. Default 1.0.
  • BAGS_ALLOW_UNCONFIRMED env
    Set true to skip the two-step confirmation on writes. Default false.
  • BOS_TOKEN_MINT env
    Mint address of the BOS token used for gating write tools.
  • BOS_REQUIRED_BALANCE env
    Minimum BOS balance required to call write tools. Default 10000.
  • BAGS_ALLOW_UNCAPPED_TOKEN_SWAPS env
    Permit non-SOL-input swaps, which the SOL-denominated caps cannot limit.
  • USE_MOCK_DATA env
    Makes bags_get_claimable_fees return fabricated data instead of calling the API. Default false.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account edycutjong, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Marketing & social mediai

  • More stars than 0% of the other 2976 servers in this category
  • Published to the registry more recently than 40% of the other 2976 servers in this category
  • Basic checks equal to or better than 100% of the other 2976 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is BagOS safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: BAGS_API_KEY, SOLANA_RPC_URL

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (3.0.7) reached the registry 42 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

An MCP server retrieving transcripts of YouTube videos

Runs on your computer★ 495MITUpdated 10 days ago
Install

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

Runs on your computer★ 244MITUpdated 9 days ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

BagOS 🚦 An MCP server that lets an AI assistant trade on Solana — and signs nothing until you say so.

🚀 Install

npx bagos-mcp-server

Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{

"mcpServers": { "bagos": { "command": "npx", "args": ["-y", "bagos-mcp-server"], "env": { "BAGS_API_KEY": "your-key-here" } } } }

Claude Code:

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

Restart the client, then ask it: *"show me the top Bags creators"*. The server prints a configuration report to stderr on startup; if something is missing it tells you which variable and why.

An API key alone gives you 8 of the 11 read tools. Three of them — bags_heartbeat, bags_get_claimable_fees and bags_authenticate — report on *your* wallet, so they also need BAGS_KEYPAIR_PATH and will error without it. Writes stay off until you configure them (Getting Started).

🔒 Why this is safe to hand an assistant

  • Nothing signs on the first call. A write tool answers with a preview and a single-use token fingerprinted to those exact arguments; nothing reaches the chain until you call again with it.
  • Hard SOL caps. 0.1 per transaction and 1 per session by default, refused before the Bags SDK is called.
  • Devnet by default. Writes are mainnet-only, so an unconfigured install cannot spend real money.

Full threat model, disclosure policy and the limits of each control: [.github/SECURITY.md](.github/SECURITY.md).

⚠️ If you used 1.x — v2.0.0 corrected a serious defect

v2.0.0 corrects a serious defect. In 1.x the write tools built

transactions, discarded them, and reported success — nothing was ever signed

or submitted. If you used 1.x and believed a trade or claim executed, it did

not. See CHANGELOG.md.

2.x is live on npm and is what npx bagos-mcp-server installs — see the

latest release. Every release ships with

npm provenance —

the tarball is cryptographically attested to this repository and the commit that built it.

1.x is deprecated on npm. If you are still on it, upgrade.


📦 Where it's listed


💡 The Problem & Solution

The Problem

An MCP server that can move money gives an AI assistant a signing key. The assistant decides, and the transaction is already on chain by the time a human reads about it. Nothing in the protocol makes the model pause, and nothing bounds what a single misunderstood instruction can spend.

The Solution

Bags is a Solana token launchpad whose defining feature is creator fee sharing: a token's trading fees are split on-chain between the people who launched and promote it, claimable at any time. That makes "who earns from this token, how much is claimable, and claim it" a real workflow — and the one BagOS automates.

BagOS lets an AI assistant read Bags/Solana token data and — with explicit confirmation — execute swaps and claim creator fees from your wallet. Writes are off unless you configure them, they are mainnet-only, and the first call to a write tool signs nothing: it returns a preview and a single-use token that only authorizes the exact arguments it was issued for.


🏗️ Architecture & Tech Stack

Every write goes through this:

token gate → spend caps → confirmation → simulate → sign → send → confirm
ToolTypeWhat it does
bags_heartbeatreadServer status and wallet reachability
bags_get_token_analyticsreadLifetime fee data for a token mint
bags_get_creatorsreadTop token creators by lifetime fees
bags_get_trade_quotereadPrice quote for a swap. Does not trade.
bags_get_claimable_feesreadFees currently claimable by your wallet
bags_get_partner_statsreadPartner config claim statistics
bags_get_token_claim_statsreadPer-creator claim totals — the royalty roster with amounts claimed
bags_get_token_claim_eventsreadThe claim audit trail for a token, paginated
bags_get_token_creatorsreadWho shares a token's fees, and in what proportion
bags_resolve_launch_walletreadSocial handle (twitter/tiktok/kick/github) → fee-share wallet
bags_authenticatereadVerify wallet ownership via Ed25519 signature
bags_prepare_token_metadatagatedCreates token info + metadata. Does not launch a token.
bags_execute_tradewriteSwap tokens. Signs and submits.
bags_claim_feeswriteClaim creator/LP fees. Signs and submits.

bags_prepare_token_metadata reserves a mint and uploads metadata. Completing a launch also requires a Meteora fee-share config, whose fee-claimer split has to be your decision — so this server does not implement that step rather than guessing at it. Finish the launch at bags.fm.


🔐 Write Tools & Spend Controls

Writes are off unless you configure them, and they are mainnet-only.

Bags has no devnet deployment. Its API endpoint and its Meteora/fee-share program IDs are all mainnet. This server nonetheless defaults to devnet, so an unconfigured install cannot spend real money. Calling a write tool on devnet returns an explanation, not a cryptic program error.

The first call to a write tool signs nothing. It returns a preview and a single-use token:

⚠️  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"

The token is a fingerprint of the tool name plus the exact arguments, so one issued for a 0.01 SOL swap cannot authorize a 10 SOL one. It expires in five minutes and is consumed on every outcome, so it cannot be replayed.

On success you get a real signature and explorer link — never a success message for a transaction that did not land.

Set BAGS_ALLOW_UNCONFIRMED=true to skip the preview. Spend caps still apply.

The caps only bind on SOL. A swap whose input is some other token cannot be valued in SOL, so no cap can limit it. Those swaps are refused by default; set BAGS_ALLOW_UNCAPPED_TOKEN_SWAPS=true to permit them, and the preview will say plainly that the trade is uncapped.


⛓️ Live Deployment

A real transaction, landed through the production write path and re-fetched from the chain rather than trusted from a return value:

Signature2kvu25xW…U5Dm
Clusterdevnet
Slot484219564
Statuserr: null
Captured2026-08-16

Reproduce it yourself with npm run proof:devnet — it funds a throwaway keypair from the faucet, pushes a transfer through the same simulate → sign → send → confirm path the write tools use, then re-fetches the signature from the chain. A function returning success is a claim; a signature you can open on an explorer is evidence. Full method in DEMO.md.


📊 Engineering Rigor

418 tests. The bypass tests around the spend caps and the confirmation step are load-bearing; treat a change there as a security change. They were checked by hand against deliberate mutations: deleting the cap guard, the confirmation check, the decimals lookup, or the spend recorder each makes the suite fail. That was a manual exercise, not an automated mutation-testing stage — there is no mutation config in this repo to re-run.

LayerStatusDetails

| Real default path | ✅ | No kill-switch flag in any documented command. USE_MOCK_DATA defaults off; when on, it affec

Only the beginning is shown; read the rest in the repo

Ask PopNx