Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
MCP server for L402-protected APIs via Bitcoin Lightning. Pay-per-call AI tools in sats.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"l402-kit": {
"command": "npx",
"args": [
"-y",
"l402-kit"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add l402-kit -- npx -y l402-kitPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"l402-kit": {
"command": "npx",
"args": [
"-y",
"l402-kit"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"l402-kit": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"l402-kit"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
Quien lo publicó (ThiagoDataEngineer) no es el dueño del repo (ShinyDapps); puede que otra persona lo haya listado
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 0 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (1.8.7) llegó al registro hace 6 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, TF Rooms
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Live room availability, rates and stay quotes for 12 New Leaf motels in Twin Falls, Idaho.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Add Bitcoin Lightning pay-per-call to any API. 3 lines of code.
[▶ Watch end-to-end demo — install → 402 → pay → 200 OK](https://docs.l402kit.com/introduction)
| SDK | Version | Downloads |
|---|---|---|
| 📦 TypeScript · npmjs.com/package/l402-kit | ||
| 🐍 Python · pypi.org/project/l402kit | ||
| 🦀 Rust · crates.io/crates/l402kit | ||
| 🔌 VS Code Extension · marketplace | ||
| 🦫 Go · pkg.go.dev |
🌍 Available in 11 languages — click to expand
🇺🇸 Charge for your API in Bitcoin Lightning. 3 lines of code. 🇧🇷 Monetize sua API com Bitcoin Lightning. 3 linhas de código. 🇪🇸 Monetiza tu API con Bitcoin Lightning. 3 líneas de código. 🇨🇳 用 3 行代码,通过比特币闪电网络收费。 🇮🇳 अपने API को Bitcoin Lightning से 3 लाइनों में मोनेटाइज़ करें। 🇸🇦 اكسب من API الخاص بك عبر Bitcoin Lightning. 3 أسطر فقط. 🇫🇷 Monétisez votre API en Bitcoin Lightning. 3 lignes de code. 🇩🇪 Monetarisiere deine API mit Bitcoin Lightning. 3 Zeilen Code. 🇷🇺 Монетизируй свой API через Bitcoin Lightning. 3 строки кода. 🇯🇵 Bitcoin LightningでAPIを3行で収益化。 🇮🇹 Monetizza la tua API con Bitcoin Lightning. 3 righe di codice.
📖 Official docs: 🇺🇸 · 🇧🇷 · 🇪🇸 · 🇨🇳 · 🇮🇳 · 🇸🇦 · 🇫🇷 · 🇩🇪 · 🇷🇺 · 🇯🇵 · 🇮🇹
npm install l402-kit # TypeScript / Node.js / Express
pip install l402kit # Python / FastAPI / Flask go get github.com/shinydapps/l402-kit/go@v1.10.0 # Go / net/http / Chi / Gin cargo add l402kit # Rust / axum
AI Agents / LLMs: See
llms.txtfor machine-readable instructions.
Agent discovery:
/.well-known/agent.json·/.well-known/l402.json
l402-kit is the payment layer for autonomous agents. Agents can pay for APIs without human intervention.
System prompt snippet — add this to any agent to enable L402 payments:
You have access to paid APIs via the L402 protocol.
When you call an API that returns HTTP 402, use the L402Client from l402-kit to pay automatically with Bitcoin Lightning. Budget limit: {BUDGET_SATS} sats per session. Never exceed this limit.
Agent SDK quickstart:
import { l402Client, buildWallet } from "l402-kit/agent";
const client = l402Client({ wallet: buildWallet(process.env), // auto-detects BLINK_API_KEY or ALBY_TOKEN budgetSats: 1000, });
const data = await client.fetch("https://api.example.com/paid-endpoint");
MCP Server (for Claude Desktop, Cursor, and any MCP-compatible agent):
{
"mcpServers": { "l402-kit": { "command": "npx", "args": ["l402-kit-mcp"], "env": { "BLINK_API_KEY": "your-key" } } } }
Compatible with: LangChain · OpenAI Agents · CrewAI · Vercel AI SDK · AutoGPT · Any MCP client
Protocol support: L402 (Bitcoin Lightning) · x402 (USDC/Coinbase) compatible
1. Client calls your API
↓
── Fee flow (managed mode) ───────────────────────────────── Payment → 99.7% → your Lightning Address (instant) → 0.3% → ShinyDapps
import express from "express";
import { l402, AlbyProvider } from "l402-kit";
const app = express();
const lightning = new AlbyProvider(process.env.ALBY_TOKEN!);
app.get("/premium", l402({ priceSats: 100, lightning }), (_req, res) => { res.json({ data: "Payment confirmed." }); });
app.listen(3000);
from fastapi import FastAPI, Request
from l402kit import l402_required
app = FastAPI()
@app.get("/premium") @l402_required(price_sats=100, owner_lightning_address="you@yourdomain.com") async def premium(request: Request): return {"data": "Payment confirmed."}
package main
import ( "fmt" "net/http" l402kit "github.com/shinydapps/l402-kit/go" )
func main() { http.Handle("/premium", l402kit.Middleware(l402kit.Options{ PriceSats: 100, OwnerLightningAddress: "you@yourdomain.com", }, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, {"data": "Payment confirmed."}) }))) http.ListenAndServe(":8080", nil) }
use axum::{middleware, routing::get, Router};
use l402kit::{l402_middleware, Options}; use std::sync::Arc;
#[tokio::main] async fn main() { let opts = Arc::new(Options::new(100).with_address("you@yourdomain.com"));
let app = Router::new() .route("/premium", get(|| async { "Payment confirmed." })) .route_layer(middleware::from_fn_with_state(opts, l402_middleware));
let listener = tokio::net::TcpListener::bind("0.0.0.0:8080").await.unwrap(); axum::serve(listener, app).await.unwrap(); }
# Step 1 — triggers 402 + returns invoice
curl http://localhost:3000/premium
curl http://localhost:3000/premium \ -H "Authorization: L402 : "
| Stripe | l402-kit | |
|---|---|---|
| Minimum fee | $0.30 | < 1 sat (~$0.001) |
| Settlement time | 2–7 days | < 1 second |
| Chargebacks | Yes | Impossible — cryptographic proof |
| Requires account | Yes | No — any Lightning wallet |
| AI agent support | No | Yes — 4 SDKs, native |
| Countries blocked | ~50 | 0 — global by default |
| Reversible | Yes | No — final on receipt |
| Open source | No | Yes — MIT |
import { BlinkProvider, OpenNodeProvider, LNbitsProvider } from "l402-kit";
// Blink (recommended — free, instant setup) const provider = new BlinkProvider(process.env.BLINK_API_KEY!, process.env.BLINK_WALLET_ID!);
// OpenNode (production, custodial) const provider = new OpenNodeProvider(process.env.OPENNODE_KEY!);
// LNbits (self-hosted) const provider = new LNbitsProvider(process.env.LNBITS_KEY!, "https://your.lnbits.host");
Bring your own node — implement the LightningProvider interface in 5 lines:
import type { LightningProvider } from "l402-kit";
class MyNode implements LightningProvider { async createInvoice(amountSats: number) { /* return Invoice */ } async checkPayment(paymentHash: string) { /* return boolean */ } }
Invoice creation: paymentHash = SHA256(preimage)
Client payment: Lightning Network releases preimage to payer API verification: SHA256(preimage) == paymentHash ✓ Replay protection: each preimage is marked used — works exactly once Token expiry: macaroons expire after 1 hour
Monitor every sat in real-time without leaving your editor.
Sign up at [dashboard.blink.sv](https://dashboard.blink.sv) — free, no credit card, instant. Your address: yourname@yourdomain.com
Other wallets: Wallet of Satoshi · Phoenix · Zeus · Alby
| Resource | URL |
|---|---|
| 📖 Docs (11 languages) | l402kit.com/docs |
| 📦 npm | [npmjs.com/package/l402-kit](https://npmjs
Solo se muestra el principio; lee el resto en el repo