15 pay-per-call Bitcoin and developer tools, paid in sats over Lightning (L402).
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Encode UTF-8 text to Base64 or decode Base64 safely, with standard and URL-safe alphabets.
Text or Base64 data, up to 100 KB.
Use the URL-safe alphabet without padding.
Encode UTF-8 text to Base64 or decode Base64 safely, with standard and URL-safe alphabets.
| Argument | Type | Description |
|---|---|---|
| data* | string | Text or Base64 data, up to 100 KB. |
| action* | string | |
| url_safe | boolean | Use the URL-safe alphabet without padding. |
{
"type": "object",
"required": [
"data",
"action"
],
"properties": {
"data": {
"type": "string",
"description": "Text or Base64 data, up to 100 KB."
},
"action": {
"enum": [
"encode",
"decode"
],
"type": "string"
},
"url_safe": {
"type": "boolean",
"description": "Use the URL-safe alphabet without padding."
}
}
}Get the current Bitcoin price in USD and other major currencies. Source: mempool.space. Real-time.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}Returns a composited send-or-wait recommendation for a Bitcoin transaction. Fetches live mempool and fee data, then outputs a machine-actionable verdict (SEND_NOW, WAIT, or URGENT_ONLY) with fee rates in sat/vB, mempool pressure level, and estimated savings if you wait. Ideal for agents that need a single decision call instead of parsing multiple raw mempool endpoints.
| Argument | Type | Description |
|---|---|---|
| urgency | string | How time-sensitive is your transaction? low=economy, medium=default, high=next-block. |
{
"type": "object",
"required": [],
"properties": {
"urgency": {
"enum": [
"low",
"medium",
"high"
],
"type": "string",
"description": "How time-sensitive is your transaction? low=economy, medium=default, high=next-block."
}
}
}Convert CSV, TSV, semicolon, or pipe-delimited text into structured JSON with bounded row output.
| Argument | Type | Description |
|---|---|---|
| csv* | string | Delimited text, up to 100 KB. |
| header | boolean | Use the first row as object keys. Default true. |
| max_rows | integer | Maximum data rows to return. Default 100. |
| delimiter | string | Delimiter name. Default comma. |
{
"type": "object",
"required": [
"csv"
],
"properties": {
"csv": {
"type": "string",
"description": "Delimited text, up to 100 KB."
},
"header": {
"type": "boolean",
"description": "Use the first row as object keys. Default true."
},
"max_rows": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Maximum data rows to return. Default 100."
},
"delimiter": {
"enum": [
"comma",
"tab",
"semicolon",
"pipe"
],
"type": "string",
"description": "Delimiter name. Default comma."
}
}
}Generate a SHA-256 or SHA-512 digest in hexadecimal or Base64 form.
| Argument | Type | Description |
|---|---|---|
| text* | string | Input text, up to 100 KB. |
| encoding | string | Output encoding. Default hex. |
| algorithm | string | Hash algorithm. Default sha256. |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Input text, up to 100 KB."
},
"encoding": {
"enum": [
"hex",
"base64"
],
"type": "string",
"description": "Output encoding. Default hex."
},
"algorithm": {
"enum": [
"sha256",
"sha512"
],
"type": "string",
"description": "Hash algorithm. Default sha256."
}
}
}Extract one value from JSON using a simple dot path with array indexes, for example users[0].email.
| Argument | Type | Description |
|---|---|---|
| json* | string | JSON text, up to 100 KB. |
| path* | string | Dot path such as user.profile.name or users[0].email. |
{
"type": "object",
"required": [
"json",
"path"
],
"properties": {
"json": {
"type": "string",
"description": "JSON text, up to 100 KB."
},
"path": {
"type": "string",
"description": "Dot path such as user.profile.name or users[0].email."
}
}
}Validate JSON, identify its root type, and return normalized JSON plus a SHA-256 content hash.
| Argument | Type | Description |
|---|---|---|
| json* | string | JSON text to validate, up to 100 KB. |
{
"type": "object",
"required": [
"json"
],
"properties": {
"json": {
"type": "string",
"description": "JSON text to validate, up to 100 KB."
}
}
}Decode JWT header and payload claims locally without verifying the signature. The response always marks verification as false.
| Argument | Type | Description |
|---|---|---|
| token* | string | JWT compact serialization, up to 20 KB. |
{
"type": "object",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"description": "JWT compact serialization, up to 20 KB."
}
}
}Resolve a Lightning Address ([email protected]) to a payable BOLT11 invoice for a given amount. Handles the full LNURL-pay protocol internally. Returns the invoice plus min/max sendable amounts for validation.
| Argument | Type | Description |
|---|---|---|
| address* | string | Lightning Address in [email protected] format. |
| amount_sats* | integer | Amount you want to send, in satoshis. |
{
"type": "object",
"required": [
"address",
"amount_sats"
],
"properties": {
"address": {
"type": "string",
"description": "Lightning Address in [email protected] format."
},
"amount_sats": {
"type": "integer",
"minimum": 1,
"description": "Amount you want to send, in satoshis."
}
}
}Bitcoin transaction timing intelligence. Returns a congestion forecast for the next 1-4h, a recommended UTC send window when fees are projected at/below your target, a fee trajectory (rising/stable/falling) with a calibrated confidence score, next-block minimum fee, confirmation targets for 3/6/144 blocks, and an RBF-viability flag. A synthesis layer above raw fee data — the decision an autonomous payment agent needs before broadcasting. Source: mempool.space.
| Argument | Type | Description |
|---|---|---|
| hours_ahead | integer | How far ahead to search for the optimal window (1-6h, default 4). |
| target_sat_vb | number | Your fee ceiling in sat/vB. The recommended window targets at-or-below this rate. Omit to get the lowest-projected window. |
{
"type": "object",
"required": [],
"properties": {
"hours_ahead": {
"type": "integer",
"maximum": 6,
"minimum": 1,
"description": "How far ahead to search for the optimal window (1-6h, default 4)."
},
"target_sat_vb": {
"type": "number",
"description": "Your fee ceiling in sat/vB. The recommended window targets at-or-below this rate. Omit to get the lowest-projected window."
}
}
}Return deterministic text statistics, estimated tokens, reading time, and a SHA-256 content hash.
| Argument | Type | Description |
|---|---|---|
| text* | string | Text to analyze, up to 100 KB. |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Text to analyze, up to 100 KB."
}
}
}Convert Unix seconds, Unix milliseconds, RFC3339, or ISO dates into normalized UTC timestamp forms.
| Argument | Type | Description |
|---|---|---|
| from | string | Input format. Default auto. |
| value* | string | Timestamp value. |
{
"type": "object",
"required": [
"value"
],
"properties": {
"from": {
"enum": [
"auto",
"unix",
"unix_ms",
"rfc3339",
"date"
],
"type": "string",
"description": "Input format. Default auto."
},
"value": {
"type": "string",
"description": "Timestamp value."
}
}
}Fetch a Bitcoin transaction by txid and return a structured, agent-ready summary: type (P2WPKH/P2TR/P2SH/etc.), input/output counts, fees, fee rate in sat/vB, confirmation status, RBF flag, SegWit/Taproot flags, and a one-line agent_summary string ready for LLM context injection. Saves 500-2000 tokens vs parsing raw TX JSON.
| Argument | Type | Description |
|---|---|---|
| txid* | string | Bitcoin transaction ID (64 hex characters). |
{
"type": "object",
"required": [
"txid"
],
"properties": {
"txid": {
"type": "string",
"maxLength": 64,
"minLength": 64,
"description": "Bitcoin transaction ID (64 hex characters)."
}
}
}Parse an HTTP or HTTPS URL into normalized scheme, host, port, path, query, and fragment fields without fetching it.
| Argument | Type | Description |
|---|---|---|
| url* | string | Absolute HTTP or HTTPS URL, up to 4,096 characters. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Absolute HTTP or HTTPS URL, up to 4,096 characters."
}
}
}Generate one to one hundred cryptographically random RFC 4122 UUID version 4 identifiers.
| Argument | Type | Description |
|---|---|---|
| count | integer | Number of UUIDs. Default 1. |
{
"type": "object",
"required": [],
"properties": {
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Number of UUIDs. Default 1."
}
}
}