Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Discover privacy-first, bounded Venice-powered micro-work calls with exact x402 USDC prices.
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://diem-agent-workers.vercel.app/mcpRun this in your terminal
claude mcp add --transport http diem-agent-workers https://diem-agent-workers.vercel.app/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"diem-agent-workers": {
"url": "https://diem-agent-workers.vercel.app/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": {
"diem-agent-workers": {
"type": "http",
"url": "https://diem-agent-workers.vercel.app/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://diem-agent-workers.vercel.app/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 10, 2026
The registry name was verified with the GitHub account coastmancoastman, which owns the repo
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.6.1) reached the registry 3 months 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, MyMultiSig
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ 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.
Create, review, sign and execute MyMultiSig multisig wallet transactions from AI agents.
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.
Privacy-first, machine-discoverable micro-work powered by private Venice inference and paid in USDC through x402.
This repository is a fail-closed, agent-first Base mainnet storefront. It exposes six bounded workers over plain HTTP + x402, publishes them to the CDP Bazaar, and adds A2A 1.0, MCP, OpenAPI, llms.txt, and portable-skill discovery surfaces.
Public beta: diem-agent-workers.vercel.app
| Worker | Bounded outcome | Beta price |
|---|---|---|
extract_text_to_json | Caller-schema-valid extraction | $0.020 USDC |
classify_text | Exactly one caller-supplied label | $0.010 USDC |
summarize_text | Structured abstract and key points | $0.020 USDC |
text_to_speech | Up to 1,000 characters as MP3 | $0.010 USDC |
generate_draft_image | One safe-mode 1024px WebP | $0.020 USDC |
transcribe_audio | Up to 60 seconds of verified PCM WAV | $0.015 USDC |
These are fixed prices per successful authorization attempt, not estimates. The public deployment is a low-cap Base mainnet beta: an atomic 0.25 DIEM software budget limits daily inference starts, while the Venice API key retains a separate 1.69 DIEM provider backstop.
The optional USDC-to-DIEM treasury remains disabled in production and is not part of the storefront runtime. No wallet signer or private key is deployed to Vercel.
llms.txt, A2A 1.0 Agent Card, JSON-RPC SendMessage, and Streamable HTTP MCP discoveryThe service is not affiliated with or endorsed by Venice.ai.
Requirements: Node.js 22+ and pnpm.
cp .env.example .env
pnpm install pnpm test pnpm dev
Add a server-side Venice key to .env:
VENICE_API_KEY=...
VENICE_TEXT_MODEL=venice-uncensored-1-2 VENICE_IMAGE_MODEL=venice-sd35 VENICE_TTS_MODEL=tts-kokoro VENICE_ASR_MODEL=openai/whisper-large-v3 VENICE_DIEM_EPOCH_CAP=1.69
VENICE_DIEM_EPOCH_CAP publishes the cap in service discovery and must match the native EPOCH consumption limit configured on the Venice API key. Venice enforces the hard stop. Before issuing a 402, the service also checks current epoch access and the exact configured model's online/private/capability state; it never estimates DIEM billing from token counts.
The development server binds to 127.0.0.1:8402.
curl http://127.0.0.1:8402/health
curl http://127.0.0.1:8402/v1/catalog curl -X POST http://127.0.0.1:8402/v1/quote/classify_text
With PAYMENTS_MODE=off, the worker is callable without payment for local testing:
curl -X POST http://127.0.0.1:8402/v1/jobs/extract-json \
-H 'Content-Type: application/json' \ -d '{ "source": "The Acme Trail Mug is drinkware and costs $18.50.", "schema": { "type": "object", "properties": { "name": {"type": ["string", "null"]}, "category": {"type": ["string", "null"]}, "price_usd": {"type": ["number", "null"]} }, "required": ["name", "category", "price_usd"], "additionalProperties": false } }'
Production refuses to start unless PAYMENTS_MODE=production, durable delivery credits are enforced, the global compute budget is enforced, and aggregate-only metrics are enabled. The checked-in and local defaults remain PAYMENTS_MODE=off, STOREFRONT_ENABLED=false, AGGREGATE_METRICS_MODE=off, and TREASURY_MODE=disabled.
Import a downloaded CDP Secret API Key without printing its values:
pnpm credentials:import-cdp /absolute/path/to/cdp_api_key.json
The command tightens both the downloaded key file and .env to owner-only permissions. It refuses to overwrite configured credentials and does not enable payments.
Start on Base Sepolia:
PAYMENTS_MODE=development
TREASURY_ADDRESS=0xYourDedicatedEvmAddress CDP_API_KEY_ID=... CDP_API_KEY_SECRET=...
The server uses the address form of the CDP configuration, so payments settle directly to TREASURY_ADDRESS; CDP does not provision or control that wallet. An unpaid request to the worker should return HTTP 402 and a PAYMENT-REQUIRED header.
Mainnet is fail-closed unless durable delivery credits are enforced. Provision an Upstash Redis database through the Vercel Marketplace, then configure:
DELIVERY_CREDITS_MODE=enforced
DELIVERY_CREDIT_HMAC_SECRET= DELIVERY_CREDIT_TTL_SECONDS=86400 DELIVERY_CREDIT_LEASE_SECONDS=180 UPSTASH_REDIS_REST_URL=... UPSTASH_REDIS_REST_TOKEN=...
Agents should generate one unpredictable Idempotency-Key per logical job and reuse it only with the identical request and payment authorization. Signed paid attempts without the header fail before settlement. The Redis record contains only HMAC fingerprints, worker ID, state, lease, and expiry—never request bodies, provider responses, payer addresses, payment headers, or transaction hashes.
Normal successful delivery consumes the key. If the process is interrupted after settlement but before delivery completes, the same authorization, key, worker, and request may redeem one retry without another settlement. Conflicting reuse is rejected, and storage outages return 503 before settlement.
Production also requires an atomic global compute budget:
COMPUTE_BUDGET_MODE=enforced
COMPUTE_BUDGET_DIEM_PER_DAY=0.25 AGGREGATE_METRICS_MODE=enabled STOREFRONT_ENABLED=true
The service reserves a conservative amount equal to the job's USDC price after x402 verification but before Venice inference. Delivery retries reserve again because they can consume provider capacity even when the buyer is not charged again. A Redis outage or exhausted budget aborts new payment settlement and blocks inference. Set STOREFRONT_ENABLED=false and redeploy to disable all paid work before payment.
Run the guarded local Base Sepolia settlement test with:
pnpm test:sepolia
This is an actual testnet transaction: it creates an ephemeral in-memory buyer, requests faucet USDC, validates the exact quote before signing, pays one worker call, and reconciles the treasury's test-USDC increase. It refuses to run unless the saved PAYMENTS_MODE is off and TREASURY_MODE is disabled. Local HTTP tests are not published to Bazaar; a public HTTPS deployment is required.
Mainnet launch checklist:
/terms.PAYMENTS_MODE=production, keep TREASURY_MODE=disabled, and deploy.The mainnet acceptance harness uses a distinct cents-only buyer kept in macOS Keychain, verifies every payment requirement before signing, and refuses a combined storefront authorization above $0.095 USDC. Select individual workers with MAINNET_X402_TEST_WORKERS or use pnpm test:mainnet:all; multi-worker runs require the exact acknowledgement PAY_UP_TO_0_095_USDC_WITH_DISTINCT_BUYER_ON_BASE. Its output deliberately omits wallet addresses, transaction hashes, request bodies, and provider responses.
The treasury is a deterministic one-shot runner, not a prompt-driven wallet agent.
Create a new dedicated wallet on macOS with:
pnpm wallet:create
The command stores the private key in macOS Keychain and writes only the public address and Keychain labels to .env. It refuses to replace an existing wallet and requires payments and treasury execution to be disabled.
For seed-phrase recovery, create a dedicated wallet in a trusted wallet app, keep its seed phrase offline, export only its treasury account private key, and import that key through a hidden local prompt:
pnpm wallet:import
Never enter the seed phrase into the project. The import command displays the derived public address for confirmation, stores the account key in macOS Keychain, and replaces the previous disabled treasury configuration only after Keychain readback succeeds.
Verify ownership and read Base balances without revealing the key:
pnpm wallet:verify
See docs/WALLET_ACCESS.md for the macOS-authenticated recovery and wallet-import path. Never send a private key through chat; if you already control a wallet, share only its public 0x address.
Quote-only mode reads balances and requests an indicative 0x price, but never signs:
TREASURY_MODE=quote
TREASURY_ADDRESS=0xYourDedicatedEvmAddress BASE_RPC_URL=https://your-base-rpc.example ZEROX_API_KEY=... TREASURY_MIN_SWAP_USDC=5 TREASURY_MAX_SWAP_USDC=25 TREASURY_USDC_HOLDBACK=0 TREASURY_MAX_SLIPPAGE_BPS=100 TREASURY_MIN_ETH_RESERVE=0.0005
pnpm treasury:run
Live mode additionally requires the matching dedicated key from macOS Keychain (or a production secret manager) and an exact acknowledgement:
TREASURY_MODE=live
TREASURY_LIVE_ACK=BUY_DIEM_ONLY_ON_BASE
Use a production secret manager rather than a plaintext .env when deployed. The live runner:
TREASURY_ADDRESS0600 JSONL audit records under data/The runner does not sell DIEM, withdraw USDC, bridge assets, select
Only the beginning is shown; read the rest in the repo