Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
21 paid data tools plus free quote/budget inspection, with bounded USDC payments on Base.
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.
AGENT_PRIVATE_KEY, AGENTTOLL_URL, AGENTTOLL_NETWORK, AGENTTOLL_RECIPIENT, AGENTTOLL_BUDGET_USDC, AGENTTOLL_MAX_PER_CALL_USDC, AGENTTOLL_TIMEOUT_MSValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"agenttoll": {
"command": "npx",
"args": [
"-y",
"agenttoll-mcp"
],
"env": {
"AGENT_PRIVATE_KEY": "your-value",
"AGENTTOLL_URL": "your-value",
"AGENTTOLL_NETWORK": "your-value",
"AGENTTOLL_RECIPIENT": "your-value",
"AGENTTOLL_BUDGET_USDC": "your-value",
"AGENTTOLL_MAX_PER_CALL_USDC": "your-value",
"AGENTTOLL_TIMEOUT_MS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add agenttoll --env AGENT_PRIVATE_KEY=your-value --env AGENTTOLL_URL=your-value --env AGENTTOLL_NETWORK=your-value --env AGENTTOLL_RECIPIENT=your-value --env AGENTTOLL_BUDGET_USDC=your-value --env AGENTTOLL_MAX_PER_CALL_USDC=your-value --env AGENTTOLL_TIMEOUT_MS=your-value -- npx -y agenttoll-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"agenttoll": {
"command": "npx",
"args": [
"-y",
"agenttoll-mcp"
],
"env": {
"AGENT_PRIVATE_KEY": "your-value",
"AGENTTOLL_URL": "your-value",
"AGENTTOLL_NETWORK": "your-value",
"AGENTTOLL_RECIPIENT": "your-value",
"AGENTTOLL_BUDGET_USDC": "your-value",
"AGENTTOLL_MAX_PER_CALL_USDC": "your-value",
"AGENTTOLL_TIMEOUT_MS": "your-value"
}
}
}
}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": {
"agenttoll": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"agenttoll-mcp"
],
"env": {
"AGENT_PRIVATE_KEY": "your-value",
"AGENTTOLL_URL": "your-value",
"AGENTTOLL_NETWORK": "your-value",
"AGENTTOLL_RECIPIENT": "your-value",
"AGENTTOLL_BUDGET_USDC": "your-value",
"AGENTTOLL_MAX_PER_CALL_USDC": "your-value",
"AGENTTOLL_TIMEOUT_MS": "your-value"
}
}
}
}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.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
AGENTTOLL_URL envAGENTTOLL_NETWORK envAGENTTOLL_RECIPIENT envAGENTTOLL_BUDGET_USDC envAGENTTOLL_MAX_PER_CALL_USDC envAGENTTOLL_TIMEOUT_MS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
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 with the GitHub account tevfikefeaydin, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
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.
You need to fill in: AGENT_PRIVATE_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.14.0) reached the registry 2 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Agent Data Tools: Utilities
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.
103 tools: JSON repair, CSV, hashes, cron, dates, units, validators. 25 free calls.
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.
AgentToll
agenttoll.app provides 21 paid data endpoints for agents, priced from $0.001 to $0.008 in USDC. The hosted service settles on Base mainnet. Onchain identity: agenttoll.base.eth. Source · MCP package.
Fresh-pool discovery, token safety checks, sampled radar history, wallet activity and market data share one API. Base market and chain data always use mainnet; a self-hosted instance can accept payments on Base Sepolia without changing the data network.
The browser flow at /inspect.html includes a free, dated report captured from real provider data. Paste a Base token contract address, check the price without connecting a wallet, then approve one USDC payment to receive the eight-check report. It uses the existing /api/base/safety/:address endpoint ($0.003), preserves missing evidence, and offers a settlement receipt and JSON download. A report can be cached for up to five minutes. Ambiguous signed failures require checking the wallet before another payment can be requested.
web/inspect.html is the page template; web/inspect.ts controls quotes and payment, and web/token-report.ts presents the data. npm run build:web builds both browser bundles and embeds public/token-example.json into the generated page, so the example works without JavaScript. npm run check:generated checks that all three generated files agree with their sources. Refresh the example only with a newly recorded response and its capture time and provenance; do not relabel an old example as live.
Operational inspection metrics come from exported application logs; see ops:inspections in OPERATIONS.md. These distinguish mainnet settlements from testnet activity and known operator wallets, and do not claim that a wallet is a person or that a quote is a unique visitor.
/research.html keeps a browser-local watchlist and dated report history. Save a token address or the recorded example; completed inspections can also be saved from the inspector. Storage is limited to 50 watched tokens and 100 sanitized reports, with ten per token. No keys, signatures, payment receipts or paying wallet addresses enter that storage. It is specific to this browser; removing site data removes the history. Storage failures are shown and preserve previously stored data.
The history view compares observations of the same token and provenance type, preserving missing evidence and warning when dates are unavailable or the same observation has conflicting contents. Repeated cached results are not presented as fresh checks. Examples and shared snapshots remain distinct from inspections.
Compare two to five token addresses using saved observations, or review a summed quote for new inspections. Each token uses the existing safety endpoint and its own wallet authorization. Batches run sequentially, keep completed responses and receipts, and stop after a failure. Remaining requests need a fresh explicit quote; an uncertain payment must be acknowledged after checking the wallet before another payment can start. Displayed quotes expire after 60 seconds, including remaining steps of a long batch.
The wallet panel separately prices /api/base/portfolio/:address?minValue=0&limit=50, displays observed holdings and source coverage, and lets the visitor select up to five discovered ERC20 tokens for separately priced inspections. Native ETH, missing/unpriced holdings and coverage gaps are not silently treated as inspected. Wallet addresses and the portfolio response remain in page memory.
Report actions copy a bounded URL-fragment snapshot or download a 1200×1200 PNG card. /shared-report.html labels every imported snapshot as user-supplied and unverified, preserves observation dates and never pays or saves automatically. Fragment contents can be read or changed by anyone with the link; they are not an authenticated AgentToll record. Payment and wallet metadata are excluded. There is no background monitoring or messaging service.
web/research*.ts, web/portfolio-model.ts and web/report-share.ts implement these tools. The build shares CSS source files while inlining their contents into generated HTML to match the existing deployed Content Security Policy. npm run build:web regenerates every browser entry; npm run check:generated verifies the results.
accepts there.API consumers do not need an account or API key. Paying clients need a wallet key; operators may need facilitator/upstream credentials. An initial quote and its signed retry are separate HTTP requests.
Handler failures before settlement are not billed. A lost response or timeout after signing/settlement may have an unknown outcome: inspect the receipt and wallet before retrying. The bounded client keeps ambiguous signed amounts reserved.
| GET endpoint | Description | USDC per call |
|---|---|---|
| /api/price/:symbol | Spot USD price and 24h change | $0.001 |
| /api/gas?gasLimit= | Base gas, latest block and optional transaction-cost estimate | $0.001 |
| /api/trending?limit= | Market-wide trending assets | $0.002 |
| /api/base/token/:address | Onchain Base token price | $0.001 |
| /api/base/address/:address | Base address snapshot and verified primary Basename | $0.001 |
| /api/base/portfolio/:address?minValue=&limit= | Observed holdings and USD valuation with coverage | $0.003 |
| /api/base/safety/:address | Automated token checks and missing-evidence coverage | $0.003 |
| /api/base/scout?minLiquidity=&pools= | Selected radar pools with safety results | $0.008 |
| /api/base/fresh?minutes=&limit=&fundedOnly= | Recent Uniswap v4 pool events, token attribution and funding activity | $0.004 |
| /api/base/radar/history?date= | Published snapshot pinned to an immutable git SHA | $0.002 |
| /api/base/scorecard?days= | Latest published samples compared with current observations | $0.005 |
| /api/base/name/:nameOrAddress | Forward Basename resolution and verified reverse resolution | $0.001 |
| /api/feargreed?days= | Sentiment index with optional daily history | $0.001 |
| /api/base/trending?limit= | Trending Base DEX pools | $0.002 |
| /api/brief?symbols= | Prices, Base gas and sentiment in one call | $0.005 |
| /api/base/radar?minLiquidity=&limit= | Ranked new-pool listing above a liquidity floor | $0.003 |
| /api/try/premium?asset= | Crypto-implied versus official USD/TRY | $0.002 |
| /api/try/spread?asset= | Turkish exchange quotes versus the global USD price | $0.002 |
| /api/watch/address/:address?since= | Paginated confirmed address transactions | $0.002 |
| /api/watch/radar?since= | Newer observations from the current partial radar listing | $0.003 |
| /api/watch/price/:symbol?ref=&pct= | Price threshold check | $0.001 |
| /api/stats | Network/receiver-scoped onchain toll totals | free |
| /api/catalog | Machine-readable endpoint catalog | free |
| /api/demo | Static sample response shapes | free |
| /api/health | Process liveness | free |
| /api/ready | Facilitator and Base RPC readiness | free |
Optional query parameters do not change registered prices. Invalid inputs return 400. fundedOnly accepts the literal values true or false. The catalog and OpenAPI describe parameter limits. Selected upstream results are cached and concurrent loads are coalesced; TTLs vary, and history caches last longer than live-market caches.
API GET/HEAD requests use URL parameters and payment headers, and reject request bodies with 400 and a closed connection. Encoded path parameters, case variants and one trailing slash are supported; encoded route prefixes and duplicate or encoded path separators are rejected before payment verification.
Safety responses preserve unknown checks and provider coverage. A missing owner flag or tax is not a pass. clear requires the necessary evidence; a detected failure can still produce high-risk when other checks are unknown. Passing automated checks does not guarantee safety. Portfolio and radar responses also need their partial/coverage fields to be interpreted correctly.
Free supplemental safety sources provide address-risk screening, verified interface context and observed pool liquidity. Interface names and market value do not complete missing permission or liquidity-ownership checks. See safety evidence and limits.
Portfolio indexer scans stop after three pages or when the indexed tail falls below the $1 source read floor. Lowering minValue changes the display filter, not this source scan bound. Any unread provider pages mark the response partial; totals and unpriced counts describe observed holdings only, and the number of unseen tokens remains unknown. Sentiment responses preserve the provider's observation timestamp separately from their fetch time, including when served from cache.
Address-to-Basename results are forward-resolved back to the original address. Fresh pools cover Uniswap v4; token attribution can be null, ages are estimates from block height, and funded records observed liquidity events rather than a USD liquidity valuation.
For /api/watch/address/:address, keep the opaque cursor unchanged and pass it as since. Continue while hasMore is true before scheduled polling resumes. Each call reads one provider page; partial and coverage.complete report whether that scan has drained. An initial ISO timestamp is accepted.
The polling overlap is 120 seconds, with at most 100 remembered transaction hashes. Deduplicate by hash in the consuming agent, especially when coverage.replayPossible is true. These bounds do not cover all delayed indexing, older reorganizations or indexer gaps.
The radar watch uses an ISO cursor over a ranked, liquidity-filtered listing. Its coverage is always partial: an omitted or late-indexed pool can be missed. The price-alert watch reports a threshold result and has no cursor.
The snapshot workflow writes selected scout observations to data/scout/ and publishes them in git. History reads pin the index and snapshot bytes to one immutable revision, exposed through provenance.revision and commit/raw links. The payment transaction is a settlement record; it does not authenticate snapshot contents or prove capture time.
For scorecards, days selects the latest N published snapshot days, not a strict calendar lookback. Tokens use their first sighting in that selected window, so holding periods vary. C
Only the beginning is shown; read the rest in the repo