loop-mcp
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
15 pay-per-call Bitcoin and developer tools, paid in sats over Lightning (L402).
| Author | com.loopxxi |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2551 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"loop-mcp": {
"url": "https://mcp.loopxxi.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (15)
btc_priceread-onlyGet the current Bitcoin price in USD and other major currencies. Source: mempool.space. Real-time.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
btc_send_decisionread-onlyReturns 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.
Parameters:
urgency— string — How time-sensitive is your transaction? low=economy, medium=default, high=next-block.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
lightning_address_resolveread-onlyResolve 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.
Parameters:
address(required) — string — Lightning Address in [email protected] format.amount_sats(required) — integer — Amount you want to send, in satoshis.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
tx_decode_explainread-onlyFetch 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.
Parameters:
txid(required) — string — Bitcoin transaction ID (64 hex characters).
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
optimal_send_windowread-onlyBitcoin 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.
Parameters:
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.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
json_validateread-onlyValidate JSON, identify its root type, and return normalized JSON plus a SHA-256 content hash.
Parameters:
json(required) — string — JSON text to validate, up to 100 KB.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
json_extractread-onlyExtract one value from JSON using a simple dot path with array indexes, for example users[0].email.
Parameters:
json(required) — string — JSON text, up to 100 KB.path(required) — string — Dot path such as user.profile.name or users[0].email.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
csv_to_jsonread-onlyConvert CSV, TSV, semicolon, or pipe-delimited text into structured JSON with bounded row output.
Parameters:
csv(required) — 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.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
text_analyzeread-onlyReturn deterministic text statistics, estimated tokens, reading time, and a SHA-256 content hash.
Parameters:
text(required) — string — Text to analyze, up to 100 KB.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
hash_generateread-onlyGenerate a SHA-256 or SHA-512 digest in hexadecimal or Base64 form.
Parameters:
text(required) — string — Input text, up to 100 KB.encoding— string — Output encoding. Default hex.algorithm— string — Hash algorithm. Default sha256.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
base64_convertread-onlyEncode UTF-8 text to Base64 or decode Base64 safely, with standard and URL-safe alphabets.
Parameters:
data(required) — string — Text or Base64 data, up to 100 KB.action(required) — stringurl_safe— boolean — Use the URL-safe alphabet without padding.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
timestamp_convertread-onlyConvert Unix seconds, Unix milliseconds, RFC3339, or ISO dates into normalized UTC timestamp forms.
Parameters:
value(required) — string — Timestamp value.from— string — Input format. Default auto.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
uuid_generateread-onlyGenerate one to one hundred cryptographically random RFC 4122 UUID version 4 identifiers.
Parameters:
count— integer — Number of UUIDs. Default 1.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
url_parseread-onlyParse an HTTP or HTTPS URL into normalized scheme, host, port, path, query, and fragment fields without fetching it.
Parameters:
url(required) — string — Absolute HTTP or HTTPS URL, up to 4,096 characters.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
jwt_decoderead-onlyDecode JWT header and payload claims locally without verifying the signature. The response always marks verification as false.
Parameters:
token(required) — string — JWT compact serialization, up to 20 KB.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.