Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
MCP server for L402-protected APIs via Bitcoin Lightning. Pay-per-call AI tools in sats.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"l402-kit": {
"command": "npx",
"args": [
"-y",
"l402-kit"
]
}
}
}在终端中运行这条命令
claude mcp add l402-kit -- npx -y l402-kit粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"l402-kit": {
"command": "npx",
"args": [
"-y",
"l402-kit"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"l402-kit": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"l402-kit"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
发布者(ThiagoDataEngineer)不是仓库所有者(ShinyDapps);可能是其他人代为上架的
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 0 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.8.7)于6个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, FlyDocs
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
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.
Spec-driven development workflow: your agent works issues, sessions and the status lifecycle.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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
只显示了开头部分;其余内容请在仓库中阅读