GOAT Network

goat-network-mcp

v0.4.4 · MIT · Node 18+ · @purplesquirrel/goat-network-mcp
MCPBitcoin L2BitVMEVMERC-8004

Model Context Protocol server for GOAT Network — the BitVM-based Bitcoin L2. It exposes the chain to any AI agent: JSON-RPC reads, ABI-aware transaction builders, the native BTC L1↔L2 bridge, ERC-8004 agent identity, and the full @goatnetwork/agentkit action surface (DEX, BitVM2, wgBTC, OFT). Build-only by design — the server never holds keys; every write returns an unsigned EIP-1559 transaction for external signing.

91+
tools (base)
43
native
48+
via agentkit
128
w/ optional services

Zero key custody · multi-network (mainnet / testnet3 / localnet) · ships a postinstall ESM patch for agentkit 0.1.2.

Networks

NetworkChain IDRPCExplorer
Alpha Mainnet2345 rpc.goat.network explorer
Testnet348816 rpc.testnet3.goat.network explorer
Localnetany GOAT_RPC_URL=…

Native token: BTC (18 decimals, wei-style).

Install

npm install -g @purplesquirrel/goat-network-mcp

Claude Code / Desktop config

{
  "mcpServers": {
    "goat-network": {
      "command": "npx",
      "args": ["-y", "@purplesquirrel/goat-network-mcp"],
      "env": { "GOAT_NETWORK": "mainnet" }
    }
  }
}

Capabilities

Chain & accounts native · 9

EVM JSON-RPC reads over the L2.

  • get_chain_info · get_block · get_block_by_hash
  • get_gas_price · get_fee_history
  • get_balance · get_transaction_count
  • get_code · get_storage_at

Transactions & contracts native · 4

Inspect, call, and broadcast.

  • get_transaction · get_transaction_receipt
  • eth_call · get_logs · estimate_gas
  • send_raw_transaction (pre-signed only)
  • explorer_link

Build / write native · 8

Unsigned EIP-1559 txs for external signing.

  • build_transaction · build_contract_write
  • build_erc20_transfer · build_erc20_approve
  • encode_function_data · decode_function_data
  • decode_event_log · simulate_transaction

Native BTC bridge native · 9

L1↔L2 deposit/withdraw, no custody.

  • system_contracts · bridge_params
  • bridge_deposit_op_return · bridge_deposit_status
  • bridge_withdrawal_status
  • build_bridge_withdraw · build_bridge_rbf
  • build_bridge_cancel · build_bridge_refund

ERC-8004 agent identity native · 10

On-chain agent registry + reputation.

  • agent_lookup · agent_identity_addresses
  • agent_get_metadata · agent_get_reputation · agent_get_clients
  • build_agent_register · build_agent_set_uri
  • build_agent_set_metadata
  • build_agent_give_feedback · build_agent_revoke_feedback

agentkit surface wrapped · 48+

Full @goatnetwork/agentkit, build-only.

  • dex.* — swap, quote, liquidity, positions, fees
  • goat.bitvm2.* — peg-in/out, stake, pegBTC
  • wgbtc.* · oft.* · goat_token.*
  • wallet.* · erc721.* · bitcoin.*

Optional services +37

Enabled by env vars — off by default.

  • faucet.* — set GOAT_FAUCET_URL
  • x402.* — payments & merchant portal, set GOAT_X402_URL

Tested 126 tools · 100% pass

v0.4.4 — runnable suites in-repo:

  • test-126-tools · test-smoke · test-battle
  • test-all-comprehensive · test-mainnet-erc8004 · test-writes
  • Run against mainnet, testnet3, and anvil localnet.

Security model

Read-mostly. The only write surface is send_raw_transaction, which broadcasts a transaction you already signed elsewhere — the server never holds keys. Every build_* and wrapped write returns an unsigned tx; sign it in your wallet (MetaMask / Phantom / Ledger), then broadcast the signed hex.

Source

github.com/ExpertVagabond/goat-network-mcp · npm · changelog