Server data from the Official MCP Registry
Bitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg, NFTs, x402 payments.
Bitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg, NFTs, x402 payments.
Valid MCP server (2 strong, 1 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.
4 files analyzed · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-aibtcdev-mcp-server": {
"args": [
"-y",
"@aibtc/mcp-server"
],
"command": "npx"
}
}
}From the project's GitHub README.
Bitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg, NFTs, and x402 payments.
npx @aibtc/mcp-server@latest --install
That's it! This automatically configures Claude Code. Restart your terminal and start chatting.
npx @aibtc/mcp-server@latest --install --desktop
This detects your OS and writes to the correct Claude Desktop config file:
| OS | Config Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
| Windows | %APPDATA%/Claude/claude_desktop_config.json |
Restart Claude Desktop after installing.
Add --testnet to either command:
# Claude Code on testnet
npx @aibtc/mcp-server@latest --install --testnet
# Claude Desktop on testnet
npx @aibtc/mcp-server@latest --install --desktop --testnet
Why npx? Using
npx @aibtc/mcp-server@latestensures you always get the newest version automatically. Global installs (npm install -g) won't auto-update.
If you prefer to configure manually, add the following to your config file.
Claude Code (~/.claude.json):
{
"mcpServers": {
"aibtc": {
"command": "npx",
"args": ["@aibtc/mcp-server@latest"],
"env": {
"NETWORK": "mainnet"
}
}
}
}
Claude Desktop (claude_desktop_config.json -- see path table above):
{
"mcpServers": {
"aibtc": {
"command": "npx",
"args": ["-y", "@aibtc/mcp-server@latest"],
"env": {
"NETWORK": "mainnet"
}
}
}
}
Note: Claude Desktop requires the
-yflag in args so npx doesn't prompt for confirmation.
When you first use @aibtc/mcp-server, Claude doesn't have a wallet. Here's the smooth onboarding flow:
You: What's your wallet address?
Claude: I don't have a wallet yet. Would you like to assign me one?
I can either create a fresh wallet or you can import an existing one.
You: Create a new wallet called "agent-wallet"
Claude: What password should I use to protect the wallet?
You: use "secure123password"
Claude: I now have a wallet! My address is ST1ABC...XYZ
IMPORTANT: Please save this recovery phrase securely:
"word1 word2 word3 ... word24"
This phrase will NOT be shown again. It's the only way to recover
the wallet if the password is forgotten.
You: Send 10 STX to ST2DEF...
Claude: Done! I've sent 10 STX to ST2DEF...
Transaction: 0x123...
| State | What Claude Says | What To Do |
|---|---|---|
| No wallet | "I don't have a wallet yet" | Use wallet_create or wallet_import |
| Locked | "My wallet is locked" | Use wallet_unlock with password |
| Ready | "My address is ST..." | Claude can perform transactions |
wallet_set_timeout (set to 0 to disable)wallet_lock to manually lock the walletwallet_unlock when you need Claude to transact againClaude's wallets are stored locally on your machine:
~/.aibtc/
├── wallets.json # Wallet index (names, addresses - no secrets)
├── config.json # Active wallet, settings
└── wallets/
└── [wallet-id]/
└── keystore.json # Encrypted mnemonic (AES-256-GCM + Scrypt)
Security:
Each wallet automatically derives both a Stacks address and a Bitcoin address from the same mnemonic using BIP39/BIP32 standards.
Derivation Paths (BIP84):
m/84'/0'/0'/0/0 (Bitcoin coin type 0)m/84'/1'/0'/0/0 (Bitcoin testnet coin type 1)Address Format:
bc1q... (Native SegWit P2WPKH)tb1q... (Native SegWit P2WPKH)Capabilities:
Example:
You: Create a wallet called "my-wallet"
Claude: I've created a wallet with:
Stacks address: ST1ABC...
Bitcoin address: bc1q...
You: Send 50000 sats to bc1q...
Claude: Done! Transaction broadcast: abc123...
Both addresses are derived from the same recovery phrase, making it easy to manage both Layer 1 (Bitcoin) and Layer 2 (Stacks) assets.
| Tool | Description |
|---|---|
wallet_create | Create a new wallet for Claude |
wallet_import | Import an existing wallet for Claude |
wallet_unlock | Unlock Claude's wallet |
wallet_lock | Lock Claude's wallet |
wallet_list | List Claude's available wallets |
wallet_switch | Switch Claude to a different wallet |
wallet_delete | Delete a wallet |
wallet_export | Export wallet mnemonic |
wallet_status | Check if Claude's wallet is ready (includes Stacks and Bitcoin addresses) |
wallet_set_timeout | Set how long wallet stays unlocked |
| Tool | Description |
|---|---|
get_btc_balance | Get BTC balance (total, confirmed, unconfirmed) |
get_btc_fees | Get fee estimates (fast, medium, slow) |
get_btc_utxos | List UTXOs for an address |
transfer_btc | Send BTC to a recipient |
get_cardinal_utxos | UTXOs safe to spend (no inscriptions) |
get_ordinal_utxos | UTXOs containing inscriptions |
| Tool | Description |
|---|---|
get_btc_mempool_info | Get current Bitcoin mempool statistics (tx count, vsize, fees, fee histogram) |
get_btc_transaction_status | Get confirmation status and details for a Bitcoin transaction by txid |
get_btc_address_txs | Get recent transaction history for a Bitcoin address (last 25 transactions) |
| Tool | Description |
|---|---|
get_taproot_address | Get wallet's Taproot (P2TR) address |
estimate_inscription_fee | Calculate inscription cost |
inscribe | Create inscription commit transaction |
inscribe_reveal | Complete inscription reveal transaction |
get_inscription | Fetch inscription content from reveal tx |
get_inscriptions_by_address | List inscriptions owned by address |
| Tool | Description |
|---|---|
psbt_create_ordinal_buy | Build a buyer-side PSBT for ordinal purchase |
psbt_sign | Sign selected PSBT inputs with active wallet keys |
psbt_decode | Decode PSBT inputs/outputs/signature status |
psbt_broadcast | Finalize and broadcast a fully-signed PSBT |
| Tool | Description |
|---|---|
sip018_sign | Sign structured Clarity data (SIP-018) |
sip018_verify | Verify SIP-018 signature |
sip018_hash | Compute SIP-018 hash without signing |
stacks_sign_message | Sign plain text (SIWS-compatible) |
stacks_verify_message | Verify Stacks message signature |
btc_sign_message | Sign with Bitcoin key (BIP-137) |
btc_verify_message | Verify BIP-137 signature |
| Tool | Description |
|---|---|
get_wallet_info | Get Claude's wallet addresses (Stacks + Bitcoin) and status |
get_stx_balance | Get STX balance for any address |
get_stx_fees | Get STX fee estimates (low, medium, high) |
| Tool | Description |
|---|---|
transfer_stx | Send STX to a recipient |
broadcast_transaction | Broadcast a pre-signed transaction |
| Tool | Description |
|---|---|
sbtc_get_balance | Get sBTC balance |
sbtc_transfer | Send sBTC |
sbtc_initiate_withdrawal | Initiate sBTC peg-out to BTC L1 |
sbtc_withdraw | Alias for withdrawal initiation |
sbtc_withdrawal_status | Check withdrawal request status |
sbtc_get_deposit_info | Get BTC deposit instructions |
sbtc_deposit | Build, sign, and broadcast BTC→sBTC deposit |
sbtc_deposit_status | Check deposit status via Emily API |
sbtc_get_peg_info | Get peg ratio and TVL |
| Tool | Description |
|---|---|
get_token_balance | Get balance of any SIP-010 token |
transfer_token | Send any SIP-010 token |
get_token_info | Get token metadata |
list_user_tokens | List tokens owned by an address |
get_token_holders | Get top holders of a token |
| Tool | Description |
|---|---|
get_nft_holdings | List NFTs owned by an address |
get_nft_metadata | Get NFT metadata |
transfer_nft | Send an NFT |
get_nft_owner | Get NFT owner |
get_collection_info | Get NFT collection details |
get_nft_history | Get NFT transfer history |
| Tool | Description |
|---|---|
get_pox_info | Get current PoX cycle info |
get_stacking_status | Check stacking status |
stack_stx | Lock STX for stacking |
extend_stacking | Extend stacking period |
| Tool | Description |
|---|---|
lookup_bns_name | Resolve .btc domain to address |
reverse_bns_lookup | Get .btc domain for an address |
get_bns_info | Get domain details |
check_bns_availability | Check if domain is available |
get_bns_price | Get registration price |
list_user_domains | List domains owned |
preorder_bns_name | Preorder a .btc domain (step 1 of 2) |
register_bns_name | Register a .btc domain (step 2 of 2) |
| Tool | Description |
|---|---|
call_contract | Call a smart contract function |
deploy_contract | Deploy a Clarity smart contract |
get_transaction_status | Check transaction status |
call_read_only_function | Call read-only function |
Uses the official alex-sdk for swap operations. Supports simple token symbols like "STX", "ALEX".
| Tool | Description |
|---|---|
alex_list_pools | Discover all available trading pools |
alex_get_swap_quote | Get expected output for a token swap |
alex_swap | Execute a token swap (SDK handles routing) |
alex_get_pool_info | Get liquidity pool reserves |
Supports 10 assets: sBTC, aeUSDC, stSTX, wSTX, USDH, sUSDT, USDA, DIKO, ALEX, stSTX-BTC
| Tool | Description |
|---|---|
zest_list_assets | List all supported lending assets |
zest_get_position | Get user's supply/borrow position |
zest_supply | Supply assets to earn interest |
zest_withdraw | Withdraw supplied assets |
zest_borrow | Borrow against collateral |
zest_repay | Repay borrowed assets |
DEX aggregator that routes trades across multiple liquidity sources.
Units: Bitflow tools default to human units (
amountUnit: "human"). Pass"2"to swap 2 STX, not"2000000". SetamountUnit: "base"only when working with raw on-chain integers. See Units & Decimals guide for details and common pitfalls.
| Tool | Description |
|---|---|
bitflow_get_ticker | Get market data (no API key needed) |
bitflow_get_quote | Get swap quote |
bitflow_swap | Execute token swap |
sBTC smart wallet with Zest Protocol integration and passkey authentication.
| Tool | Description |
|---|---|
pillar_connect | Connect to Pillar wallet |
pillar_send | Send sBTC to BNS names or addresses |
pillar_boost | Create leveraged sBTC position |
pillar_position | View wallet and Zest position |
For autonomous agents, use pillar_direct_* tools (no browser needed).
| Tool | Description |
|---|---|
get_account_info | Get account nonce, balance |
get_account_transactions | List transaction history |
get_block_info | Get block details |
get_mempool_info | Get pending transactions |
get_contract_info | Get contract ABI and source |
get_contract_events | Get contract event history |
get_network_status | Get network health status |
| Tool | Description |
|---|---|
yield_hunter_start | Start autonomous sBTC→Zest deposits |
yield_hunter_stop | Stop yield hunting |
yield_hunter_status | Check yield hunter status |
yield_hunter_configure | Adjust threshold, reserve, interval |
| Tool | Description |
|---|---|
list_x402_endpoints | Discover x402 endpoints |
execute_x402_endpoint | Execute x402 endpoint with auto-payment |
scaffold_x402_endpoint | Generate x402 Cloudflare Worker project |
scaffold_x402_ai_endpoint | Generate x402 AI API with OpenRouter |
Wallet management:
"What's your wallet address?" "Create a wallet for yourself" "Unlock your wallet" "Keep your wallet unlocked for 1 hour"
Check balances:
"How much STX do you have?" "What's your sBTC balance?"
Transfer tokens:
"Send 2 STX to ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM" "Transfer 0.001 sBTC to muneeb.btc"
NFTs:
"What NFTs do you own?" "Send this NFT to alice.btc"
BNS domains:
"What address is satoshi.btc?" "Is myname.btc available?"
DeFi trading (mainnet):
"What pools are available on ALEX?" "Swap 0.1 STX for ALEX" "Get a quote for 100 STX to ALEX" "What assets can I lend on Zest?" "Supply 100 stSTX to Zest" "Borrow 50 aeUSDC from Zest" "Check my Zest position"
x402 endpoints:
"Get trending liquidity pools" "Tell me a dad joke"
Well-known tokens can be referenced by symbol:
ALEX DEX tokens: STX, ALEX, and any token from alex_list_pools
Zest Protocol assets: sBTC, aeUSDC, stSTX, wSTX, USDH, sUSDT, USDA, DIKO, ALEX, stSTX-BTC
Or use any SIP-010 token by contract ID: SP2X...::token-name
| Environment Variable | Description | Default |
|---|---|---|
NETWORK | mainnet or testnet | mainnet (installer) / testnet (if unset) |
API_URL | Default x402 API base URL | https://x402.biwas.xyz |
CLIENT_MNEMONIC | (Optional) Pre-configured mnemonic | - |
HIRO_API_KEY | (Optional) Hiro API key for higher rate limits | - |
Note on NETWORK: The --install command writes NETWORK=mainnet by default (pass --testnet to use testnet). If you omit NETWORK from your config entirely, the runtime fallback is testnet. Most users should set this explicitly.
Note: CLIENT_MNEMONIC is optional. The recommended approach is to let Claude create its own wallet. HIRO_API_KEY is optional but recommended for production use — without it, you may hit Hiro's public rate limits (429 responses). Get a key at platform.hiro.so.
You ←→ Claude ←→ aibtc-mcp-server
↓
Claude's Wallet (~/.aibtc/)
↓
┌─────────┴─────────┐
↓ ↓
Hiro Stacks API x402 Endpoints
↓ ↓
Stacks Blockchain Paid API Services
For automated setups where Claude needs immediate wallet access, add the CLIENT_MNEMONIC environment variable to your MCP server config (in ~/.claude.json for Claude Code, or claude_desktop_config.json for Claude Desktop):
{
"mcpServers": {
"aibtc": {
"command": "npx",
"args": ["@aibtc/mcp-server@latest"],
"env": {
"CLIENT_MNEMONIC": "your twenty four word mnemonic phrase",
"NETWORK": "testnet"
}
}
}
}
This bypasses the wallet creation flow - Claude has immediate access to transact.
This package includes an Agent Skills compatible skill that teaches any LLM how to use the Bitcoin wallet capabilities effectively.
The aibtc-bitcoin-wallet skill provides:
The skill is automatically included when you install the MCP server. Find it at:
node_modules/@aibtc/mcp-server/skill/SKILL.mdaibtc-bitcoin-walletskill/
├── SKILL.md # Bitcoin L1 core workflows
└── references/
├── genesis-lifecycle.md # Agent registration & check-in
├── inscription-workflow.md # Bitcoin inscription guide
├── pillar-wallet.md # Pillar smart wallet guide
├── stacks-defi.md # Stacks L2 / DeFi operations
└── troubleshooting.md # Common issues and solutions
git clone https://github.com/aibtcdev/aibtc-mcp-server.git
cd aibtc-mcp-server
npm install
npm run build
npm run dev # Run with tsx (development)
This repo uses Release Please for automated releases:
feat:, fix:, etc.)| Secret | Description |
|---|---|
NPM_TOKEN | npm publish token for @aibtc scope |
CLAWHUB_API_TOKEN | ClawHub API token for skill publishing |
To obtain a ClawHub API token, visit clawhub.ai and create an account.
MIT
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.