Skip to main content
Glama
Radiant-Core

Radiant MCP Server

Official
by Radiant-Core

Radiant MCP Server

Model Context Protocol (MCP) server for the Radiant blockchain — lets AI agents query chain state, manage Glyph tokens, resolve WAVE names, and — when given a private key — build, sign, and broadcast transactions on the Radiant network.

⚠️ This server can hold private keys and move funds

Unlike a read-only data server, radiant-mcp-server exposes a full write/signing surface. It can:

  • Store WIF private keys server-side in a keyring at ~/.radiant-mcp/keyring.json (override with RADIANT_KEYRING_FILE). The file is required to be 0600 (owner read/write only) on POSIX — the server refuses to load it otherwise.

  • Generate and restore wallets — random keys and BIP39 mnemonics — returning WIF private keys and seed phrases in tool output.

  • Build, sign, and broadcast transactions — send RXD, batch-pay, and mint / transfer / burn Glyph tokens — using either a transient WIF passed per call or a key referenced by alias from the keyring.

Any agent or client connected to this server can invoke those tools. Treat connecting it like handing over a hot wallet. Read Security & key handling before exposing it beyond loopback.

Related MCP server: AgentWallet MCP Server

Features

59 tools across 12 categories

Read/query tools need no keys. The Keyring, Wallet, and Transactions categories hold or receive private keys and can move funds — see Security & key handling.

Read & query — no private keys

Blockchain (8 tools)

  • radiant_get_chain_info — Current chain status (height, tip hash, network params)

  • radiant_get_balance — RXD balance for an address (confirmed + unconfirmed)

  • radiant_get_utxos — List unspent outputs for an address

  • radiant_get_history — Full transaction history for an address (returns all entries — large for active addresses)

  • radiant_get_transaction — Transaction details by txid

  • radiant_get_block_header — Block header by height

  • radiant_estimate_fee — Fee estimate (ElectrumX estimate + min-relay policy floor)

  • radiant_broadcast_transaction — Broadcast a pre-signed raw tx (no key required, but publishes to the network)

Glyph Tokens (10 tools)

  • radiant_get_token — Token info by reference

  • radiant_list_tokens — Tokens held by an address

  • radiant_get_token_balance — Specific token balance for an address

  • radiant_search_tokens — Search tokens by name/ticker

  • radiant_get_token_metadata — Full CBOR metadata

  • radiant_get_token_history — Token transaction history

  • radiant_get_tokens_by_type — Filter tokens by type (FT/NFT/etc.)

  • radiant_validate_protocols — Check whether a Glyph protocol combination is valid

  • radiant_parse_glyph_envelope — Decode a Glyph envelope from raw script hex

  • radiant_get_token_utxos — Discover all token UTXOs (and their tokenRefs) held by an address

dMint Mining (4 tools)

  • radiant_get_dmint_contracts — List active mineable tokens

  • radiant_get_dmint_contract — Details for one dMint contract

  • radiant_get_dmint_by_algorithm — dMint contracts filtered by mining algorithm

  • radiant_get_most_profitable_dmint — dMint contracts ranked by profitability

WAVE Naming (5 tools)

  • radiant_resolve_wave_name — Resolve a WAVE name to its zone records

  • radiant_check_wave_available — Check name availability

  • radiant_wave_reverse_lookup — Names owned by an address

  • radiant_wave_subdomains — List child names of a WAVE name

  • radiant_wave_stats — Naming-system statistics

DEX / Swap (2 tools)

  • radiant_get_swap_orders — Open swap orders for a pair (on-chain orderbook)

  • radiant_get_swap_history — Trade history for a token

Connection & Monitoring (3 tools)

  • radiant_connection_health — ElectrumX connection status and latency

  • radiant_reconnect — Force a fresh ElectrumX reconnect when the session is wedged

  • radiant_watch_address — Subscribe to real-time payment notifications for an address (ElectrumX scripthash subscription)

Utility / Reference (2 tools)

  • radiant_get_protocol_info — Glyph protocol type reference

  • radiant_validate_address — Validate an address; show its type (P2PKH/P2SH) and scripthash

Script Tools — offline (2 tools)

  • radiant_decode_script — Decode raw script hex into human-readable opcodes (no network)

  • radiant_compile_script — Compile RadiantScript (.cash/.rxd) source into a deployment artifact (ABI, ASM, hex). Offline; requires the rxdc compiler binary (set RXDC_PATH, or keep the RadiantScript repo as a sibling directory)

On-Chain AI Primitives (9 tools)

  • radiant_create_inference_proof — blake3 inference-proof commitment hash(modelHash ‖ inputHash ‖ output)

  • radiant_verify_inference_proof — Verify an inference-proof commitment off-chain

  • radiant_build_agent_profile — Build an AI-agent identity profile (+ WAVE zone records) with a blake3 commitment

  • radiant_resolve_agent_identity — Resolve an agent's identity (capabilities, pricing, API endpoint) from its WAVE name

  • radiant_check_token_access — Token-gated access check (does an address hold the minimum balance?)

  • radiant_open_channel — Build initial state for a micropayment channel

  • radiant_update_channel — Update channel state (transfer photons payer → payee)

  • radiant_build_data_asset — Build Glyph NFT metadata for a data-marketplace asset

  • radiant_search_data_assets — Search the data marketplace (datasets, models, etc.)

These AI primitives compute commitments/metadata or read chain state — they do not hold keys or broadcast. Use the Transactions tools below to publish their output on-chain.

Write & signing — private keys involved

🔑 The next three categories are the security-relevant surface. See Security & key handling.

Keyring — server-side WIF storage (3 tools)

  • radiant_register_key — Store a WIF private key under an alias in the server-side keyring (~/.radiant-mcp/keyring.json, 0600). Lets signing tools reference the key by key_alias instead of resending the WIF on every call

  • radiant_list_keys — List registered aliases and their derived addresses (WIFs are never returned)

  • radiant_remove_key — Remove an alias from the keyring

Wallet — key generation & derivation (3 tools)

  • radiant_create_wallet — Generate a new wallet (random key, or BIP39 mnemonic with BIP32 HD derivation). Returns the WIF and, if requested, the mnemonic

  • radiant_restore_wallet — Restore a wallet from a BIP39 mnemonic. Returns the derived WIF

  • radiant_derive_address — Derive an address / public key / WIF from a mnemonic + BIP32 path (per-task sub-wallets)

Transactions — build, sign & broadcast (8 tools)

Each accepts either a transient wif (sent through the transport) or a key_alias from the keyring. Unless noted, these sign and broadcast.

  • radiant_send_rxd — Send RXD: select coins, build, sign, broadcast 🔑

  • radiant_send_batch — Send RXD to up to 100 recipients in one transaction 🔑

  • radiant_transfer_token — Transfer a Glyph FT/NFT to another address 🔑

  • radiant_burn_token — Permanently burn a Glyph token (Glyph protocol 6) 🔑

  • radiant_create_ft — Mint a Glyph Fungible Token (2-tx commit+reveal) 🔑

  • radiant_create_nft — Mint a Glyph NFT (2-tx commit+reveal) 🔑

  • radiant_build_transaction — Build and sign a transaction in dry-run mode; returns raw hex/fee/size without broadcasting (set dry_run=false to broadcast). Inspect before committing high-value txs 🔑

  • radiant_estimate_tx_fee — Estimate fee from input/output counts (pure arithmetic — no key, no network, no broadcast)

10 Resources

Static reference data (6)

  • radiant://docs/chain-overview — Blockchain overview

  • radiant://docs/opcodes — Opcode reference (including V2)

  • radiant://docs/protocols — Glyph protocols, dMint algorithms, DAA modes

  • radiant://docs/network-params — Network parameters (JSON)

  • radiant://docs/sdk-quickstart — radiantjs quick-start guide

  • radiant://docs/knowledge-base — Comprehensive AI knowledge base

Dynamic / live data (4)

  • radiant://chain/status — Live chain status (height, tip hash, sync state)

  • radiant://dmint/active — Currently active dMint contracts

  • radiant://network/fees — Fee estimates for several confirmation targets

  • radiant://tokens/popular — Popular fungible tokens and NFT collections

Transports

The same 59 tools and 10 resources are exposed over three transports (all driven by the single source of truth in src/register-tools.ts):

Transport

Entry

Start

Default bind

stdio (MCP)

dist/index.js

npm start / npm run dev

local process (used by Windsurf, Claude Desktop, Cursor)

REST (HTTP)

dist/rest.js

npm run start:rest

127.0.0.1:3080

SSE (MCP over HTTP)

dist/sse.js

npm run start:sse

127.0.0.1:3090

REST API

A standard REST API mirrors the tools for any HTTP client. Key-handling endpoints (/keyring/*, /wallet/*, /tx/*, /token/*) are auth-gated — see Security & key handling.

# Start REST server
npm run start:rest

# Query chain info
curl http://localhost:3080/api/chain

# Get address balance
curl http://localhost:3080/api/address/1A1zP1.../balance

# Search tokens
curl http://localhost:3080/api/tokens/search?q=mytoken

# Full endpoint list
curl http://localhost:3080/api

OpenAPI 3.1 spec: docs/openapi.yaml

Security & key handling

This server has a real write surface. The defaults are loopback-only and conservative, but you should understand them before exposing the server.

How private keys reach the server

  1. Transient WIF — pass wif on each signing call. It travels through the MCP/HTTP transport and may appear in agent transcripts and client logs.

  2. Server-side keyring — call radiant_register_key once, then reference the key by key_alias on later calls. The WIF stays out of subsequent transport/transcripts but is persisted on disk in the keyring file.

The keyring file

  • Location: ~/.radiant-mcp/keyring.json (override with RADIANT_KEYRING_FILE).

  • Permissions: must be 0600 (owner read/write only) on POSIX. The server refuses to load a keyring with looser permissions (chmod 600 <path> to fix), and writes new entries back at 0600.

  • Contents: WIF private keys in plaintext JSON. Anyone who can read this file controls the funds. radiant_list_keys never returns WIFs, but the file itself does contain them.

Network exposure & auth (REST and SSE)

Both HTTP transports default to loopback (HOST=127.0.0.1) so key-handling tools are not exposed to the LAN by accident.

  • REST — key-handling endpoints (/keyring/*, /wallet/create, /wallet/restore, /wallet/derive, /tx/send, /tx/build, /tx/send-batch, /token/create/ft, /token/create/nft, /token/transfer, /token/burn) are wrapped in an auth check:

    • RADIANT_API_TOKEN set → those endpoints require Authorization: Bearer <token>.

    • RADIANT_API_TOKEN unset → those endpoints are loopback-only (127.0.0.1 / ::1); non-loopback requests get 401.

    • This holds even if you set HOST=0.0.0.0 — key endpoints stay locked down until a token is configured. Read-only endpoints are not token-gated, so binding to 0.0.0.0 exposes read queries to the network.

  • SSE — binds loopback by default and logs a warning if HOST is non-loopback, because the SSE transport exposes the WIF-handling tools. Put an authenticated reverse proxy in front before allowing remote access.

To expose write endpoints remotely: set RADIANT_API_TOKEN to a strong secret, set HOST=0.0.0.0 (ideally behind a TLS-terminating reverse proxy), and send the bearer token on every key-handling request.

Safety switch

Set RADIANT_TEST_MODE (to any value other than 0/false) to block real broadcasts — radiant_broadcast_transaction and the signing tools will refuse to publish. Useful for dry runs and CI.

Installation

npm install
npm run build

Configuration

Windsurf / Cascade

Add to your MCP settings (~/.codeium/windsurf/mcp_config.json):

{
  "mcpServers": {
    "radiant": {
      "command": "node",
      "args": ["/path/to/radiant-mcp-server/dist/index.js"],
      "env": {
        "ELECTRUMX_HOST": "electrumx.radiantcore.org",
        "RADIANT_NETWORK": "mainnet"
      }
    }
  }
}

⚠️ This launches the full server, including the keyring, wallet, and signing tools. Any key registered via radiant_register_key is written to ~/.radiant-mcp/keyring.json and is usable by the agent on every subsequent call. Only connect it in an environment you trust to act on those funds.

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "radiant": {
      "command": "node",
      "args": ["/path/to/radiant-mcp-server/dist/index.js"],
      "env": {
        "ELECTRUMX_HOST": "electrumx.radiantcore.org"
      }
    }
  }
}

Environment Variables

Variable

Default

Description

ELECTRUMX_WSS

true

Connect over secure WebSocket (wss://host, port 443). Firewall-proof and works on mobile/corporate networks; requires Node 22+. Set false to use a raw TCP/SSL socket instead.

ELECTRUMX_HOST

electrumx.radiantcore.org

ElectrumX server hostname

ELECTRUMX_PORT

443 (wss) / 50012 (raw)

ElectrumX server port

ELECTRUMX_SSL

true

Use TLS for a raw socket (ignored when ELECTRUMX_WSS=true)

RADIANT_NETWORK

mainnet

Network: mainnet or testnet

HOST

127.0.0.1

Bind address for the REST and SSE servers (loopback by default)

PORT

3080

REST API port (also the SSE fallback port)

SSE_PORT

3090

SSE server port

CORS_ORIGIN

*

CORS allowed origin (REST)

RADIANT_API_TOKEN

(unset)

Bearer token required for key-handling REST endpoints. When unset, those endpoints are loopback-only

RADIANT_KEYRING_FILE

~/.radiant-mcp/keyring.json

Path to the server-side keyring (must be 0600 on POSIX)

RADIANT_TEST_MODE

(unset)

When set (and not 0/false), blocks real transaction broadcasts

RADIANT_RESPONSE_FORMAT

both

Value formatting in responses: satoshis, rxd, or both (satoshis ~halves token cost on balance/UTXO-heavy calls)

RXDC_PATH

(auto-detected)

Path to the rxdc RadiantScript compiler binary, used by radiant_compile_script

Development

# MCP server (development)
npm run dev

# REST API server (development)
npm run dev:rest

# SSE server (development)
npm run dev:sse

# Type check
npm run lint

# Build
npm run build

# Run tests
npx tsx test/smoke.ts   # MCP smoke test (no network)
npx tsx test/live.ts    # MCP live test (ElectrumX)
npx tsx test/rest.ts    # REST API test (ElectrumX)

Architecture

AI Agent (Windsurf/Claude/Cursor)       Web App / HTTP Client
       │ MCP Protocol (stdio / SSE)            │ HTTP/REST
       ▼                                       ▼
radiant-mcp-server (index.ts / sse.ts)  radiant-rest-api (rest.ts)
  ├── Tools (59)                          ├── REST endpoints
  ├── Resources (10)                      ├── OpenAPI 3.1 spec
  │                                       └── bearer-token / loopback auth
  ├── Keyring (~/.radiant-mcp, 0600) ─────────────┤  (key-handling tools)
  └──────────┬────────────────────────────────────┘
             │ Shared ElectrumX Client (TCP/TLS)
             ▼
      RXinDexer / ElectrumX
        (Glyph + WAVE + Swap + dMint APIs)

All transports register the same tools/resources via src/register-tools.ts.

About Radiant

Radiant (RXD) is a Layer 1 UTXO proof-of-work blockchain with native digital asset support. Key features:

  • SHA512/256d mining algorithm

  • Glyph token standard (FT, NFT, dMint, WAVE names, 11 protocol types)

  • 256 MB blocks, 5 minute block time

  • 21 billion max supply

  • V2 opcodes (block 410,000+): OP_BLAKE3, OP_K12, OP_LSHIFT, OP_RSHIFT, OP_2MUL, OP_2DIV

License

MIT

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Radiant-Core/radiant-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server