loop-mcp
REMOTE · MCP.LOOPXXI.COM
15 pay-per-call Bitcoin and developer tools, paid in sats over Lightning (L402).
Available components
Last scanned (5 hours ago)
Scores higher than 76% of remote servers
Unreachable for 1 day in a row. Last reached 4 Nov 2026.
Category Crypto and Web3
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security11
- TLS not yet verified: we couldn't open a connection to check the certificate. View diagnostics → Unverified
- Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS not yet verified: we couldn't read the response headers to check for it. View diagnostics → Unverified
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport check failed: declared streamable-http, but we couldn't connect to verify it. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability0
- Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
- Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
- Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified
Unverified: 5 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 0
- Endpoint reachability: reachable → unreachable ▼ security
- HSTS header: fail → unverified ▼ security
- Authorization: partial → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- TLS certificate: pass → unverified ▼ security
- Stability: 0.90 → unverified ▼ security
- Transport: pass → fail ▼ security
- Capabilities: fail → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- 4 Nov 26 0
- Tool “btc_price” rewrote its description, which is the text the model reads security
- Server version: 2.4.0 → 2.4.1 functional
- 3 Nov 26 0
- Tool “base64_convert” rewrote its description, which is the text the model reads security
- Tool “btc_price” rewrote its description, which is the text the model reads security
- Tool “btc_send_decision” rewrote its description, which is the text the model reads security
- Tool “csv_to_json” rewrote its description, which is the text the model reads security
- Tool “hash_generate” rewrote its description, which is the text the model reads security
- Tool “json_extract” rewrote its description, which is the text the model reads security
- Tool “json_validate” rewrote its description, which is the text the model reads security
- Tool “jwt_decode” rewrote its description, which is the text the model reads security
- Tool “lightning_address_resolve” rewrote its description, which is the text the model reads security
- Tool “optimal_send_window” rewrote its description, which is the text the model reads security
- Tool “text_analyze” rewrote its description, which is the text the model reads security
- Tool “timestamp_convert” rewrote its description, which is the text the model reads security
- Tool “tx_decode_explain” rewrote its description, which is the text the model reads security
- Tool “url_parse” rewrote its description, which is the text the model reads security
- Tool “uuid_generate” rewrote its description, which is the text the model reads security
- Schema quality: excellent → good functional
- “base64_convert” reworded the description of “l402_proof” cosmetic
- “btc_price” reworded the description of “l402_proof” cosmetic
- “btc_send_decision” reworded the description of “l402_proof” cosmetic
- “csv_to_json” reworded the description of “l402_proof” cosmetic
- “hash_generate” reworded the description of “l402_proof” cosmetic
- “json_extract” reworded the description of “l402_proof” cosmetic
- “json_validate” reworded the description of “l402_proof” cosmetic
- “jwt_decode” reworded the description of “l402_proof” cosmetic
- “lightning_address_resolve” reworded the description of “l402_proof” cosmetic
- “optimal_send_window” reworded the description of “l402_proof” cosmetic
- “text_analyze” reworded the description of “l402_proof” cosmetic
- “timestamp_convert” reworded the description of “l402_proof” cosmetic
- “tx_decode_explain” reworded the description of “l402_proof” cosmetic
- “url_parse” reworded the description of “l402_proof” cosmetic
- “uuid_generate” reworded the description of “l402_proof” cosmetic
- 2 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Oct 26 −1
- Tool “base64_convert” rewrote its description, which is the text the model reads security
- Tool “btc_price” rewrote its description, which is the text the model reads security
- Tool “btc_send_decision” rewrote its description, which is the text the model reads security
- Tool “csv_to_json” rewrote its description, which is the text the model reads security
- Tool “hash_generate” rewrote its description, which is the text the model reads security
- Tool “json_extract” rewrote its description, which is the text the model reads security
- Tool “json_validate” rewrote its description, which is the text the model reads security
- Tool “jwt_decode” rewrote its description, which is the text the model reads security
- Tool “lightning_address_resolve” rewrote its description, which is the text the model reads security
- Tool “optimal_send_window” rewrote its description, which is the text the model reads security
- Tool “text_analyze” rewrote its description, which is the text the model reads security
- Tool “timestamp_convert” rewrote its description, which is the text the model reads security
- Tool “tx_decode_explain” rewrote its description, which is the text the model reads security
- Tool “url_parse” rewrote its description, which is the text the model reads security
- Tool “uuid_generate” rewrote its description, which is the text the model reads security
- Schema quality: pass → fail ▼ functional
- “base64_convert” added an optional parameter “l402_proof” cosmetic
- “btc_price” added an optional parameter “l402_proof” cosmetic
- “btc_send_decision” added an optional parameter “l402_proof” cosmetic
- “csv_to_json” added an optional parameter “l402_proof” cosmetic
- “hash_generate” added an optional parameter “l402_proof” cosmetic
- “json_extract” added an optional parameter “l402_proof” cosmetic
- “json_validate” added an optional parameter “l402_proof” cosmetic
- “jwt_decode” added an optional parameter “l402_proof” cosmetic
- “lightning_address_resolve” added an optional parameter “l402_proof” cosmetic
- “optimal_send_window” added an optional parameter “l402_proof” cosmetic
- “text_analyze” added an optional parameter “l402_proof” cosmetic
- “timestamp_convert” added an optional parameter “l402_proof” cosmetic
- “tx_decode_explain” added an optional parameter “l402_proof” cosmetic
- “url_parse” added an optional parameter “l402_proof” cosmetic
- “uuid_generate” added an optional parameter “l402_proof” cosmetic
- “lightning_address_resolve” reworded the description of “amount_sats” cosmetic
- 26 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://mcp.loopxxi.com/mcp
TLS unreached
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.loopxxi.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| loopxxi.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Inconclusive
We could not reach the endpoint well enough to judge its authorisation posture.
| Result | Inconclusive |
|---|
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.loopxxi.com/mcp | Unreachable | ||
| http (plaintext) | http://mcp.loopxxi.com/mcp | HTTPS enforced |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
base64_convert ~128
Encode UTF-8 text to Base64 or decode Base64 safely, with standard and URL-safe alphabets.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| data | string | yes | Text or Base64 data, up to 100 KB. |
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
| url_safe | boolean | – | Use the URL-safe alphabet without padding. |
No output schema declared.
No examples provided.
btc_price ~120
Get the current Bitcoin price in USD and other major currencies. Source: mempool.space. Real-time. Each reading carries source (the URL read), fetched_at (UTC, RFC 3339) and source_sha256 (SHA-256 of the upstream body as served).
| Name | Type | Req | Description |
|---|---|---|---|
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
No output schema declared.
No examples provided.
btc_send_decision ~174
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.
| Name | Type | Req | Description |
|---|---|---|---|
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
| urgency | string | – | How time-sensitive is your transaction? low=economy, medium=default, high=next-block. |
No output schema declared.
No examples provided.
csv_to_json ~150
Convert CSV, TSV, semicolon, or pipe-delimited text into structured JSON with bounded row output.
| Name | Type | Req | Description |
|---|---|---|---|
| csv | string | yes | Delimited text, up to 100 KB. |
| delimiter | string | – | Delimiter name. Default comma. |
| header | boolean | – | Use the first row as object keys. Default true. |
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
| max_rows | integer | – | Maximum data rows to return. Default 100. |
No output schema declared.
No examples provided.
hash_generate ~122
Generate a SHA-256 or SHA-512 digest in hexadecimal or Base64 form.
| Name | Type | Req | Description |
|---|---|---|---|
| algorithm | string | – | Hash algorithm. Default sha256. |
| encoding | string | – | Output encoding. Default hex. |
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
| text | string | yes | Input text, up to 100 KB. |
No output schema declared.
No examples provided.
json_extract ~122
Extract one value from JSON using a simple dot path with array indexes, for example users[0].email.
| Name | Type | Req | Description |
|---|---|---|---|
| json | string | yes | JSON text, up to 100 KB. |
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
| path | string | yes | Dot path such as user.profile.name or users[0].email. |
No output schema declared.
No examples provided.
json_validate ~102
Validate JSON, identify its root type, and return normalized JSON plus a SHA-256 content hash.
| Name | Type | Req | Description |
|---|---|---|---|
| json | string | yes | JSON text to validate, up to 100 KB. |
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
No output schema declared.
No examples provided.
jwt_decode ~101
Decode JWT header and payload claims locally without verifying the signature. The response always marks verification as false.
| Name | Type | Req | Description |
|---|---|---|---|
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
| token | string | yes | JWT compact serialization, up to 20 KB. |
No output schema declared.
No examples provided.
lightning_address_resolve ~154
Resolve a Lightning Address (user@domain.com) 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.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Lightning Address in user@domain.com format. |
| amount_sats | integer | yes | Amount you want to send, in satoshis. At most 100000000 (1 BTC). |
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
No output schema declared.
No examples provided.
optimal_send_window ~230
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.
| Name | Type | Req | Description |
|---|---|---|---|
| hours_ahead | integer | – | How far ahead to search for the optimal window (1-6h, default 4). |
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
| 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. |
No output schema declared.
No examples provided.
text_analyze ~101
Return deterministic text statistics, estimated tokens, reading time, and a SHA-256 content hash.
| Name | Type | Req | Description |
|---|---|---|---|
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
| text | string | yes | Text to analyze, up to 100 KB. |
No output schema declared.
No examples provided.
timestamp_convert ~106
Convert Unix seconds, Unix milliseconds, RFC3339, or ISO dates into normalized UTC timestamp forms.
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | – | Input format. Default auto. |
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
| value | string | yes | Timestamp value. |
No output schema declared.
No examples provided.
tx_decode_explain ~168
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.
| Name | Type | Req | Description |
|---|---|---|---|
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
| txid | string | yes | Bitcoin transaction ID (64 hex characters). |
No output schema declared.
No examples provided.
url_parse ~110
Parse an HTTP or HTTPS URL into normalized scheme, host, port, path, query, and fragment fields without fetching it.
| Name | Type | Req | Description |
|---|---|---|---|
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
| url | string | yes | Absolute HTTP or HTTPS URL, up to 4,096 characters. |
No output schema declared.
No examples provided.
uuid_generate ~98
Generate one to one hundred cryptographically random RFC 4122 UUID version 4 identifiers.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | Number of UUIDs. Default 1. |
| l402_proof | string | – | L402 payment proof "<macaroon>:<preimage>". Omit on the first call; an unpaid call returns a 0 sat Lightning invoice and the macaroon. Pay the invoice, then repeat the call with this argument set. |
No output schema declared.
No examples provided.
How do I install the loop-mcp server?
loop-mcp is a hosted endpoint at https://mcp.loopxxi.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.loopxxi.com
claude mcp add --transport http com-loopxxi-loop-mcp 'https://mcp.loopxxi.com/mcp'
What is the loop-mcp server?
loop-mcp is listed in the public MCP registry as com.loopxxi/loop-mcp. 15 pay-per-call Bitcoin and developer tools, paid in sats over Lightning (L402). This page covers its hosted endpoint (https://mcp.loopxxi.com/mcp).
Is the loop-mcp server safe to use?
loop-mcp scores 78 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the loop-mcp server expose?
loop-mcp exposes 15 tools: btc_price, btc_send_decision, lightning_address_resolve, tx_decode_explain, optimal_send_window, and 10 more. Their descriptions and schemas cost roughly 1,986 tokens of context every time the server is loaded.
Does the loop-mcp server require authentication?
Its publisher declares no required credentials for loop-mcp. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.
Is the loop-mcp server still maintained?
loop-mcp is still listed in the MCP registry, though our most recent checks did not reach this channel. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.