Overview
UTEXO MCP is a hosted Model Context Protocol server. It gives any MCP-capable AI client a set of read-only Bitcoin tools and offline Bitcoin/RGB utilities, plus a curated overview of the UTEXO Protocol.
The server requires no API keys and holds no secrets. Every tool is either a read-only query against public Bitcoin data or a pure, offline computation. It cannot move funds, sign anything, or access your wallet.
Endpoint & transport
| Endpoint | https://mcp.gogettest.online/mcp |
|---|---|
| Transport | Streamable HTTP (MCP), stateless — one request per call |
| Method | POST (JSON-RPC 2.0 body) |
| Auth | None |
| Health check | GET /health → {"status":"ok"} |
| Descriptor | GET /info → server name, version and tool list |
Add to Claude
Claude (Pro, Team or Enterprise) supports remote MCP servers as custom connectors:
- Open Settings → Connectors.
- Click Add custom connector.
- Name it UTEXO and paste the URL https://mcp.gogettest.online/mcp.
- Save. Start a new chat — the UTEXO tools are now available and Claude will call them when relevant.
Try it with a prompt like: "What are the current Bitcoin fees, and how many confirmations does transaction <txid> have?"
Add to Cursor
Click the button below (or in Settings → MCP → Add new MCP server, choose an HTTP server and paste the URL):
Equivalent manual entry in ~/.cursor/mcp.json:
{
"mcpServers": {
"utexo": { "url": "https://mcp.gogettest.online/mcp" }
}
}
Add to VS Code
VS Code (1.101+) supports MCP servers with GitHub Copilot agent mode:
Or add to your .vscode/mcp.json (workspace) / user settings:
{
"servers": {
"utexo": { "type": "http", "url": "https://mcp.gogettest.online/mcp" }
}
}
Claude Desktop & other stdio clients
Clients that only support local stdio servers can reach the hosted endpoint through the mcp-remote bridge (requires Node.js). Add this to claude_desktop_config.json and restart:
{
"mcpServers": {
"utexo": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.gogettest.online/mcp"]
}
}
}
Other clients & quick test
Any MCP client that speaks Streamable HTTP works. To smoke-test from a terminal:
# List available tools
curl -s https://mcp.gogettest.online/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Inspect interactively with the official MCP Inspector pointed at the endpoint URL.
Tool reference
utexo_project_info
Returns a concise, curated overview of the UTEXO Protocol and its building blocks. No parameters.
bitcoin_network_status
Current chain tip height, recommended fee rates (sat/vB) and a mempool summary. No parameters.
bitcoin_fee_estimates
Recommended fee rates in sat/vByte for fastest, half-hour, hour, economy and minimum targets. No parameters.
bitcoin_price
Current Bitcoin spot price in major fiat currencies (USD, EUR, GBP, JPY, CAD, CHF, AUD). No parameters.
estimate_transaction_fee
| Parameter | Type | Description |
|---|---|---|
| vbytes | number (optional) | Transaction virtual size in vBytes, if known. |
| inputs | integer (optional) | Number of inputs — used with outputs to approximate vsize when vbytes is omitted. |
| outputs | integer (optional) | Number of outputs. |
| priority | enum (optional) | fastest | halfHour | hour | economy | minimum (default halfHour). |
Returns the chosen fee rate, vsize used and the total fee in sats and BTC, using live recommended rates.
bitcoin_address
| Parameter | Type | Description |
|---|---|---|
| address | string | A Bitcoin address (legacy, P2SH, bech32 or taproot). |
Returns confirmed + mempool balance (sats and BTC) and transaction counts.
bitcoin_transaction
| Parameter | Type | Description |
|---|---|---|
| txid | string (64 hex) | The transaction id. |
Returns confirmation status, confirmation count, block height, fee, size/weight and input/output counts.
bitcoin_block
| Parameter | Type | Description |
|---|---|---|
| height | integer (optional) | Block height. |
| hash | string (optional) | Block hash (64 hex). Provide exactly one of height or hash. |
Returns header details: hash, height, timestamp, tx count, merkle root, difficulty, bits, nonce, previous hash.
verify_merkle_proof
| Parameter | Type | Description |
|---|---|---|
| txid | string (64 hex) | Transaction id, display (big-endian) order. |
| position | integer | Transaction index within the block. |
| merklePath | string[] | Sibling hashes leaf→root, display order. Empty for single-tx blocks. |
| merkleRoot | string (64 hex) | Block merkle root, display order. |
Reconstructs the merkle root from the proof and reports whether the transaction is included. Runs fully offline. It enforces the "all index bits consumed" rule (Bitcoin Core's CPartialMerkleTree invariant) so a proof cannot validate at a fabricated position.
Self-hosting
The server is a small Node.js app (MIT licensed). To run your own instance:
git clone https://github.com/Alicepoltora/utexo-mcp.git
cd utexo-mcp
npm install
PORT=8791 npm start
# MCP endpoint: http://127.0.0.1:8791/mcp
Configuration via environment variables: PORT (default 8791), HOST (default 127.0.0.1), and BITCOIN_API_BASE (default https://mempool.space/api — point it at your own mempool/esplora instance if you prefer). Put it behind a TLS reverse proxy for public use.
Privacy & limits
- No secrets. The server stores nothing and requires no credentials.
- Read-only. It cannot sign transactions, move funds or touch a wallet.
- Aggregate analytics only. The landing page counts anonymous "which client did you connect with" clicks (e.g. Claude vs Cursor). No cookies, IP addresses or user agents are stored — just per-event tallies, viewable at /stats.
- Third-party data. Bitcoin queries are proxied to a public mempool.space-compatible API; those requests are subject to that provider's availability and rate limits.
- Best-effort availability. Provided as-is under the MIT license, with no warranty.