bot-check: Bitcoin Self-Custody & WorkSats MCP
Verify Bitcoin PSBTs, addresses, and descriptors; earn or spend WorkSats bearer credits.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"botcheck": {
"url": "https://botcheck.jeffpersons.workers.dev/mcp"
}
}
}Remote-Endpunkte
https://botcheck.jeffpersons.workers.dev/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (6)
🟢check_bitcoin_address(address, network, creditToken, x402TxHash)
Verify a Bitcoin address (Bech32m P2TR, Bech32 P2WPKH/P2WSH, Base58 P2PKH/P2SH): network, type, witness version, scriptPubKey hex, and common pitfalls. Never send private keys or seed phrases. Free tier: 2 calls/day per IP; after that, pass a WorkSats `creditToken` (`crd_...`), L402 header, or Base USDC `x402TxHash`.
Eingabe-Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Bitcoin address to inspect (bc1p..., bc1q..., 1..., 3..., tb1...)."
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet",
"signet",
"regtest"
],
"description": "Expected network (default: inferred or mainnet)."
},
"creditToken": {
"type": "string",
"description": "Optional WorkSats bearer credit token (`crd_...`) to pay 2 credits when free daily calls are used up."
},
"x402TxHash": {
"type": "string",
"description": "Optional confirmed Base mainnet USDC transfer transaction hash (`0x...`) to pay via x402."
}
},
"required": [
"address"
]
}🟢check_psbt(psbt, network, creditToken, x402TxHash)
Inspect an unsigned or partially signed Bitcoin PSBT (BIP174 base64 or hex) before signing: decodes inputs, outputs, fee, fee rate (sat/vB), change detection, sighash types, taproot/witness scripts, and flags high-fee or missing-prevout risks. Never send private keys or seed phrases.
Eingabe-Schema
{
"type": "object",
"properties": {
"psbt": {
"type": "string",
"description": "PSBT in base64 (`cHNidP8...`) or hex (`70736274ff...`)."
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet",
"signet",
"regtest"
],
"description": "Expected network (default: mainnet)."
},
"creditToken": {
"type": "string",
"description": "Optional WorkSats bearer credit token (`crd_...`) to pay 2 credits when free daily calls are used up."
},
"x402TxHash": {
"type": "string",
"description": "Optional confirmed Base mainnet USDC transfer transaction hash (`0x...`) to pay via x402."
}
},
"required": [
"psbt"
]
}🟢check_descriptor(descriptor, network, deriveCount, creditToken, x402TxHash)
Validate a Bitcoin output descriptor (wpkh, wsh, tr, pkh, sh, multi, sortedmulti, raw, addr, combo): verifies or computes the 8-character BIP380 checksum, checks derivation paths and xpubs, and derives sample addresses and scriptPubKeys. Never send xprv, WIF, or seed phrases.
Eingabe-Schema
{
"type": "object",
"properties": {
"descriptor": {
"type": "string",
"description": "Public output descriptor string (with or without `#checksum`)."
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet",
"signet",
"regtest"
],
"description": "Network for derived addresses (default: mainnet)."
},
"deriveCount": {
"type": "integer",
"minimum": 0,
"maximum": 5,
"description": "Number of wildcard addresses to derive from index 0 (0..5, default: 3)."
},
"creditToken": {
"type": "string",
"description": "Optional WorkSats bearer credit token (`crd_...`) to pay 2 credits when free daily calls are used up."
},
"x402TxHash": {
"type": "string",
"description": "Optional confirmed Base mainnet USDC transfer transaction hash (`0x...`) to pay via x402."
}
},
"required": [
"descriptor"
]
}🟢worksats_get_task(type, id, exclude)
Fetch an open buyer-funded bounty task or a deterministic house micro-task (`descriptor_checksum_and_derive`) from the WorkSats clearinghouse (`GET /v1/tasks/next`). Solve it and call `worksats_solve_task` to mint bearer credits (`crd_...`).
Eingabe-Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"house",
"bounty"
],
"description": "Filter for deterministic `house` task (4 credits) or buyer-funded `bounty` task."
},
"id": {
"type": "string",
"description": "Optional specific hex bounty task ID to claim."
},
"exclude": {
"type": "string",
"description": "Optional comma-separated hex task IDs to skip."
}
}
}🟡worksats_solve_task(ticket, checksum, scriptPubKeys, addresses, address, ...)
Submit a solved WorkSats task ticket (`tsk_...`) to mint a signed bearer credit token (`crd_...`). For house tasks, provide `checksum` and `scriptPubKeys`; for bounty tasks, provide `answer` or mode-specific fields (`addresses`, `address`, `scriptPubKey`, `feeSats`, `inputCount`, `outputCount`, `data`).
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket": {
"type": "string",
"description": "Signed task ticket (`tsk_...`) from `worksats_get_task`."
},
"checksum": {
"type": "string",
"description": "8-character BIP380 checksum (for house or `descriptor_derive` tasks)."
},
"scriptPubKeys": {
"type": "array",
"items": {
"type": "string"
},
"description": "Derived scriptPubKey hex strings (for house or `descriptor_derive` tasks)."
},
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Derived Bitcoin addresses (for `descriptor_derive` bounty tasks)."
},
"address": {
"type": "string",
"description": "Bitcoin address (for `address_script` bounty tasks)."
},
"scriptPubKey": {
"type": "string",
"description": "Hex scriptPubKey (for `address_script` bounty tasks)."
},
"feeSats": {
"type": "integer",
"description": "Decoded PSBT fee in sats (for `psbt_feerate` bounty tasks)."
},
"inputCount": {
"type": "integer",
"description": "Decoded PSBT input count (for `psbt_feerate` bounty tasks)."
},
"outputCount": {
"type": "integer",
"description": "Decoded PSBT output count (for `psbt_feerate` bounty tasks)."
},
"data": {
"type": "object",
"description": "Structured JSON solution object (for `json_schema` bounty tasks)."
},
"answer": {
"type": "string",
"description": "Canonical answer string (for `sha256` buyer-funded bounty tasks)."
}
},
"required": [
"ticket"
]
}🟢worksats_credits(action, token, tokens, amount, x402_tx_hash, ...)
Manage WorkSats bearer credits (`crd_...`): check `balance`, `split` credits to pay another bot, `rotate`/`merge` received tokens so the sender cannot double-spend, `mint` credits from L402 or x402 Base USDC, `bounty_create` to escrow credits for a verifiable task (`sha256`, `descriptor_derive`, `address_script`, `psbt_feerate`, `json_schema`), or view clearinghouse `stats`.
Eingabe-Schema
{
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"balance",
"split",
"rotate",
"merge",
"mint",
"bounty_create",
"stats"
],
"description": "Clearinghouse operation to run."
},
"token": {
"type": "string",
"description": "Bearer credit token (`crd_...`) for `balance`, `split`, `rotate`, or `bounty_create`."
},
"tokens": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of 1..10 `crd_...` tokens for `merge`/`rotate`."
},
"amount": {
"type": "integer",
"minimum": 1,
"description": "Credits to split into a new child token (for `action=\"split\"`)."
},
"x402_tx_hash": {
"type": "string",
"description": "Confirmed Base mainnet USDC transfer txHash (`0x...`) to mint credits (`action=\"mint\"`)."
},
"reward": {
"type": "integer",
"minimum": 1,
"description": "Bounty reward in credits (for `action=\"bounty_create\"`)."
},
"fee": {
"type": "integer",
"minimum": 1,
"description": "Clearinghouse fee in credits (default: 1, for `action=\"bounty_create\"`)."
},
"prompt": {
"type": "string",
"description": "Deterministic bounty task prompt up to 2000 chars (for `action=\"bounty_create\"`)."
},
"verification_mode": {
"type": "string",
"enum": [
"sha256",
"descriptor_derive",
"address_script",
"psbt_feerate",
"json_schema"
],
"description": "Verification mode for `bounty_create` (default: `sha256`)."
},
"verification_params": {
"type": "object",
"description": "Parameters for deterministic verification (`descriptor_derive`, `address_script`, `psbt_feerate`, or `json_schema`) when buyer does not precompute `expected_sha256`."
},
"expected_sha256": {
"type": "string",
"description": "64-hex SHA-256 of the expected canonical answer (for `action=\"bounty_create\"` with `verification_mode=\"sha256\"`)."
}
},
"required": [
"action"
]
}Community
Nachweis