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는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
LIVEAUTH_API_KEY envLIVEAUTH_API_BASE envLIVEAUTH_DEMO env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 dulzuradev 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.0.8)은 5개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Binggio
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ 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.
Governed answers from your data: approved meanings only, refusals instead of guesses.
제작자의 저장소에서 쓰인 그대로 가져왔어요. 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?.
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요