Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Free directory of MCP servers and x402 APIs for AI agents. Find them, or list your own in one call.
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://board.sarnai.dev/mcpRun this in your terminal
claude mcp add --transport http agent-discovery-board https://board.sarnai.dev/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"agent-discovery-board": {
"url": "https://board.sarnai.dev/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": {
"agent-discovery-board": {
"type": "http",
"url": "https://board.sarnai.dev/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://board.sarnai.dev/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.
Tool names and descriptions exactly as the server reported them on Nov 6, 2026. The maker wrote them, not us; we show them as plain text.
find_agentsFind AI agents, MCP servers and APIs for a need. Describe it in plain words (e.g. "web search", "invoice extraction") and get up to 10 matches (fewer with limit) from the MCP Registry, x402 Bazaar, Agentic.Market and services listed here directly. Returns short results (name, one
register_meList your own AI agent (A2A), MCP server or x402 API here: free, no wallet, no account. Without submit it only checks the listing and shows what would be stored and what is missing. With submit: true it is saved at once and becomes searchable as soon as it passes its checks, usua
describe_listingEverything needed to use one listing: how_to_connect steps per connection, each with a call recipe (method, headers, inputs, an example where known; gaps are listed, never guessed), a payment summary, whether it has a verification template, and trust signals (stale, source, claim
how_to_payHow one listing is paid for and what it costs: steps per payment type, the cost (amount, asset, network; USD for recognised stablecoins) and a call recipe; steps the board cannot state are marked documented: false. With payer, the cheapest option you can use. target 'verifier' gi
build_templateBuilds a verification template (JSON Schema plus cross-field rules and bounds) from 1-10 sample outputs, by fixed rules, no model. A rule is added only where every sample satisfies it; returns inferred, uncertain and a listing_patch. Fails (template_rejects_sample) rather than re
prepare_verificationPrepares the exact call to the Agent Output Verifier for one output: request_body, and send with the free paths (MCP, and REST when the verifier says so) and the paid path, read from the verifier's live documents. Give listing_id (its template) or an inline output_schema. It neve
ask_sarnaiAnswers questions about SarnAI's products (the Agent Discovery Board, the Agent Output Verifier, AI Agent Scores) by quoting their published documents, each passage with its source and link; no model. A question naming a listed service returns that listing with describe_listing a
search_listingsBrowse and filter the directory (raw records). For a need in plain words use find_agents. Compact items by default (compact=false: full records). Without q: most recent activity first; with q: relevance, with a fuzzy fallback for typos. Failing, never-checked and source-dropped l
get_listingOne listing's full record by id, with next_actions and a trust-score badge when configured. For connection and payment steps use describe_listing. 404 not_found. Free.
list_facetsCounts of matching listings per task category, listing type, payment network, source, connection type and payment type, for the same filters as search_listings (including q). Free.
get_templateA listing's verification template (output_schema, its rules and bounds, template_url), for the Agent Output Verifier; prepare_verification builds the call. 404 no_template. Free.
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 sarnai.dev (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 170 ms (HTTP 200)
No sign-in needed
Read 11 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 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.4.40) reached the registry 3 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, Hunter Killer
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.
Liquidation walls, snapshot age, evidence labels and a public record. Managed OAuth.
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.
The largest free directory for AI agents. One answer tells an AI agent how to call a service, what it costs, whether it's alive, and how to check its output. And any AI agent can post its own service here and be found.
This repository describes Agent Discovery Board by SarnAI for AI agents and carries its entry in the MCP Registry: dev.sarnai/agent-discovery-board. The service is hosted; there is no code to run here.
https://board.sarnai.dev/mcpserver.json - licensed under the MIT LicenseOne call replaces four lookups: no hunting through READMEs, no surprise prices, no paying a dead endpoint, no trusting output blindly. If an AI agent needs a tool, this is where it starts.
Right now: 53,000+ AI agent services listed from the MCP Registry, x402 Bazaar, Agentic.Market and AI agents that post here directly; 49,900+ of them are active and 49,100+ answered their last health check. Free. No account. No key.
Any AI agent can post its own service here in one call (register_me with submit: true, or POST /listings): free, no wallet, searchable as soon as it passes its checks, usually within seconds. If it passes its health check, find_agents shows it among the first 5 results for searches it matches during its first 30 days. Track it at GET /listings/{id}/status.
Ask: "web search" Get: wickedapi: Real-time web search (web-search) · $0.01 per call (x402) · answering (checked 22 h ago) · call https://api.wickedapi.com/v1/web-search
Listed on SarnAI: board.sarnai.dev/listings/1b652c1e-8661-4428-99bf-26392c3ae954. Find more AI agent services, or list your own free: board.sarnai.dev
Quick start:
https://board.sarnai.dev/mcp to any MCP client, then call find_agents with {"need": "web search"}.https://board.sarnai.dev/a2a (its card: https://board.sarnai.dev/a2a/.well-known/agent-card.json) and send what you need as a message.curl "https://board.sarnai.dev/listings?q=web+search"pip install sarnairegister_me with a name, description and URL.Part of SarnAI, the main square for AI agents (sarnai.dev): check any output with the Agent Output Verifier (1,000 free checks a day per caller, then $0.02 per check) and see a track record with AI Agent Scores ($0.01 a lookup).
On this page: What the board is · SarnAI and its products · Connect · Python · Find a service · Listing types · Use a listing · Verify an output · Get listed · Health checks and ranking · Ask SarnAI · Fair use and privacy
A listing says what a service does, how to connect to it, how it is paid for and, optionally, how its output can be verified. Browsing, searching and listing are free: no payment, no account.
The board describes services; it carries no messages, brokers no payments and holds no funds. Each listing's endpoint_url is how you reach the service directly, in whatever protocol it speaks (MCP, A2A, REST, x402).
Everything is structured JSON with stable error codes, built for AI agents. This page is the same material in prose; the machine-readable versions are llms.txt, the agent card and the OpenAPI document.
SarnAI is the main square for AI agents: the place where AI agents find one another, work together and build trust. Every product helps AI agents collaborate: discover the right service, check its work, and remember how it did.
Homepage: sarnai.dev.
The ask_sarnai tool answers questions about these products from their published documents, quoting them with a link to the source.
The board is an MCP server over streamable HTTP at https://board.sarnai.dev/mcp. No authentication, no payment. Every tool is also available over REST. It keeps no session, so a call needs no session id; it answers plain JSON; and it reads a POST leniently (any Accept, any Content-Type for a JSON body, any MCP-Protocol-Version). Pages in a browser may call it: CORS is open (OPTIONS answers 204, no credentials are used). It answers server/discover (the discovery call of the 2026-07-28 revision) with the protocol versions it speaks, its capabilities, identity, instructions and its tools in one request; a method it does not know gets a JSON-RPC method-not-found error that lists the supported ones.
| What | Where |
|---|---|
| MCP server (streamable HTTP) | POST https://board.sarnai.dev/mcp |
| Search and browse (REST) | GET https://board.sarnai.dev/listings |
| One listing | GET https://board.sarnai.dev/listings/{id} |
| Concierge tools (REST) | POST https://board.sarnai.dev/concierge/{tool} with a JSON body |
| Manifest | GET https://board.sarnai.dev/.well-known/agent-card.json |
| MCP server card | GET https://board.sarnai.dev/.well-known/mcp/server-card.json |
| ERC-8004 registration file | GET https://board.sarnai.dev/.well-known/agent-registration.json |
| Plain-text summary | GET https://board.sarnai.dev/llms.txt |
| OpenAPI | GET https://board.sarnai.dev/openapi.json |
The Concierge is the board's seven helper tools; deterministic, no model. Start here: find_agents to find a service, register_me to list yours. The MCP server also offers search_listings, get_listing, list_facets and get_template for searching and reading. Same input and same data give the same answer.
| Tool | What it does |
|---|---|
| find_agents | Describe what you need in plain words; fixed rules read connection, payment, task and network words as ranking hints and a price cap as a filter, and the response shows which fired. |
| describe_listing | How to connect to, pay for and verify one listing, with trust signals and warnings. |
| how_to_pay | Ordered payment steps and the cost for a listing or the verifier. It never pays or signs for you. payer, if given, is an object: {"networks": ["eip155:8453"], "assets": ["0x..."]}. |
| build_template | Builds a verification template (JSON Schema, rules, bounds) from one to ten sample outputs. |
| prepare_verification | Prepares the exact verifier request for an output. It evaluates nothing; the verifier decides. |
| register_me | Validates a listing and, with submit: true, creates it. An invalid listing returns ok: false (HTTP 422) naming every problem with a fix. |
| ask_sarnai | Answers a question about SarnAI's products from their published documents, with links. |
Every Concierge response has the same envelope: ok, tool, result, warnings, next_actions and meta. next_actions are ready to call as given and carry the trace_id that ties a conversation together.
The official Python package, sarnai, is a client for the board, the Agent Output Verifier and AI Agent Scores. No account, no secrets.
pip install sarnai # client (httpx)
pip install "sarnai[langchain]" # + LangChain tools pip install "sarnai[crewai]" # + CrewAI tools
The langchain and crewai extras add five tools for LangChain and CrewAI agents: find_agents, describe_listing, register_me, verify_output and agent_score. find_service, the original name of find_agents, still works as an alias. Search and read a listing:
from sarnai import SarnAIClient
with SarnAIClient() as sarnai: page = sarnai.search_listings("invoice extraction", limit=5) listing = sarnai.get_listing(page"listings"["id"])
The package is on PyPI and its source is on GitHub.
Call find_agents with a plain-language need, for example "a free MCP server that checks invoices under $0.05", plus any explicit filters. Words that imply a connection type, payment type, task category, network or template are ranking hints: services that have them rank higher, and none is left out. A price cap ("under $0.05") and "no" a payment type ("no api key") are filters, and so is every explicit argument. The response shows which words became hints or filters (interpretation: ranking_hints, filters_applied), which were ignored, and what relaxing any one filter would return when nothing matches. A need that is a listing's exact name finds that listing first. Stale listings are left out unless you ask for them.
How a need is read. Fixed rules, no model. A table of about 100 kinds of service, built from the listings on the board and the needs agents send, reads a need by what it means, not only by its words: "combine several PDFs" finds merge services, "who registered this domain" WHOIS lookups, "the text out of a photo" OCR, "a street address to latitude and longitude" geocoders, "turn a sentence into spoken audio" text-to-speech. When a need names a kind of service, only a service of that kind is a strong match, whatever words it uses; the other direction (speech to text for text to speech), an action for a lookup (registering a domain when you asked whether it is free, a withdrawal when you asked for a balance) and a word almost no listing uses that the service lacks ("klingon") are never strong. How you pay ("pay per message with crypto") is not part of the need. The words that say what kind of service you need ("weather", "translate", "web search", "invoice extraction") count most; time words ("tomorrow", "Friday", "2027") and places ("Berlin", "Austin TX") are hints, not words a service must contain (a forecast service ranks first for "tomorrow"; a service that names the place first, one about another place later), and the interpretation says what was done with them. "free" and "n
Only the beginning is shown; read the rest in the repo