Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
MCP server for LiveAuth: PoW + Lightning auth, L402 bundles, and paid MCP tool receipts.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
LIVEAUTH_API_KEY, LIVEAUTH_API_BASE, LIVEAUTH_DEMO你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"liveauth": {
"command": "npx",
"args": [
"-y",
"@liveauth-labs/mcp-server"
],
"env": {
"LIVEAUTH_API_KEY": "your-value",
"LIVEAUTH_API_BASE": "your-value",
"LIVEAUTH_DEMO": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add liveauth --env LIVEAUTH_API_KEY=your-value --env LIVEAUTH_API_BASE=your-value --env LIVEAUTH_DEMO=your-value -- npx -y @liveauth-labs/mcp-server运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"liveauth": {
"command": "npx",
"args": [
"-y",
"@liveauth-labs/mcp-server"
],
"env": {
"LIVEAUTH_API_KEY": "your-value",
"LIVEAUTH_API_BASE": "your-value",
"LIVEAUTH_DEMO": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"liveauth": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@liveauth-labs/mcp-server"
],
"env": {
"LIVEAUTH_API_KEY": "your-value",
"LIVEAUTH_API_BASE": "your-value",
"LIVEAUTH_DEMO": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
LIVEAUTH_API_KEY envLIVEAUTH_API_BASE envLIVEAUTH_DEMO env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 dulzuradev 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.0.8)于5个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Rystic
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ 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.
Start, seed, clock, inspect and diff Rystic API simulators from your agent.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Caller-funded MCP (1.3.0): use the existing createMcpGate({ publicKey, toolName, fundingMode: 'caller' }). LiveAuthCore verifies caller payment and owns accounting; this package owns payment challenges, retry binding and duplicate execution prevention. Caller funding, API examples and migration. PoW authenticates; it does not fund paid tools.
Authentication, pay-per-call metering, and signed receipts for AI agents and MCP tools: Bitcoin-native, Lightning-backed, and L402 compatible.
This MCP server lets any AI agent authenticate against your API using proof-of-work (free, no account) or Lightning Network micropayments (sats), then meter and monetize subsequent tool calls with per-call pricing, idempotent revenue events, and HMAC-signed receipts that auditors can verify offline.
Use it when you want to:
mcp-call-receipt-v1) for every paid tool invocation.Try it in 5 seconds — no account, no API key:
npx @liveauth-labs/mcp-server
Without configuration, the server uses LiveAuth's anonymous demo project and the real PoW flow. Add LIVEAUTH_API_KEY only when you need a specific project's policy, pricing, or attribution.
| Tool | Purpose |
|---|---|
liveauth_mcp_start | Begin a session. Returns a PoW challenge, a Lightning invoice, or an L402 bundle hint. |
liveauth_mcp_confirm | Submit a solved PoW challenge, a paid Lightning invoice, or an L402 macaroon → receive a JWT. |
liveauth_mcp_charge | Meter usage after a call. With toolName, resolves registered tool pricing and records a paid revenue event. |
liveauth_mcp_refresh | Exchange a refresh token for a new JWT — no re-auth required. |
liveauth_mcp_status | Poll session/payment status (Lightning confirmation, expiry). |
liveauth_mcp_lnurl | Fetch the BOLT11 invoice for a session (lnget-compatible). |
liveauth_mcp_payment_confirm | Confirm a caller payment with the current session; then retry the original operation. |
liveauth_mcp_usage | Query remaining budget, calls used, and rate-limit windows. |
Full parameter and response schemas are in the Tool Reference below.
npx @liveauth-labs/mcp-server
In an MCP client, call liveauth_mcp_start, then call liveauth_mcp_confirm with only the returned quoteId. The package reuses its existing PoW solver locally and the LiveAuth API verifies the signed challenge before issuing a short-lived session JWT.
claude_desktop_config.json:{
"mcpServers": { "liveauth": { "command": "npx", "args": ["-y", "@liveauth-labs/mcp-server"], "env": { "LIVEAUTH_API_BASE": "https://api.liveauth.app", "LIVEAUTH_API_KEY": "la_pk_your_public_key" } } } }
export LIVEAUTH_API_KEY=la_pk_xxx
npx @liveauth-labs/mcp-server
The package is also a TypeScript SDK — see SDK Usage below. The CLI bin is liveauth-mcp.
For API providers / tool developers:
createMcpGate) and you get per-tool revenue, per-tool min/max pricing, and idempotent retries.For AI agents / agent builders:
The math that matters: if your tool is being scraped by a bot, charging 1 sat per call is enough to make the scraper unprofitable. We call this *cost-of-attack economics*, and it's the whole reason we exist.
npm install -g @liveauth-labs/mcp-server
Or use directly with npx:
npx @liveauth-labs/mcp-server
Configure the command as npx and arguments as ["-y", "@liveauth-labs/mcp-server"]. No environment variables are required for initialize, notifications/initialized, or tools/list. Keep stdin open throughout the session. Startup diagnostics go to stderr; stdout is reserved for MCP messages when running without CLI arguments. Do not pass --help or setup goose to a verifier: those commands intentionally exit.
LIVEAUTH_API_KEY optionally selects a project's public key, and LIVEAUTH_API_BASE defaults to https://api.liveauth.app. Leave LIVEAUTH_DEMO unset for verification; the legacy simulated mode is not needed. Authentication and payment requirements remain enforced when tools are called. A safe offline discovery test can set LIVEAUTH_API_BASE=http://127.0.0.1:1, leave the key unset, and only initialize and list tools; those operations do not contact the API.
Run npm run test:package to build and pack the project, install the tarball into a temporary directory, and test the direct entry point and npm bin with an MCP client. The test includes paths with spaces and reserved characters and verifies that an unauthenticated charge is rejected.
Version 1.3.1 fixes the 1.3.0 entry-point detection bug that could exit with code 0 when invoked through an npm bin symlink or from a path containing spaces or URL-reserved characters. For a reproducible verification, use npx -y @liveauth-labs/mcp-server@1.3.1. A successful local handshake does not establish that MCPVault's own retest passes; the separately reported exit 134 has not been reproduced.
For an unexplained exit (especially code 134), retain complete stderr from process launch, the exit code and signal, resolved package version, Node/npm versions, OS/architecture, exact argv, working directory, and stdin/handshake timing. A deprecation warning alone does not establish the cause of an abort.
LiveAuth for Goose uses the same standards-based stdio MCP server as every other client—there is no Goose wrapper, daemon, or duplicate authentication runtime.
Install in Goose
Or print the official deep link and current fallbacks:
npx @liveauth-labs/mcp-server setup goose
For a one-off Goose CLI session:
goose session --with-extension "liveauth:npx -y @liveauth-labs/mcp-server"
Manual Goose stdio configuration, when the deep link is unavailable:
extensions:
liveauth: type: stdio name: LiveAuth enabled: true cmd: npx args: ["-y", "@liveauth-labs/mcp-server"] env_keys: [] envs: {} timeout: 300
Do not edit an existing Goose config destructively. Prefer the deep link or goose configure; if you add project configuration later, enter it through Goose's extension secret settings rather than shared plaintext YAML.
Ask Goose:
Use LiveAuth to start the default authentication flow. Confirm the returned quote, then show my LiveAuth usage.
The initial flow uses the anonymous demo project's PoW challenge and does not require a wallet. A project public key is optional:
| Variable | When to set it |
|---|---|
LIVEAUTH_API_KEY | Project-specific policy, pricing, and attribution. |
LIVEAUTH_API_BASE | A self-hosted LiveAuth API instead of https://api.liveauth.app. |
LIVEAUTH_DEMO=true | Explicitly opt into the older locally simulated Lightning demo. |
When a paid flow is requested, tool results retain the existing invoice fields and also include portable structured data:
{
"lightning": { "invoice": "lnbc...", "lightningUri": "lightning:lnbc...", "amountSats": 21, "expiresAt": "2030-03-17T17:46:40.000Z", "status": "pending" } }
Clients with MCP Apps support can render the included QR, Open Wallet action, expiration, and live paid/pending/expired state. Other clients receive the JSON and QR image content as ordinary MCP results.
npx @liveauth-labs/mcp-server setup goose and use its one-session or manual fallback.npx is unavailable, install a current Node.js release (Node 18 or newer).liveauth_mcp_start again to obtain a fresh quote.LiveAuth lets agents acquire authorization at runtime instead of requiring every tool to be provisioned with permanent credentials in advance.
The package can also be imported as a TypeScript/JavaScript SDK. Importing the package does not start the stdio MCP server; the CLI lives at the liveauth-mcp bin.
import { createMcpClient } from '@liveauth-labs/mcp-server';
const liveauth = createMcpClient({ publicKey: 'la_pk_xxx', baseUrl: 'https://api.liveauth.app', onInvoice(invoice) { // Render invoice.bolt11 as a QR code for a paid Lightning test. console.log(invoice.bolt11); }, });
const session = await liveauth.start(); const token = await liveauth.confirm(session);
console.log(token.jwt);
The client stores confirmed JWTs, refreshes them before expiry when a refresh token is returned, and exposes the current token through liveauth.token. Call liveauth.destroy() when your app is shutting down to clear token state and refresh timers.
For PoW, config.publicKey is the credential sent in X-LW-Public. It may be either the project's primary public key or an active API public key belonging to that project. The API returns the canonical project key in session.powChallenge.projectPublicKey; the solver hashes that returned key, and confirmation still sends the configured credential. These two key strings can legitimately differ, so comparing them for equality is not a project-isolation check.
Use sessions from your trusted LiveAuth API endpoint. The server binds the quote and signed challenge to the resolved project and issues a JWT with projectId and authType. For diagnostics, compare the JWT's projectId with the expected project ID from your console, without logging the token. Decoding claims alone does not verify a JWT signature.
To require a real paid invoice:
const session = await liveauth.start({ forceLightning: true });
console.log(session.invoice?.
只显示了开头部分;其余内容请在仓库中阅读