Sats4AI - Bitcoin-Powered AI Tools
REMOTE · SATS4AI.COM · 2 COMPONENTS · SCANNED SEP 20
40+ Lightning-paid AI tools for agents: calls, SMS, fax, voice, translation. No signup, no keys.
Available components
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 Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: this server exposes a tool marked destructive (send_email) and its handshake is open, but we could not confirm whether a tool call is gated, so we do not assert it is callable unauthenticated. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability75
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 20562 tokens (~342/item across 60 items; 57 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management98
- Stability check failed: schema churn in the 30 days we've observed: 0 tool removals, 2 breaking changes, 0 auth/transport breaks, 3 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety84
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 3 of 8 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "merge_pdfs" implies "merge" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Partial
- An AI judge read all 59 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the Sats4AI - Bitcoin-Powered AI Tools MCP server?
Sats4AI - Bitcoin-Powered AI Tools is a hosted endpoint at https://sats4ai.com/api/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 · sats4ai.com
claude mcp add --transport http cnghockey-sats4ai 'https://sats4ai.com/api/mcp'
{
"mcpServers": {
"cnghockey-sats4ai": {
"url": "https://sats4ai.com/api/mcp"
}
}
} {
"servers": {
"cnghockey-sats4ai": {
"type": "http",
"url": "https://sats4ai.com/api/mcp"
}
}
} [mcp_servers.cnghockey-sats4ai] url = "https://sats4ai.com/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"cnghockey-sats4ai": {
"type": "remote",
"url": "https://sats4ai.com/api/mcp",
"enabled": true
}
}
} openclaw mcp add cnghockey-sats4ai --url 'https://sats4ai.com/api/mcp' --transport streamable-http
mcp_servers:
cnghockey-sats4ai:
url: "https://sats4ai.com/api/mcp" {
"McpServers": {
"cnghockey-sats4ai": {
"Transport": "http",
"Url": "https://sats4ai.com/api/mcp"
}
}
} assistant mcp add cnghockey-sats4ai -t streamable-http -u 'https://sats4ai.com/api/mcp'
{
"mcpServers": {
"cnghockey-sats4ai": {
"type": "http",
"url": "https://sats4ai.com/api/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 17 Sept 26 0
- Tool “send_sms” rewrote its description, which is the text the model reads security
- Tool “place_call” rewrote its description, which is the text the model reads security
- Tool “ai_call” rewrote its description, which is the text the model reads security
- “send_email” reworded the description of “paymentId” cosmetic
- 15 Sept 26 −1
- A breaking change shipped without a version bump: still 1.0.0 ▼ security
- Tool “clone_voice” rewrote its description, which is the text the model reads security
- “clone_voice” added a required parameter “consent”, so existing callers break ▼ functional
- 14 Sept 26 0
- Stability: pass → fail ▼ security
- A breaking change shipped without a version bump: still 1.0.0 ▼ security
- Tool “generate_text” rewrote its description, which is the text the model reads security
- “get_model_pricing” changed the type of “modelId”: number → number|string ▼ functional
- “get_model_pricing” reworded the description of “modelId” cosmetic
- 13 Sept 26 0
- Tool “clone_voice” rewrote its description, which is the text the model reads security
- “clone_voice” reworded the description of “voiceFileUrl” cosmetic
- 11 Sept 26 0
- Tool “text_to_speech” rewrote its description, which is the text the model reads security
- Tool “epub_to_audiobook” rewrote its description, which is the text the model reads security
- “text_to_speech” reworded the description of “modelId” cosmetic
- 10 Sept 26 0
- Tool “epub_to_audiobook” rewrote its description, which is the text the model reads security
- Tool “generate_music” rewrote its description, which is the text the model reads security
- Tool “text_to_speech” rewrote its description, which is the text the model reads security
- “generate_music” added an optional parameter “duration” cosmetic
- “generate_music” added an optional parameter “lyricsAbout” cosmetic
- “generate_music” added an optional parameter “lyricsAddon” cosmetic
- “generate_music” reworded the description of “lyrics” cosmetic
- “text_to_speech” reworded the description of “modelId” cosmetic
- “text_to_speech” reworded the description of “voice” cosmetic
- “generate_music” dropped the optional parameter “audio_format” cosmetic
- “generate_music” dropped the optional parameter “bitrate” cosmetic
- “generate_music” dropped the optional parameter “is_instrumental” cosmetic
- “generate_music” dropped the optional parameter “lyrics_optimizer” cosmetic
- “generate_music” dropped the optional parameter “sample_rate” cosmetic
- 9 Sept 26 0
- Tool “ai_call” rewrote its description, which is the text the model reads security
- Tool “place_call” rewrote its description, which is the text the model reads security
- Tool “send_sms” rewrote its description, which is the text the model reads security
- “send_email” reworded the description of “paymentId” cosmetic
- “place_call” reworded the description of “message” cosmetic
- “send_sms” reworded the description of “message” cosmetic
- 5 Sept 26 0
- Tool “epub_to_audiobook” rewrote its description, which is the text the model reads security
- Tool “convert_file” rewrote its description, which is the text the model reads security
- Tool “generate_music” rewrote its description, which is the text the model reads security
- Tool “text_to_speech” rewrote its description, which is the text the model reads security
- The server now declares the “prompts” capability functional
- New prompt “make_narrated_video” functional
- New resource “Recipe: a narrated video from nothing” functional
- New tool “render_card” functional
- “transcribe_audio” added an optional parameter “callback_id” cosmetic
- “transcribe_audio” added an optional parameter “callback_url” cosmetic
- “transcribe_audio” added an optional parameter “diarize” cosmetic
- “transcribe_audio” added an optional parameter “timestamps” cosmetic
- “text_to_speech” reworded the description of “modelId” cosmetic
- “text_to_speech” reworded the description of “voice” cosmetic
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 20 Sept 2026 · Probed https://sats4ai.com/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_256_GCM_SHA384 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=sats4ai.com | CN=YE2,O=Let's Encrypt,C=US | 9 Sept 2026 | 8 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 53923e08a91237e89a241aa8ba7b19836b2 |
| SANs: sats4ai.com, www.sats4ai.com | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of sats4ai.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| sats4ai.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(self), geolocation=() |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://sats4ai.com/api/mcp | Verified | 200 | |
| http (plaintext) | http://sats4ai.com/api/mcp | HTTPS enforced | 301 | https://sats4ai.com/api/mcp |
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 →
transcribe_translate ~317
Compound endpoint — one payment turns audio in any of 13 source languages into both a transcript AND a translation in any of 119 target languages. Perfect for WhatsApp voice messages in a language you don't speak (Yoruba → English), or recording a meeting in another language and reading it in yours. Auto-detects source if omitted. Async — returns requestId, poll with check_job_status(jobType='transcribe-translate'). Flat price covers STT + translation. Cheaper than calling transcribe_audio + translate_text separately for typical voice messages. Pay with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='transcribe_translate'.
| Name | Type | Req | Description |
|---|---|---|---|
| audioBase64 | string | yes | Base64-encoded audio file |
| paymentId | string | yes | Valid payment ID (must be paid) |
| sourceLanguage | string | – | Optional — auto-detected if omitted. Accepts ISO-639 codes for the 13 STT languages: en, zh, hi, es, ar, fr, pt, ru, de, ja, ko, it, nl. NOTE: only these 13 are transcribable — a wrong hint (or audio… |
| targetLanguage | string | yes | Target language — English name (e.g. 'Spanish') or ISO-639 code (e.g. 'es', 'en-US'). 119 languages supported. |
No output schema declared.
No examples provided.
translate_epub ~307
Translate a whole EPUB into another language and get an EPUB back. Every chapter is translated with its markup intact — headings, emphasis, footnote links, images and code stay where they were — the package language is retargeted and the table of contents is translated. 119 target languages; the target language picks the engine and the engine's row carries the price (same per-character rate as translate_text for that language, min 50 sats). Async — returns requestId, poll with check_job_status(jobType='translate-epub'), then get_job_result for the download url (temporary, 6h). Pay with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='translate_epub', characterCount (visible characters of the book) and targetLanguage; the real file is re-priced at execution and a short-pay is refunded with the exact amount to re-pay.
| Name | Type | Req | Description |
|---|---|---|---|
| epubBase64 | string | yes | Base64-encoded EPUB (max 50 MB) |
| fileName | string | – | Optional original filename, used to name the download. |
| paymentId | string | yes | Valid payment ID (must be paid) |
| sourceLanguage | string | – | Optional source-language hint. Omit to let the model read it from the text. |
| targetLanguage | string | yes | Target language — English name (e.g. 'Spanish') or ISO-639 code (e.g. 'es'). Must equal the targetLanguage the payment was quoted with. |
No output schema declared.
No examples provided.
translate_rare_language ~393
Translate into 452 languages, 251 of them NOT supported by ChatGPT, Claude or Gemini (29 of those 251 measured at fair quality or better against human references) — including Bhojpuri (~50M speakers), Maithili (~34M), Egyptian Arabic (~100M), Moroccan Arabic (~30M), Chhattisgarhi, Magahi, Manipuri, Kashmiri, Shan, Kachin, Awadhi, Tamazight, Crimean Tatar, Quechua, Nuer, Sango, plus indigenous and minority languages with no callable API anywhere. Runs MADLAD-400 (Apache-2.0). QUALITY VARIES AND IS PUBLISHED PER LANGUAGE: every language carries a measured tier — good (chrF++ >= 45 vs human reference translations), fair (32-45), unverified (no benchmark exists, untested, may be poor), experimental (known weak). The response repeats the tier so you can judge how much to trust it. GET https://sats4ai.com/api/l402/translate-rare-language for the full language list with tiers, or GET /api/languages. Unsupported languages are rejected BEFORE payment. For mainstream languages use translate_text instead — it is cheaper and more fluent. Priced 50 sats base + 0.002 sats/char (GPU). Pay with Bitcoin Lightning — no API key or signup. Requires create_payment with toolName='translate_rare_language'.
| Name | Type | Req | Description |
|---|---|---|---|
| paymentId | string | yes | Valid payment ID (must be paid). Price = 50 sats + 0.002/char. |
| targetLanguage | string | yes | MADLAD language code ('mag', 'arz', 'bho', 'hne') or English name ('Magahi', 'Egyptian Arabic'). Rejected before payment if unsupported. |
| text | string | yes | Text to translate. Max 6000 characters. |
No output schema declared.
No examples provided.
translate_text ~677
Translate text across 119 languages with high accuracy. The target language picks the engine: GPT-OSS 120B by default, or a higher-scoring model (Gemini) where one measurably beats it. Auto-detects source language. Privacy-preserving: no data stored. Pricing: 1 sat per 1,000 characters on the standard engine, minimum 1 sat per request; a routed language costs more. GET /api/languages returns the exact price, engine and measured chrF for every language, and the 402 always quotes the real amount before you pay. Language parameters accept English names ('Spanish', 'Chinese (Simplified)') or ISO-639 codes / locale tags ('es', 'en-US', 'pt-BR', 'zh-Hans'). Supported languages: Afrikaans, Albanian, Amharic, Arabic, Armenian, Assamese, Azerbaijani, Basque, Belarusian, Bengali, Bosnian, Bulgarian, Burmese, Catalan, Cebuano, Chichewa, Chinese (Simplified), Chinese (Traditional), Corsican, Croatian, Czech, Danish, Dari, Dutch, English, Esperanto, Estonian, Farsi, Fijian, Filipino, Finnish, French, Frisian, Galician, Georgian, German, Greek, Guarani, Gujarati, Haitian Creole, Hausa, Hawaiian, Hebrew, Hindi, Hmong, Hungarian, Icelandic, Igbo, Indonesian, Irish, Italian, Japanese, Javanese, Kannada, Kazakh, Khmer, Kinyarwanda, Korean, Kurdish, Kyrgyz, Lao, Latvian, Lingala, Lithuanian, Luganda, Luxembourgish, Macedonian, Malagasy, Malay, Malayalam, Maltese, Maori, Marathi, Mongolian, Nepali, Norwegian, Occitan, Odia, Pashto, Polish, Portuguese, Punjabi, Romanian, Romansh, Russian, Samoan, Scots Gaelic, Serbian, Sesotho, Setswana, Shona, Sindhi, Sinhala, Slovak, Slovenian, Somali, Spanish, Sundanese, Swahili, Swedish, Tajik, Tamil, Tatar, Telugu, Thai, Tigrinya, Tongan, Turkish, Turkmen, Ukrainian, Urdu, Uzbek, Vietnamese, Welsh, Wolof, Xhosa, Yiddish, Yoruba, Zulu. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='translate_text' and prompt (the text to translate).
| Name | Type | Req | Description |
|---|---|---|---|
| modelId | number | – | Optional. Translation model is selected automatically. |
| paymentId | string | yes | Valid payment ID (must be paid) |
| sourceLanguage | string | – | Source language (auto-detected if omitted). NOTE: only checked for being a known language, not against your text — a wrong but valid value (e.g. 'German' for Spanish text) is accepted and silently mi… |
| targetLanguage | string | yes | Target language — English name ('Spanish', 'Chinese (Simplified)') or ISO-639 code / locale tag ('es', 'pt-BR'). 119 supported; full list at the GET /api/l402/translate-text endpoint. |
| text | string | yes | Text to translate |
No output schema declared.
No examples provided.
upscale_image ~199
Upscale images 2x or 4x with neural super-resolution. Uses Real-ESRGAN (ICCV 2021, PSNR 32.73dB on Set5 4x, 100M+ production runs). Recovers real detail from low-resolution images — not interpolation. Optional face enhancement. Stable endpoint — model upgrades automatically as SOTA evolves. 5 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='upscale_image'.
| Name | Type | Req | Description |
|---|---|---|---|
| face_enhance | boolean | – | Apply face enhancement during upscaling (default false) |
| imageBase64 | string | yes | Base64-encoded image (PNG, JPEG, WEBP) or data URI |
| paymentId | string | yes | Valid payment ID (must be paid) |
| scale | string | – | Upscale factor: 2x or 4x (default 4x) |
No output schema declared.
No examples provided.
voice_bridge_say ~225
Inject audio into an open Voice Bridge call. Two modes: (1) text — we synthesize via OmniVoice TTS in any of 602 languages; (2) audio_base64 + encoding — bring your own audio (mulaw_8000 or pcm_l16_16000 for MVP). STT is automatically muted while we inject, so the agent doesn't hear itself. No additional payment — covered by the session deposit.
| Name | Type | Req | Description |
|---|---|---|---|
| audioBase64 | string | – | Pre-rendered audio bytes, base64 (mode 2). Use with 'encoding'. |
| encoding | string | – | Encoding of audioBase64. mp3/opus require ffmpeg (not yet wired in MVP). |
| language | string | – | Language override for this utterance (default: session language) |
| sessionId | string | yes | Session ID from open_voice_bridge |
| text | string | – | Text to speak (mode 1). Uses OmniVoice TTS. |
| voiceDescription | string | – | Free-form voice description for TTS (e.g., 'calm female voice') |
No output schema declared.
No examples provided.
vote_on_service ~111
Vote for a planned service to be built next. Returns JSON: { success, slug, newVoteCount }. 1 sat per vote — multiple votes allowed. Call list_planned_services first to discover valid slugs and current vote counts. Highest-voted services get prioritized. Requires create_payment with toolName='vote_on_service'.
| Name | Type | Req | Description |
|---|---|---|---|
| paymentId | string | yes | Valid payment ID (1 sat, must be paid) |
| slug | string | yes | Service slug to vote for (from list_planned_services) |
No output schema declared.
No examples provided.
What is the Sats4AI - Bitcoin-Powered AI Tools MCP server?
Sats4AI - Bitcoin-Powered AI Tools is an MCP server listed in the public MCP registry as io.github.cnghockey/sats4ai. 40+ Lightning-paid AI tools for agents: calls, SMS, fax, voice, translation. No signup, no keys. This page covers its hosted endpoint (https://sats4ai.com/api/mcp).
Is the Sats4AI - Bitcoin-Powered AI Tools MCP server safe to use?
Sats4AI - Bitcoin-Powered AI Tools scores 79 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 Sats4AI - Bitcoin-Powered AI Tools MCP server expose?
Sats4AI - Bitcoin-Powered AI Tools exposes 57 tools: create_payment, check_payment_status, generate_image, generate_video, animate_image, and 52 more. Their descriptions and schemas cost roughly 20,441 tokens of context every time the server is loaded.
Does the Sats4AI - Bitcoin-Powered AI Tools MCP server require authentication?
No. We connected to Sats4AI - Bitcoin-Powered AI Tools without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Sats4AI - Bitcoin-Powered AI Tools MCP server still maintained?
Sats4AI - Bitcoin-Powered AI Tools is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.