Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Paid evidence tools for PDFs, public webpages, OpenAPI contracts, and Base chain data for AI agents.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://task402.xyz/mcpRun this in your terminal
claude mcp add --transport http x402-docs https://task402.xyz/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"x402-docs": {
"url": "https://task402.xyz/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"x402-docs": {
"type": "http",
"url": "https://task402.xyz/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://task402.xyz/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified against the domain task402.xyz (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (0.3.2) reached the registry 25 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, Python MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
Local-only Python MCP server for the Files.com API.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Give agents bounded evidence from PDFs, public webpages, OpenAPI contracts, and Base chain data. Connect to the hosted 20-tool MCP service at https://task402.xyz/mcp; no local server, API key, or wallet is needed for discovery. Paid calls use x402 v2 USDC on Base. Connecting an MCP host does not automatically give it a payment signer.
For Cursor, merge examples/cursor.mcp.json into .cursor/mcp.json. For VS Code, merge examples/vscode.mcp.json into .vscode/mcp.json. Other Streamable HTTP clients can use:
{
"mcpServers": { "task402": { "url": "https://task402.xyz/mcp" } } }
Initialize the connection and run tools/list to inspect executable schemas. With Node.js 24 and this repository's dependencies installed, npm run discover performs discovery through the official MCP SDK and prints tool names only. It never calls a paid tool or signs a payment.
Every hosted tool advertises a tool-specific output schema, parameter descriptions, and MCP safety annotations. Agents can therefore plan the result shape and retry behavior from tools/list before approving any x402 payment.
| Tools | Billing at the 12 October 2026 live check |
|---|---|
generate_pdf | $0.01 per PDF |
web_evidence | $0.005 per public HTTPS page |
inspect_openapi | $0.001 per specification |
plan_api_request, diff_openapi | $0.002 per call |
get_chain_balance, get_chain_transaction, get_erc20_balance | $0.001 per read |
get_pdf_job | Included with generation; requires the job capability |
inspect_pdf, get_document_map, search_document, batch_search_document, prepare_document_context, extract_document_fields, read_document, verify_document_citation, compare_pdfs, validate_pdf_text, render_pdf_page_region | Included after paid PDF indexing; requires document capabilities |
PDF indexing is the separate REST operation POST /v1/documents ($0.01 per PDF); binary upload is not an MCP tool. Generated PDF download is also REST-only. Read /v1/pricing and the payment challenge for current terms before approving payment. Native-text PDF tools do not provide OCR or verify factual truth.
Start with docs/FIRST-PAID-CALL.md for a challenge, signed retry, and result workflow. Use docs/PUBLISHING.md to publish the repository and remote MCP metadata.
This project converts Markdown into paginated PDF files through one shared service used by REST and MCP. The local runner uses Playwright Chromium and SQLite; the Cloudflare Worker adapter uses Browser Run Quick Actions, D1, and R2. The live payment path uses the official x402 SDK facilitator client, verifies before rendering, and settles only after a PDF artifact is stored.
The paid operations are generate_pdf, ingest_document, web_evidence, OpenAPI inspection/planning/diffing, and fixed-method Base chain reads. Retrieval, citation, batch search, bounded context preparation, and explicit-label field matching are included after indexing. Web evidence is public HTTPS HTML/text only, OpenAPI tools accept caller-supplied JSON and local references only, and chain tools never sign or submit transactions. Input HTML is not executed, remote images and other external resources are omitted or blocked, and hyperlinks are preserved in generated PDFs but never fetched during rendering.
Distribution metadata, conversion guidance, and channel-ready copy live in docs/MARKETING.md and docs/LAUNCH-KIT.md; the public MCP directory metadata is in server.json, glama.json, and lhm.plugin.json for LobeHub.
The detailed agent, discovery, operations, deployment, operator-stats, and security guide is docs/AGENT-GUIDE.md.
No local process is required. Add the Streamable HTTP endpoint to an MCP-compatible client:
{
"mcpServers": { "task402": { "type": "http", "url": "https://task402.xyz/mcp" } } }
The server is discoverable without payment. Paid operations return an x402 v2 challenge; the client must inspect the network, USDC asset, recipient, amount, resource, and timeout, obtain explicit wallet approval, then retry the same request with the signed payment. Task402 never receives a private key and never signs or submits transactions for the caller. Start with the first paid call, then use examples/agent-flow.ts for a complete injected-signer flow.
| Capability | Payment | Interface |
|---|---|---|
| Generate a paginated PDF from Markdown | $0.01 | REST, MCP |
| Index one native-text PDF | $0.01 | REST |
| Search, cite, compare, validate, map, read, extract fields, prepare context, and render | Included after indexing | REST, MCP |
| Bounded public-page evidence | $0.005 | REST, MCP |
| OpenAPI inspect, request plan, and diff | $0.001–$0.002 | REST, MCP |
| Read-only Base balance, transaction, and ERC-20 data | $0.001 | REST, MCP |
Prices, limits, schemas, and payment terms are machine-readable at /v1/pricing. The service does not provide OCR, JavaScript page rendering, arbitrary API execution, transaction signing, or visual/legal PDF redlining.
The remote MCP server metadata is version 0.3.2 in server.json. In the 2026-10-12 audit, the official Registry served 0.2.0; publishing the new metadata requires the domain publisher proof key, which is intentionally not stored in this workspace. Recheck the live Registry record before claiming the release is published. Paid REST and MCP challenges include x402 Bazaar discovery metadata, and the production facilitator is https://facilitator.openx402.ai.
Public discovery pages are available at https://task402.xyz/, /docs#first-paid-call, /llms.txt, /demo, /v1/tools, /openapi.json, /v1/pricing, /.well-known/x402.json, /.well-known/mcp/server-card.json, /.well-known/ai-plugin.json, and /sitemap.xml. They give agents and directory crawlers a clear entry point without requiring payment or an operator credential. Registry publication improves discoverability for clients that sync the MCP Registry; it does not create synthetic traffic or guarantee calls.
The public quickstart includes focused workflows for citation verification, PDF revision comparison, and reducing PDF context before model calls. Copy-paste client files are in examples/agent-flow.ts, examples/cursor.mcp.json, and examples/vscode.mcp.json. The TypeScript example obtains unsigned generation and indexing challenges and exposes explicit retry methods for a separately approved wallet payload; it never signs or submits a payment automatically.
When you are ready for one controlled live payment, follow docs/TEST-TRANSACTION.md. It requires an external wallet signer and never asks for a private key.
For a disposable local test wallet, the repository also includes a guarded terminal helper: npm run test:live. It validates the live Base/USDC challenge before signing, requires TASK402_CONFIRM=YES, downloads the PDF, and never prints the payment payload or capability. See the terminal section of the test guide for setup and cleanup.
To reproduce an MCP agent exactly, use npm run test:agent; it performs discovery, receives the structured x402 challenge, signs through the official EVM client, retries with _meta["x402/payment"], checks the job through get_pdf_job, and downloads the result.
Use Node.js 24 or newer (verified with Node 24.13; local durable state uses node:sqlite). From this directory:
npm ci
Copy-Item .dev.vars.example .dev.vars npm run setup:browser npm run dev
The local server binds only to 127.0.0.1:8787 and accepts only the matching loopback/localhost Host authority (plus the configured public authority in live mode). The local web-evidence adapter resolves every hostname before fetching and rejects private, loopback, link-local, and reserved DNS destinations; the hosted Worker relies on its platform egress boundary plus the same URL checks. The example .dev.vars enables an explicit no-payment development bypass, and the bypass exists only in src/local.ts; src/worker.ts rejects it unconditionally. If .dev.vars is absent, the server starts with payments unconfigured and paid generation fails closed. Local jobs and artifacts are durable under .data/ and are ignored by Git.
If Playwright cannot find its pinned Chromium download on your machine, point it to an installed Chromium executable before starting the local process:
$env:BROWSER_EXECUTABLE_PATH = "C:\path\to\chrome.exe"
npm run dev
Generate and download a sample PDF:
$body = @{ title = "Quarterly Report"; markdown = "# Summary`n`n| Metric | Value |`n| --- | ---: |`n| Revenue | 42 |" } | ConvertTo-Json
$job = Invoke-RestMethod -Method Post -Uri http://127.0.0.1:8787/v1/pdf -Headers @{ "Idempotency-Key" = "report-2026-q3-0001" } -ContentType "application/json" -Body $body $job | Format-List Invoke-WebRequest -Uri $job.downloadUrl -Headers @{ Authorization = "Bearer $($job.capability)" } -OutFile .\report.pdf
The capability is a bearer secret. Keep it in memory, do not log it, and send it only to the returned status/download URLs. Status and download access require Authorization: Bearer (or X-Job-Capability); a job ID or idempotency key alone does not authorize access.
| Route | Purpose |
|---|---|
GET /v1/pricing | Machine-readable operation, price, payment mode, and size/TTL limits |
GET /.well-known/x402 | Same discovery document at a well-known path |
GET / and GET /docs | Public service overview and agent quickstart |
GET /llms.txt and GET /sitemap.xml | Compact agent-readable metadata and crawler discovery |
POST /v1/pdf | Generate a PDF; requires Idempotency-Key; live mode uses x402 v2 PAYMENT-SIGNATURE |
GET /v1/jobs/{jobId} | Read authorized job state |
GET /v1/jobs/{jobId}/download | Download an authorized completed PDF |
GET /v1/admin/stats | Password-protected aggregate tool statistics; optional ?hours=24 |
GET /admin | Mobile-friendly password form for viewing the protected stats endpoint |
POST /mcp | MCP Streamable HTTP endpoint with PDF, web, OpenAPI, and Base read-only tools |
POST /v1/documents | Paid raw PDF indexing for deterministic native-text operations |
| `GET
Only the beginning is shown; read the rest in the repo