๐งช Almega MCP โ the demonstrator
A wallet & guardrail for AI agents, exposed as a Model Context Protocol
(MCP) server. Drop it into Claude Desktop, the Claude Agent SDK, or any
MCP-compatible client, and your agent has a wallet with hard limits, a
human approval step, and a full ledger โ instantly.
Ships with two backends out of the box:
memory(default): everything in-process. Zero setup.
stripe: real Stripe Issuing test-mode Cardholders + virtual Cards.No real money. You watch the dashboard light up live.
Tools the server exposes
Tool What it does open_wallet(agent_id, monthly_limit, allow, approve_above)Give an agent a wallet (and a real Stripe card if backend=stripe) pay(agent_id, merchant, amount, category)Agent tries to spend โ gets APPROVED,BLOCKED, orAWAITING_YOUapprove_pending(transaction_id)Human says yes to a held transaction reject_pending(transaction_id, reason)Human says no get_wallet(agent_id)Current balance & rules list_transactions(agent_id?, status?, limit)View the ledger reset()Wipe the local index (Stripe entities are kept) Plus two resources:
almega://walletsandalmega://ledger.Install
pip install -r requirements.txtPython 3.10+ recommended.
Option A โ Memory backend (30-second demo)
No accounts, no env vars. Just run:
mcp dev almega_mcp.py # opens the MCP Inspector # or python demo.py # runs the Exhibit A scenarioOption B โ Stripe Issuing test mode (5 minutes, still $0)
The wallet maps to a real Stripe Cardholder + virtual Card and everyapproved
pay()creates a real test-mode authorization. You can openthe Stripe dashboard and see Almega's decisions reflected on Stripe live.Setup
- Free Stripe account: https://dashboard.stripe.com/register
- Activate Issuing in test mode: https://dashboard.stripe.com/test/issuing/overview
Grab your TEST secret key: https://dashboard.stripe.com/test/apikeys
Run
export STRIPE_SECRET_KEY=sk_test_... export ALMEGA_BACKEND=stripe python stripe_demo.pyAlmega refuses to start if your key isn't
sk_test_...โ there's no pathto accidentally hit live cards from this code.What you'll see in your Stripe dashboard
- one virtual card per agent
every approved
pay()as a real Stripe authorization on the card
- BLOCKED and AWAITING_YOU transactions stay at Almega's gate and never
- touch Stripe โ exactly how it would behave in production
Wire it into Claude Desktop
{ "mcpServers": { "almega": { "command": "python", "args": ["/absolute/path/to/almega_mcp.py"], "env": { "ALMEGA_BACKEND": "stripe", "STRIPE_SECRET_KEY": "sk_test_..." } } } }Restart Claude Desktop. Claude can now open wallets, attempt payments,and ask you to approve sensitive ones.
Demo prompt for Claude
Open a wallet for
research-botwith a $50 monthly limit, allowing
apiandsaascategories, and requiring approval above $25. Then try:
- $12 to
openai.com(api)
- $30 to
vercel.com(saas)
- $800 to
luxury-store.io(retail)Show me the ledger.
First approves, second held for sign-off, third blocked โ exactly likethe landing's "Exhibit A". On the Stripe backend, refreshhttps://dashboard.stripe.com/test/issuing/authorizations while it runs.
Landing
License
MIT.
Almega MCP โ wallet & guardrail for AI agents
The MCP server behind https://alemgaai.netlify.app
Two backends ship in one file:
python demo.pyโ in-memory mode, 30 seconds, zero setup
python stripe_demo.pyโ real Stripe Issuing test mode (free, $0)Install:
pip install -r requirements.txtLicense: MIT.