ORDnet MCP Server

ORDnet MCP Server

ORDnet MCP Server enables AI agents to create permanent, censorship-resistant Web3 content on the Bitcoin SV blockchain using 1SatOrdinals. It provides tools for inscriptions, domain registration, payments, and agent identity management.

Category
Visit Server

README

ORDnet MCP Server v3.1

Enable AI agents to create Web3 content on Bitcoin SV blockchain

Version License

Overview

ORDnet MCP Server enables AI agents (Claude, GPT, etc.) to create permanent, censorship-resistant content on the Bitcoin SV blockchain using the 1SatOrdinals protocol. This is a key component of the freedom of speech infrastructure - allowing AI to autonomously publish Web3 content.

Key Features

  • 43 MCP Tools for complete blockchain content creation, payments and transfers
  • BRC-100 aligned identity (v3.0): ordnet_identity, ordnet_sign_message, ordnet_verify_message, ordnet_derive_payment_address — agent identity, off-chain signing, and per-invoice payment-address derivation as the foundation for x402
  • Agent payments: ordnet_send (P2PKH + optional OP_RETURN reference, miner fee only — x402-ready), ordnet_transfer for ordinals/domains (1SatOrdinals input-0/output-0 semantics, outpoint verified via own node)
  • Binary inscriptions via ordnet_inscribe_binary (base64 → bytes untouched); BSVmap tile claims via ordnet_bsvmap_inscribe
  • Agent conveniences: ordnet_tx_status (confirmations via own node), ordnet_price (via own CoinGecko proxy)
  • 3 MCP Prompts (prompts/list): inscribe-website, register-domain, agent-payment
  • 1SatOrdinals inscriptions (HTML, JSON, text, images, etc.)
  • SNS/OPNS domain registration (.sats, .btc, .bsv, etc.)
  • 3-tier wallet security (env vars → encrypted → plaintext; plaintext-WIF tools are disabled on the HTTP transport)
  • Agent safety layer: tx simulation via ORDnet's own node + spend limits with operator-set hard ceilings (fail-closed)
  • HTTP transport with mandatory bearer auth (ORDNET_MCP_AUTH_TOKEN, server refuses to start without it)
  • Fee structure identical to ordmail-v10-standalone-026.html: 396 sats service fees across 11 outputs / 10 addresses, miner fee 0.15 sat/byte (min. 200 sats)

Quick Start

Installation

git clone https://github.com/ORDNET/ORDnet-MCP-Server.git && cd ORDnet-MCP-Server
npm install && npm run build

Note: the package is not (yet) published on npm; install from source.

Usage with Claude Desktop

Add to your Claude Desktop config (~/.config/claude/claude_desktop_config.json):

{
  "mcpServers": {
    "ordnet": {
      "command": "npx",
      "args": ["@ordnet/mcp-server"],
      "env": {
        "ORDNET_WIF": "your-wif-private-key"
      }
    }
  }
}

Usage with OpenClaw

{
  "mcp_servers": [
    {
      "name": "ordnet",
      "command": "node",
      "args": ["/path/to/ordnet-mcp-server/dist/index.js"],
      "env": {
        "ORDNET_WIF": "your-wif-private-key"
      }
    }
  ]
}

Service Fees

Every inscription includes a total service fee of 396 satoshis, split across 11 outputs exactly as defined in src/constants.ts (SERVICE_FEE_OUTPUTS). These are the values the code actually writes:

Label Amount Address
ordiBuilder 11 sats 1HdbyucjYU2yfDFXzAQt3kCdP3VvM4tjzr
onnoBuilder 11 sats 1JKcD1kx8XeJFfd32sug1MaXfruurHTCjv
algoBuilder 11 sats 1AHEUcWuCfdRnfwNsvwZhZSetXjEuAvBot
colleagueI 11 sats 1ENW3XBoAv4KQ4FuQ4MtzNkLq82eJd12PV
protocol 22 sats 15q8YQSqUa9uTh6gh4AVixxq29xkpBBP9z
colleagueD 22 sats 1GeifRjPLWTDqL1DZ2vaqorX6pqCi9PyJB
monitor 33 sats 1EXupec98g8TDTG5cwJwH3U8V3PezvvLv8
indexer 44 sats 18RHRqQhsKKZwMnGevvnRQ8KrryAXvQUWQ
partner 66 sats 19o4rByWRvdq6zziJEfhpe4xdq5z43jYrr
founder 77 sats 1EXupec98g8TDTG5cwJwH3U8V3PezvvLv8
foundation 88 sats 1ATEXPH6FSctbZdAz8MnXCfDpCvDnFrWma
Total 396 sats 11 outputs

Miner fee is separate: 0.15 sat/byte, minimum 200 sats.

Note: ordnet_send (plain payments / x402 micropayments) carries no service fee — only the miner fee — so agent-to-agent payments stay lean.

Tools Reference

Wallet Management (6 tools)

Tool Description
ordnet_wallet_init Initialize wallet from WIF private key
ordnet_wallet_init_env Initialize from environment variable (recommended)
ordnet_wallet_status Check wallet status and balance
ordnet_wallet_balance Get balance for any BSV address
ordnet_wallet_utxos Get unspent transaction outputs
ordnet_wallet_clear Clear wallet from memory

Inscriptions (6 tools)

Tool Description
ordnet_fee_estimate Calculate fee for an inscription
ordnet_inscribe_prepare Prepare inscription (no broadcast)
ordnet_inscribe_broadcast Broadcast prepared transaction
ordnet_inscribe_html Quick HTML inscription
ordnet_inscribe_json Quick JSON inscription
ordnet_inscribe_text Quick plain text inscription

Domains (6 tools)

Tool Description
ordnet_domain_check Check domain availability
ordnet_domain_info Get domain information
ordnet_domain_search Search registered domains
ordnet_domain_register Register SNS/OPNS domain
ordnet_domain_register_sns Quick SNS registration
ordnet_domain_register_opns Quick OPNS registration

Search & Lookup (4 tools)

Tool Description
ordnet_search_inscriptions Search inscriptions
ordnet_get_inscription Get inscription details
ordnet_get_content_url Get content URLs
ordnet_validate_address Validate BSV address

Security (4 tools)

Tool Description
ordnet_security_encrypt_wallet Encrypt WIF with AES-256-GCM
ordnet_security_tier Check security tier
ordnet_security_validate_password Validate password strength
ordnet_generate_wallet Generate new random wallet

Payments (5 tools)

Tool Description
ordnet_send Plain BSV payment (miner fee only, no service fee)
ordnet_transfer Transfer an ordinal/domain to another address
ordnet_x402_quote Probe an x402-paywalled URL and parse the quote (SSRF-guarded)
ordnet_x402_fetch Pay an x402 resource in native sats and retrieve it
ordnet_derive_payment_address Derive a BRC-42 payment address (watch-only)

Identity & signing (3 tools)

Tool Description
ordnet_identity Get the wallet's identity public key
ordnet_sign_message Sign a message with the wallet key
ordnet_verify_message Verify a signed message

Utilities (11 tools)

Tool Description
ordnet_info Server information
ordnet_content_types List supported content types
ordnet_tx_simulate Decode/simulate a raw tx via ORDnet's own node
ordnet_policy_set Set spend-policy limits (within operator ceilings)
ordnet_policy_status Show the active spend policy and session total
ordnet_index_health UTXO index health
ordnet_address_watch Add an address to the watch index
ordnet_bsvmap_inscribe Inscribe a BSVmap tile
ordnet_inscribe_binary Inscribe binary content (e.g. an image)
ordnet_tx_status Look up a transaction's status
ordnet_price BSV price in fiat

Total: 45 tools.

Example: Create an HTML Inscription

User: Create a simple webpage saying "Hello from AI" and inscribe it on Bitcoin

AI: I'll create and inscribe this HTML content on the BSV blockchain.

1. First, let me initialize the wallet...
   [ordnet_wallet_init_env]
   ✓ Wallet initialized at 1ABC...

2. Creating the HTML inscription...
   [ordnet_inscribe_html] content="<html><body><h1>Hello from AI</h1></body></html>"
   
   ✓ Inscription successful!
   - TXID: abc123...
   - Inscription ID: abc123..._0
   - View: https://ordnet.io/view/abc123..._0

Supported Content Types

  • text/html;charset=utf8 - HTML web pages
  • text/plain;charset=utf8 - Plain text
  • application/json - JSON data
  • image/svg+xml - SVG graphics
  • image/png - PNG images
  • image/jpeg - JPEG images
  • image/gif - GIF animations
  • image/webp - WebP images
  • audio/mpeg - MP3 audio
  • video/mp4 - MP4 video
  • application/pdf - PDF documents

Supported Domain Extensions

Universal

  • .sats

Chain-specific

  • BTC: .btc .ord .xbt .gm .unisat .x
  • BSV: .bsv
  • DOGE: .doge .shibe
  • LTC: .ltc
  • BCH: .bch
  • BELLS: .bells
  • And more...

Security Tiers

Tier Method Security Level
Environment ORDNET_WIF env var ⭐⭐⭐ Highest
Encrypted AES-256-GCM encrypted store ⭐⭐ Medium
Plaintext Direct WIF input ⭐ Lowest

Recommendation: Always use environment variables in production.

Development

# Clone and install
git clone https://github.com/ordnet/mcp-server
cd mcp-server
npm install

# Build
npm run build

# Run the audit regression tests (SSRF guard + spend policy).
# These run straight from source with Node's type stripping:
node --experimental-strip-types test/audit-2026-08-11.test.mjs

# Start server (stdio)
npm start

# Start server (HTTP)
TRANSPORT=http PORT=3000 npm start

Transaction Structure

The inscription transaction follows the same output layout as the reference inscriber (ordmail-v10-standalone-026.html). The service-fee outputs are the 11 entries of SERVICE_FEE_OUTPUTS in src/constants.ts:

Input:   UTXO(s) (user funds)
Output 0:  1 sat    - Inscription (OP_FALSE OP_IF "ord" ... OP_ENDIF + P2PKH)
Output 1:  0 sat    - OP_RETURN "ORDnet.io"
Output 2..12:        - 11 service-fee outputs (11,11,11,11,22,22,33,44,66,77,88 = 396 sats)
Output 13: Change (if > 546 sats)

The exact per-output amounts and addresses are listed under Service Fees above and are the single source of truth (SERVICE_FEE_OUTPUTS). ordnet_send omits the fee outputs entirely.

API Endpoints Used

  • WhatsOnChain: https://api.whatsonchain.com/v1/bsv/main
  • ORDnet Registry: https://registry.ordnet.io
  • ORDnet Search: https://search.ordnet.io

License

MIT © ORDnet.io / Mister HHC B.V.

Links

  • Website: https://ordnet.io
  • Documentation: https://docs.ordnet.io
  • GitHub: https://github.com/ordnet

Environment Variables (v2.4)

Variable Required Purpose
ORDNET_WIF for wallet ops Wallet private key (WIF). On HTTP transport this is the ONLY way to load a wallet.
TRANSPORT no stdio (default) or http.
PORT no HTTP port (default 3000).
ORDNET_MCP_AUTH_TOKEN yes, when TRANSPORT=http Bearer token (min. 32 chars). Server refuses to start without it. Generate: openssl rand -hex 32.
ORDNET_POLICY_MAX_SATS_PER_TX recommended on http Operator hard ceiling per transaction. ordnet_policy_set can tighten below it, never loosen above it.
ORDNET_POLICY_MAX_SATS_PER_SESSION recommended on http Operator hard ceiling per server session.
ORDNET_UTXO_URL no Base URL of the ordnet-utxo index (default http://127.0.0.1:7002).

Known limitations

  • Wallet and spend-policy state are per server process, not per client session. Run the HTTP transport for a single trusted agent/team behind the auth token, not as a public multi-tenant service.
  • Balance and UTXO lookups use ORDnet's OWN address index (ordnet-utxo, port 7002, every UTXO node-verified) since v2.5; WhatsOnChain is a connectivity fallback only. New tools in v2.5: ordnet_index_health, ordnet_address_watch.
  • UTXO selection skips 1-sat UTXOs as ordinal protection and combines multiple inputs when needed.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured