MCP Hub
Back to servers

stx402-agent

A comprehensive MCP server enabling AI agents to manage Stacks blockchain wallets, perform DeFi operations on ALEX and Zest, handle BNS domains, and execute paid x402 API calls.

Stars
1
Tools
62
Updated
Jan 20, 2026

Quick Install

npx -y stx402-agent

@aibtc/mcp-server

An MCP (Model Context Protocol) server that gives Claude its own Stacks wallet to interact with the blockchain and x402 paid API endpoints.

Features

  • Agent's Own Wallet - Claude gets its own wallet to perform blockchain transactions
  • Secure Storage - Wallets encrypted with AES-256-GCM and stored locally
  • 50+ Tools - Comprehensive Stacks blockchain operations
  • sBTC Support - Native Bitcoin on Stacks operations
  • Token Operations - SIP-010 fungible token transfers and queries
  • NFT Support - SIP-009 NFT holdings, transfers, and metadata
  • DeFi Trading - ALEX DEX swaps and Zest Protocol lending/borrowing
  • Stacking/PoX - Stacking status and delegation
  • BNS Domains - .btc domain lookups and management (V1 + V2)
  • x402 Payments - Automatic payment handling for paid APIs

Quick Start

One-Command Install

npx @aibtc/mcp-server@latest --install

That's it! This automatically configures Claude Code. Restart your terminal and start chatting.

For mainnet:

npx @aibtc/mcp-server@latest --install --mainnet

Why npx? Using npx @aibtc/mcp-server@latest ensures you always get the newest version automatically. Global installs (npm install -g) won't auto-update.

Giving Claude a Wallet

When you first use @aibtc/mcp-server, Claude doesn't have a wallet. Here's the smooth onboarding flow:

Example Conversation

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...

Wallet States

StateWhat Claude SaysWhat 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

Session Management

  • By default, the wallet auto-locks after 15 minutes
  • You can change this with wallet_set_timeout (set to 0 to disable)
  • Use wallet_lock to manually lock the wallet
  • Use wallet_unlock when you need Claude to transact again

Wallet Storage

Claude'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:

  • AES-256-GCM encryption with Scrypt key derivation
  • Password required to unlock
  • Mnemonics never stored in plaintext
  • File permissions set to owner-only (0600)

Available Tools (50+ total)

Wallet Management

ToolDescription
wallet_createCreate a new wallet for Claude
wallet_importImport an existing wallet for Claude
wallet_unlockUnlock Claude's wallet
wallet_lockLock Claude's wallet
wallet_listList Claude's available wallets
wallet_switchSwitch Claude to a different wallet
wallet_deleteDelete a wallet
wallet_exportExport wallet mnemonic
wallet_statusCheck if Claude's wallet is ready
wallet_set_timeoutSet how long wallet stays unlocked

Wallet & Balance

ToolDescription
get_wallet_infoGet Claude's wallet address and status
get_stx_balanceGet STX balance for any address

STX Transfers

ToolDescription
transfer_stxSend STX to a recipient
broadcast_transactionBroadcast a pre-signed transaction

sBTC Operations

ToolDescription
sbtc_get_balanceGet sBTC balance
sbtc_transferSend sBTC
sbtc_get_deposit_infoGet BTC deposit instructions
sbtc_get_peg_infoGet peg ratio and TVL

Token Operations (SIP-010)

ToolDescription
get_token_balanceGet balance of any SIP-010 token
transfer_tokenSend any SIP-010 token
get_token_infoGet token metadata
list_user_tokensList tokens owned by an address
get_token_holdersGet top holders of a token

NFT Operations (SIP-009)

ToolDescription
get_nft_holdingsList NFTs owned by an address
get_nft_metadataGet NFT metadata
transfer_nftSend an NFT
get_nft_ownerGet NFT owner
get_collection_infoGet NFT collection details
get_nft_historyGet NFT transfer history

Stacking / PoX

ToolDescription
get_pox_infoGet current PoX cycle info
get_stacking_statusCheck stacking status
stack_stxLock STX for stacking
extend_stackingExtend stacking period

BNS Domains (V1 + V2)

ToolDescription
lookup_bns_nameResolve .btc domain to address
reverse_bns_lookupGet .btc domain for an address
get_bns_infoGet domain details
check_bns_availabilityCheck if domain is available
get_bns_priceGet registration price
list_user_domainsList domains owned

Smart Contracts

ToolDescription
call_contractCall a smart contract function
deploy_contractDeploy a Clarity smart contract
get_transaction_statusCheck transaction status
call_read_only_functionCall read-only function

DeFi - ALEX DEX (Mainnet)

Uses the official alex-sdk for swap operations. Supports simple token symbols like "STX", "ALEX".

ToolDescription
alex_list_poolsDiscover all available trading pools
alex_get_swap_quoteGet expected output for a token swap
alex_swapExecute a token swap (SDK handles routing)
alex_get_pool_infoGet liquidity pool reserves

DeFi - Zest Protocol (Mainnet)

Supports 10 assets: sBTC, aeUSDC, stSTX, wSTX, USDH, sUSDT, USDA, DIKO, ALEX, stSTX-BTC

ToolDescription
zest_list_assetsList all supported lending assets
zest_get_positionGet user's supply/borrow position
zest_supplySupply assets to earn interest
zest_withdrawWithdraw supplied assets
zest_borrowBorrow against collateral
zest_repayRepay borrowed assets

Blockchain Queries

ToolDescription
get_account_infoGet account nonce, balance
get_account_transactionsList transaction history
get_block_infoGet block details
get_mempool_infoGet pending transactions
get_contract_infoGet contract ABI and source
get_contract_eventsGet contract event history
get_network_statusGet network health status

x402 API Endpoints

ToolDescription
list_x402_endpointsDiscover x402 endpoints
execute_x402_endpointExecute x402 endpoint with auto-payment

Usage Examples

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"

Supported Tokens

Well-known tokens can be referenced by symbol:

  • sBTC - Native Bitcoin on Stacks
  • USDCx - USD Coin on Stacks
  • ALEX - ALEX governance token
  • wSTX - Wrapped STX

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

Configuration

Environment VariableDescriptionDefault
NETWORKmainnet or testnettestnet
API_URLDefault x402 API base URLhttps://x402.biwas.xyz
CLIENT_MNEMONIC(Optional) Pre-configured mnemonic-

Note: CLIENT_MNEMONIC is optional. The recommended approach is to let Claude create its own wallet.

Architecture

You ←→ Claude ←→ aibtc-mcp-server
                        ↓
              Claude's Wallet (~/.aibtc/)
                        ↓
              ┌─────────┴─────────┐
              ↓                   ↓
        Hiro Stacks API    x402 Endpoints
              ↓                   ↓
        Stacks Blockchain  Paid API Services

Security Notes

  • Claude's wallet is stored encrypted on YOUR machine
  • Password is never stored - only the encrypted keystore
  • Mnemonics shown only once at creation
  • Auto-lock after 15 minutes (configurable)
  • Transactions signed locally before broadcast
  • For mainnet: Fund with small amounts first

Advanced: Pre-configured Mnemonic

For automated setups where Claude needs immediate wallet access, set the CLIENT_MNEMONIC environment variable in your ~/.claude.json:

{
  "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.

Development

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)

License

MIT

Reviews

No reviews yet

Sign in to write a review