bsl-agent-mcp
An MCP server that lets an agent operate a testnet Bitcoin wallet on the Bitcoin-IPC testnet: deposits, payments, balance checks
- 1 ★ on the repository
- Last commit
Broad access
Why this level
- The pay and deposit_btc tools move wallet funds, even if only on testnet
- Below the SPEND_CAP_SATS limit, operations go through without extra user confirmation
Install
- Works in
Manual install
docker build -t ghcr.io/bitcoinscalinglabs/bsl-agent-mcp:testnet . && docker run -d --env-file ./bsl.env --network container:bsl-client --name bsl-agent-mcp ghcr.io/bitcoinscalinglabs/bsl-agent-mcp:testnetThe main way to run it next to an already running bsl-client container.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The pay and deposit_btc tools move wallet funds, even if only on testnet
- Below the SPEND_CAP_SATS limit, operations go through without extra user confirmation
This is third-party code. Review the repository files before installing.
What it does
The server runs alongside a bsl-client container and lets an agent (Claude Desktop, Claude Code or any MCP client) operate a user-owned wallet on the Bitcoin-IPC testnet: deposit L1 BTC into subnet1, pay wBTC within subnet1 or across to subnet2, check balances by address book entry or raw address, and fetch a Bitcoin-anchored receipt for a payment. The agent never holds keys. The server signs locally, and any operation above SPEND_CAP_SATS requires explicit user approval via confirmed=true.
Who it is for. For developers testing payment flows on the Bitcoin-IPC testnet through a chat with an AI agent.
Good fit when
- You want to try a wBTC transfer between subnet1 and subnet2 on testnet from a chat with an agent
- You need an agent that checks the balance and spend cap before a payment
Not a fit when
- You need real funds or mainnet: the project is explicitly unaudited and testnet-only
- The project is unrelated to Russian services or 1C: it was a name-match false positive
Example request
Check the wallet balance on subnet1 and pay 10000 sats to a payee from the address bookMCP
- Transport
- stdio
- Authentication
- API key
Environment variables
API_TOKENrequired, secret- Access key for the L2 gateways and the bsl-client provider.
AGENT_PRIVATE_KEYrequired, secret- EVM key the server pays from.
SPEND_CAP_SATS- Per-operation cap above which explicit user approval is required.
Limitations
The author explicitly warns the code is not audited, testnet-only, and not for mainnet or keys with real value. Requires a separately running bsl-client container with AGENT_PRIVATE_KEY configured. The project has nothing to do with the Russian stack; it turned up by an acronym coincidence between BSL and 1C's language.
How to disable. Stop the bsl-agent-mcp container and remove the server from your MCP client configuration.
FAQ
Can the agent spend any amount without approval?
No, operations above SPEND_CAP_SATS are refused until the user explicitly approves them with confirmed=true.
Does the server expose private keys to the agent?
No, keys are never passed to the agent; signing happens locally on the server.
Discussion
No questions or reviews yet.
Related
MCP serversThe official Bybit exchange MCP server: market data, accounts, orders, bots and WebSocket streams from Claude, Cursor and VS Code
The server gives agents read access to your bank accounts and transactions through Enable Banking, without payment tools.
The open Bitview MCP gives an agent Bitcoin data: blocks, mempool, mining, market and on-chain analytics, read only.
The official CCXT MCP server and skills: market data, balances and opt-in trading across crypto exchanges and prediction markets
An MCP server for LunchMoney personal finance: transactions, budgets, categories and accounts exposed to agents via API v2.
Kraken’s official MCP server gives agents quotes, balances and account history, plus paper trading without real money.
README in short
The README describes seven MCP tools from wallet_status to subnet_info, requirements for a running bsl-client container with the provider port and an imported key, Docker launch next to bsl-client or a from-source Node.js run, and a table of environment variables including the required API_TOKEN, AGENT_PRIVATE_KEY, SUBNET_ID and SUBNET2_ID. It carries an explicit disclaimer that the code is not audited and is testnet-only.