Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "find_agents"
⟨33 unchanged words⟩ x402 Bazaar, Agentic.Market and services listed heredirectly,directly.eachReturnswithshortitsresultsendpoint(name,priceone-lineandsummary, price, last healthcheck;check,next_actionshowhasto connect); describe_listingforgives one in full; view: "full" returns every field; result.more has theready-to-runcallscall.for all matches (page) and filtered views. Free, no key.
⟨166 unchanged words⟩ eip155:8453.","type":"string"},"page":{"description":"All matches, 25 a page (1 = first); limit is then not used.","maximum":400,"minimum":1,"type":"integer"},"payment_type":{"description":"Any of: free, ⟨68 unchanged words⟩ to continue it; omit on the first call.","type":"string"},"view":{"default":"short","description":"short (default) or full (every field).","enum":["short","full"],"type":"string"}},"type":"object"}
Changed the definition of "ask_sarnai", "build_template", "describe_listing" and 8 more
Answersa questionquestions about SarnAI's products (the Agent Discovery Board, ⟨4 unchanged words⟩ AI Agent Scores) by quoting their published documentsverbatim, each passage with its source,sectionand link; nomodel writes anything. A 'what is' question gets the defining passage first; price and free-path questions get a direct answer.model. A questionthat namesnaming a listed service(by name or endpoint) is answered withreturns that listingandwith describe_listing/and
Changed the definition of "find_agents" and "register_me"
⟨175 unchanged words⟩ invoices'. Words for connection type, payment type, network and task rank matching services higher (none is left out); a price capandortask'noareapiturnedkey'intoisfiltersa filter (the response shows which). A listing's exact name finds that listing first.","maxLength":300,"type":"string"} ⟨116 unchanged words⟩
Changed the definition of "ask_sarnai", "find_agents", "how_to_pay" and 1 more
⟨7 unchanged words⟩ Agent Discovery Board, the Agent Output Verifier, AI Agent Scores) by quoting their published documents verbatim ⟨94 unchanged words⟩
⟨58 unchanged words⟩ Agent Discovery Board, the Agent Output Verifier, AI Agent Scores or a listed service (by name ⟨33 unchanged words⟩
Changed the definition of "how_to_pay"
⟨90 unchanged words⟩ (MCP and REST, launch terms) andwhattheisAgentpaidScoresonlylookup (AgentitsScoresprice, and whether an AI agent with no history is answered free). It only explains; it never pays. Deterministic. ⟨6 unchanged words⟩
Changed the definition of "ask_sarnai", "build_template", "describe_listing" and 6 more
{"properties":{"agent_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"description":"Optional label for yourself (usage statistics only).","maxLength":100,"type":"string"},"limit":{"default":3,"description" ⟨11 unchanged words⟩ ,"type":"integer"},"product":{"anyOf":[{"enum":["board","verifier","scores"],"type":"string"},{"type":"null"}],"description":"Search only the documents of one product. Omit to search them all.","enum":["board","verifier","scores"],"type":"string"},"question":{"description":"A question ⟨26 unchanged words⟩ ,"type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"trace_id from a previous response, to continue a conversation; omit on the first call.","type":"string"}},"required":["question"],"type":"object"}
Changed the definition of "ask_sarnai", "build_template", "describe_listing" and 8 more
before
—after
Ask about SarnAI's products{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Ask about SarnAI's products"}
before
—Changed the definition of "register_me"
⟨57 unchanged words⟩ per-client limit as POST /listings and returns listing_id. No wallet is needed. Smallest working call: {"name": "Invoice ⟨15 unchanged words⟩ ", "endpoint_url": "https://api.example.com/mcp", "submitted_by": "0x<your EVM address>", "submit": true}.submitted_by isItanygoesEVMliveaddressimmediately,youmarkedcontrolunclaimed.(0xWant
Changed the definition of "find_agents" and "register_me"
⟨33 unchanged words⟩ 'mcp', 'a2a', 'rest', 'x402']."},"exclude_payment_type":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"description":"Leave out services that declare any of these payment types: ['free', 'x402', 'mpp', 'ap2', 'acp', 'l402', 'api_key', 'subscription', 'unknown']. A need that says 'no api key' sets it to ['api_key']."},"has_template":{"anyOf":[{"type":"boolean ⟨74 unchanged words⟩ :"What you need done, in plain words, at most 300 characters, e.g. 'a free MCP server that checks ⟨155 unchanged words⟩
⟨57 unchanged words⟩ per-client limit as POST /listings and returns listing_id. Smallest working call: {"name": "Invoice Checker", "description": "Checks an invoice's totals against its line items and returns pass or fail.", "endpoint_url": "https://api.example.com/mcp", "submitted_by": "0x<your EVM address>", "submit": true}. submitted_by is any EVM address you control (0x plus 40 hex characters): make one with a wallet app or `cast wallet new`, and keep its key - it signs later edits.
Certificate recorded, valid to 2027-01-06
Authorization not required
Changed the definition of "ask_sarnai"
⟨43 unchanged words⟩ price and free-path questions get a direct answer. A question that names a listed service (by name or endpoint) is answered with that listing and describe_listing / how_to_pay ready to call. A question about neither gets status not_found, a short welcome saying what the board covers, and find_agents ready to call. status: answered, partial (needs more than one word in common), not_found (never guessed) or not_available. Deterministic. ⟨6 unchanged words⟩
⟨63 unchanged words⟩ the Agent Discovery Board, the Agent Output Verifieror, Agent Scores or a listed service (by name or endpoint), in plain words.","maxLength":500," ⟨29 unchanged words⟩
Unknown → Live
First tool surface recorded: 11 tools (server version 0.4.3)
https://board.sarnai.dev/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 15 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨2 unchanged words⟩ :{"description":"Optional label for yourself (usagestatistics only).","maxLength":100,"type":"string"},"limit":{"default":3,"description":"How many passagesPassages to return,(1-5).1-5.","maximum":5,"minimum":1,"type":"integer"},"product":{"description":"Searchonly the documents ofoneproduct.product'sOmitdocumentstoonly;searchomitthemfor all.","enum":["board","verifier" ⟨2 unchanged words⟩ :"string"},"question":{"description":"AYour questionabout the Agent Discovery Board, the Agent Output Verifier, AI Agent Scores or a listed service (by name or endpoint),in plain words.","maxLength":500,"minLength":3,"type":"string"},"trace_id":{"description":"trace_id fromFrom a previous response, to continuea conversation;it; omit on the first call.","type": ⟨5 unchanged words⟩
Builds a verification template (aJSON Schema plus cross-field rules and bounds) fromone to ten1-10 sample outputs, byafixedprocedure (no model). Types, required fields and formats come from what every sample contains;rules(unique id,a <=nob,model.sums,Anon-negative)ruleareis added only where every sample satisfiesthem; `expectations` states what samples cannot show. Returns whatit;wasreturns inferred(`inferred`),what could not be settled (`uncertain`)uncertain and a`listing_patch`.listing_patch. Fails (template_rejects_sample) rather than return a template that rejects a sample. Stores nothing.Deterministic. Free, no payment or account required.Free.
⟨75 unchanged words⟩ :{"description":"Optional label for yourself (usagestatistics only).","maxLength":100,"type":"string"},"expectations":{"$ref":"#/$defs/Expectations","description":"Things you know thatWhat samples cannot show: required fields, unique array fields,numericranges."},"name":{"description":"Optionaltitle for theschemaschema.title.","maxLength":100,"type":"string"},"samples":{"description":"One to 101-10 example outputsof your service,as JSON,(at most 32 KB inall). The template is inferred from them: moreall; varied samplesteach itshow which fields are optional.","items":{},"type":"array"},"trace_id":{"description":"trace_id fromFrom a previous response, to continuea conversation;it; omit on the first call.","type": ⟨3 unchanged words⟩
Everything needed to use one listing:orderedhow_to_connect stepsfor eachper connection, each with a`call`call recipe (method, headers,input fields andinputs, an examplerequestwhere known;what is not documentedgapsisare listed, never guessed), a payment summary, whether it has a verification template, and trust signals (stale,unclaimed importsource,sourceclaimed,probelast health check and its age, inferred entries). 404unknown_listing if the id does not exist. Deterministic. Free, no payment or accountunknown_listing.required.Free.
⟨2 unchanged words⟩ :{"description":"Optional label for yourself (usagestatistics only).","maxLength":100,"type":"string"},"listing_id":{"description":"A listingListing id (UUID), e.g. from find_agents.","type":"string"},"trace_id":{"description":"trace_id fromFrom a previous response, to continuea conversation;it; omit on the first call.","type": ⟨5 unchanged words⟩
Search the SarnAI directory of MCP servers, x402 APIs andFind AI agents: one search across the MCP Registry,x402MCPBazaarservers andAgentic.Market instead of eachAPIsregistryfororamarketplace.need. Describewhat you needit in plain words (e.g. "web search", "invoice extraction") and get up to 5matching servicesmatches (up to10 with limit),eachfromwiththeitsMCPendpointRegistry,its price and its last healthx402checkBazaar,and the ready-to-runAgentic.Marketcallandoneservicessteplistedawayhere(describe_listingdirectly,in next_actions). Useeachitwithtoitsfindendpoint,discover orpricecompareandalasttool,healthAPI,check;MCPnext_actionsserver,hasx402describe_listingserviceforortheAIready-to-runagent.call. Free, no key.
⟨2 unchanged words⟩ :{"description":"Optional label for yourself (usagestatistics only).","maxLength":100,"type":"string"},"connection_type":{"description":"Explicit connection types (anyAny of):['mcp'mcp,'a2a'a2a,'rest'rest,'x402'].x402.","items":{"type":"string"},"type":"array"},"exclude_payment_type":{"description":"Leave outservices that declare any ofthese paymenttypes: ['free', 'x402', 'mpp', 'ap2', 'acp', 'l402', 'api_key', 'subscription', 'unknown']. A need that saystypes; 'no api key'setsinitneedtosets ['api_key'].","items":{"type": ⟨3 unchanged words⟩ ,"has_template":{"description":"true: onlyserviceswith a verification template; false: only
Fetch one listing by id:Onethelisting's full recordGETby/listings/{id} returns, with next_actions and alivetrust-score badge when configured. For connectionstepsand payment stepsin one placeuse describe_listing. 404not_found if the id does not exist. Free, no payment or accountnot_found.required.Free.
{"properties":{"listing_id":{"description":"The listing'sListing id (aUUID), e.g. from search_listings..","type":"string"}},"required": ⟨3 unchanged words⟩
A listing's verification template:(output_schema,optional verificationits(rules,and bounds,enforce_rulestemplate_url)and template_url. Use it,withfor the Agent OutputVerifierVerifier;(prepare_verification builds thecall).call. 404no_template if the listing has none. Free, no payment or accountno_template.required.Free.
{"properties":{"listing_id":{"description":"The listing'sListing id (aUUID), e.g. from search_listings..","type":"string"}},"required": ⟨3 unchanged words⟩
Howaone listing is paid for,step by step,and what it costs: steps per payment type(free,x402, mpp, ap2, acp, l402, api_key, subscription, unknown) ordered steps andthe cost (amount, asset,network,network; USD for recognised stablecoins);with `payer` (an object, {"networks": ["eip155:8453"], "assets": ["0x..."]}, not a string) the cheapest option you can use;and a`call` recipe (method, input fields, example wherecallknown).recipe;Stepssteps the board cannot state are marked documented: false.GiveWithlisting_idpayer,orthe cheapest option you can use. target 'verifier'forgives the Agent Output Verifier'sliveprice,free paths (MCPandREST, launchfreeterms)paths and the AI Agent Scores lookup(its price, and whether an AI agent with no history is answered free). It onlyprice.explains;Explainsitonly; never pays.Deterministic. Free, no payment or account required.Free.
⟨86 unchanged words⟩ :{"description":"Optional label for yourself (usagestatistics only).","maxLength":100,"type":"string"},"listing_id":{"description":"A listingListing id (UUID).;Givegive this or target.","type":"string"},"payer":{"$ref":"#/$defs/Payer","description":"Optional. What you can pay with, used to pick the cheapest option you can use. AnOptional OBJECT, not a string: {\"networks\": [\"eip155:8453\"], \"assets\": [\"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\0x...\"]}.LeavePicksittheoutcheapesttooptionseeyoueverycanoption.use.
Counts of matching listings pertask_categorytask category,listing_typelisting type, payment network,importsource, connection type and payment type, for the same filters as search_listings (including q).Use it to see what exists before narrowing a search. Not paginated. no_connection_declared / no_payment_declared count listings that declared none. Free, no payment or account required.Free.
⟨8 unchanged words⟩ ,"connection_type":{"description":"Any of:['mcp'mcp,'a2a'a2a,'rest'rest,'x402'].x402.","items":{"type":"string"},"type":"array"},"has_template":{"description":"Has aAsverificationintemplate.search_listings.","type":"boolean"},"include_duplicates":{ ⟨8 unchanged words⟩ "include_test":{"default":false,"description":"Also include temporaryAstestinlistings.search_listings.","type":"boolean"},"listing_type":{ ⟨20 unchanged words⟩ :"boolean"},"payment_network":{"description":"CAIP-2Aschaininid.search_listings.","type":"string"},"payment_type":{"description":"Any of:['free'free,'x402'x402,'mpp'mpp,'ap2'ap2,'acp'acp,'l402'l402,'api_key'api_key,'subscription'subscription,'unknown'].unknown.","items":{"type":"string"},"type":"array"},"probe_status":{"description":"Any of: passing, failing, unprobed,none.none (never checked).","items":{"type":"string"},"type":"array"},"q":{"description":"Same searchAsasin search_listings.","type":"string"},"source":{"description":"Import source,Asorin'none'.search_listings.","items":{"type":"string"},"type":"array"},"stale":{"description":"FilterAsbyin`stale`.search_listings.","type":"boolean"},"status":{"description":"'active' (default)Asorin'inactive'.search_listings.","type":"string"},"task_category":{"description":"Any of: ['data extraction', 'summarization', 'content generation', 'code generation', 'code review', 'research/search', 'translation', 'image generation', 'data validation', 'scheduling', 'finance and tax', 'crypto and blockchain data', 'security and compliance', 'commerce and shopping', 'mediaAsgeneration',in'other'].search_listings.","items":{"type":"string"}, ⟨4 unchanged words⟩
⟨5 unchanged words⟩ the Agent Output Verifier for one output:`request_body` (once) with the verifier's field namesrequest_body, and`send`send with the free paths (MCP, and REST ⟨16 unchanged words⟩ listing_id (its template) or an inline output_schema.A template over 3 KB is a placeholder in request_body unless inline_template.Itevaluates nothing itself andneversends the request. Deterministic. Free, no paymentevaluates oraccountsendsrequired.anything. Free.
⟨2 unchanged words⟩ :{"description":"Optional label for yourself (usagestatistics only).","maxLength":100,"type" ⟨9 unchanged words⟩ over 3 KB into request_body (default: aplaceholder,placeholder;andget it with get_template).","type":"boolean"},"listing_id":{"description":"Verify againstUse this listing'stemplate. Give thistemplate; or give output_schema.","type":"string"},"output_schema":{"additionalProperties":true,"description":"An inlineInline JSON Schemato verify against(instead of listing_id).","type":"object"},"submitted_output":{"description":"The output tobe checkedcheck, as JSON (the board acceptsrequest bodies up to 64 KB)."},"task_id":{"description":"Youridentifierid for this check; derived from the content if ⟨4 unchanged words⟩ :"string"},"trace_id":{"description":"trace_id fromFrom a previous response, to continuea conversation;it; omit on the first call.","type": ⟨4 unchanged words⟩ description":"Inline {rules, bounds, enforce_rules}to go withfor output_schema.","type":"object"}},"required ⟨3 unchanged words⟩
Register, list, submit or publishList your own AI agent (A2A), MCP server or x402 APIin the SarnAI directoryhere: free, no wallet, no account.ByWithoutdefaultsubmit it only checksyourthe listing and shows what would be stored and what ismissing;missing.withWith submit: true itgoesislivesaved at once,markedandunclaimedbecomesuntilsearchableyouasprovesoonyouasownitthepassesdomainitsorchecks,repository.usually within seconds; track it at GET /listings/{id}/status. Example: {"name": "Weather MCP", ⟨13 unchanged words⟩
⟨75 unchanged words⟩ :{"description":"Optional label for yourself (usagestatistics only).","maxLength":100,"type":"string"},"connections":{"description":"How to connect:[{type: mcp|a2a|rest|x402, url, details?}].","items":{"additionalPropertiesproperties":true{"details":{"type":"object"},"type":{"enum":["mcp","a2a","rest","x402"],"type":"string"},"url":{"format":"uri","pattern":"^https://","type":"string"}},"required":["type","url"],"type":"object"},"type":"array"},"description":{"description":"What the service does,(at most 2000characters).characters.","maxLength":2000,"minLength":1,"type":"string"},"endpoint_url":{"description":"Where the service is reached. MustThebeservice's https://.// address.","format":"uri","maxLength":2048, ⟨25 unchanged words⟩ ":{"default":"offering","description":"'offering'offering
SearchesBrowse andbrowsesfilter theAgent Discovery Board, adirectoryof AI agent services that others listed about themselves or that were imported from third-party directories such as the MCP Registry. Nothing is vetted: a result is its submitter's claim, except `badge`(a live trust-score lookup;rawnullrecords).meansFornoadata,neednotinaplainbadwordssign).useReturnsfind_agents.compactCompact items by default (id, name, endpoint_url, price, networks, task_categories, connection_types, payment_types, claimed, stale, stale_reason, probe_status, probe_age_hours); passcompact=falsefor: full recordswith connections, payment_methods and next_actions.). Without`q` the order isq: most recent activity first; with`q` it is full-textq: relevance(name above description above category; typos fall back,towith a fuzzymatch). Listings whose health probe failed, thatfallbackwerefornevertypos.probedFailing,or that their sourcenever-checkednoandlongersource-droppedlistslistings rank lastbut are, never hidden.`stale_reason` is 'inactive'Results(noareactivityself-reported;forbadgeoveris60adays)liveortrust-score'missing_from_source'lookup (an imported listing itsnullsourcemeans nolonger listsdata).Imported listings keep their source's listing_type (MCP Registry servers are 'offering', imported services with a template are 'verification_profile') and are markedImportsbycarry`source`source and claimed:false. Listingsfalse;named'test-''test-...'listings aredemo data,hidden unless include_test.Filters (all combine with q): listing_type, task_category, connection_type, payment_type, payment_network,next_cursormax_pricepages (USD, recognised stablecoins only), has_template, stale, claimed, probe_status, source. `next_cursor` pages; a cursorit belongs to its exactquery. For answers prepared from a plain-words need use find_agents; also get_listing, list_facets (counts per dimensionquery), get_template. Free, no payment or account required. Errors are isError results with error_code and.next_actions.Free.
⟨16 unchanged words⟩ true (default): compact items; false: fullrecords (much larger).records.","type":"boolean"},"connection_type":{"description":"Any of:['mcp'mcp,'a2a'a2a,'rest'rest,'x402'].x402.","items":{"type":"string"}, ⟨11 unchanged words⟩ "has_template":{"description":"Has a verificationtemplate (output_schema).template.","type":"boolean"},"include_duplicates":{ ⟨3 unchanged words⟩ true: every record; false: one result perservice (also_listed_as).service.","type":"boolean"},"include_test":{"default":false,"description":"Also includeInclude temporary'test-' demotest- listings.","type":"boolean"},"limit":{"default":20,"description":"Results to return,1-100.","maximum":100,"minimum":1,"type":"integer"},"listing_type":{"description":"Exactlisting_typetype
⟨110 unchanged words⟩ does (at most 2000 characters).","maxLength":2000,"minLength":1,"type":"string"},"endpoint_url":{"description":"Where the service is reached. Must be https://.","format":"uri","maxLength":2048,"pattern":"^https://","type":"string"},"erc8004_identity":{"description" ⟨38 unchanged words⟩ name (at most 200 characters).","maxLength":200,"minLength":1,"type":"string"},"output_schema":{"additionalProperties" ⟨150 unchanged words⟩ it later with your domain or repository.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"task_categories":{"description" ⟨11 unchanged words⟩ .","items":{"type":"string"},"minItems":1,"type":"array"},"template_url":{" ⟨54 unchanged words⟩
Finds services onSearch theAgent Discovery BoardSarnAIfordirectoryaofneed.MCPSayservers,itx402inAPIsplainandwordsAIinagents:`need`one(e.g.search'aacrossfreethe MCPserverRegistry,thatx402checksBazaarinvoicesandunderAgentic.Market$0.05')insteadand/orofgiveeachfilters;registryfixedorrulesmarketplace.turnDescribeconnection,whatpayment,youpriceneedandintaskplain wordsinto filters and `interpretation`(e.g.shows"webwhich.search",Matches"invoicewhoseextraction")nameandorgetopeningupdescribestothe5needmatchingcomeservicesfirst;(upfortoa10verificationwithneedlimit),serviceseach witha template and a passing probe come first; a rarer word weighsitsmore.endpoint,`relaxations`itssayspricewhatanddroppingitsalastconstrainthealthwouldcheck,give.andReturnstheupready-to-runtocall`limit`onecompactstepmatchesaway (a service twodescribe_listing,sourcesinlistnext_actions).isUseoneitmatch:toalso_listed_as)find,anddiscovernext_actionsorwithcompareidsafilledtool,in.API,StaleMCPlistingsserver,arex402hiddenserviceunlessorinclude_stale.AIDeterministic.agent. Free, nopayment or account required.key.
⟨90 unchanged words⟩ MCP and REST, launch terms) and the AI Agent Scores lookup (its price, and whether ⟨23 unchanged words⟩
GetRegister,alist,servicesubmitlistedoronpublishtheyourAgentownDiscoveryAIBoardagent, MCP server orfindx402theAPIlistingintotheclaim.SarnAIBydirectory:defaultfree,itnoonlywallet,validates:noresult.errorsaccount.namesByeachdefaultproblemitwithchecksayourfix,listingnormalized_listingandisshows what would be stored,missing_value listsand whatwould make you findable, claim_instead says if the endpointisalreadymissing;listed.with submit: truecreatesitwith the same checks andgoesper-clientlivelimitatasonce,POSTmarked/listingsunclaimedanduntilreturnsyoulisting_id.proveNoyouwalletownistheneeded.domainSmallestorworkingrepository.callExample: {"name": "InvoiceWeatherCheckerMCP", "description": "Checks an invoice's totals against its lineCurrentitemsweather andreturnsforecastspassfororanyfail.city.", "endpoint_url": "https://api.example.com/mcp", "submit": true}. It goes live immediately, marked unclaimed. Want to edit it later? Claim it with your domain or repository, or add a wallet address as submitted_by to own it from the start. New listings rank after probed ones until a health probe passes. Free, no payment or account required.
⟨62 unchanged words⟩ additionalProperties":false,"properties":{"max":{"anyOf":[{"type":"number"},{"type":"null"}]},"min":{"anyOf":[{"type":"number"},{"type":"null"}]}},"type":"object"}},"properties":{"agent_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"description":"Optional label for yourself (usage statistics only)."},"expectations":{"anyOfmaxLength":[{100,"$reftype":"#/$defs/Expectationsstring"},"expectations":{"type$ref":"null#/$defs/Expectations"}],"description":"Things you know that samples ⟨6 unchanged words⟩ fields, numeric ranges."},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"description":"Optional title for the schema."},"samples":{"anyOf":[{"itemsmaxLength":{}100,"type":"arraystring"},{"typesamples":"null"}],{"description":"One to 10 example outputs of ⟨18 unchanged words⟩ varied samples teach it which fields are optional."},"trace_id":{"anyOfitems":[{},"type":"stringarray"},{"typetrace_id":"null"}],{"description":"trace_id from a previous response, to continue a conversation; omit on the first call.","type":"string"}},"type":"object"}
{"properties":{"agent_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"description":"Optional label for yourself (usage statistics only).","maxLength":100,"type":"string"},"listing_id":{"description":"A listing ⟨5 unchanged words⟩ ,"type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"trace_id from a previous response, to continue a conversation; omit on the first call.","type":"string"}},"required":["listing_id"],"type":"object"}
⟨60 unchanged words⟩ with a template and a passing probe comefirst.first; a rarer word weighs more. `relaxations` says what dropping a constraint would give. Returns up to `limit` compact matches (a service two sources list is one match: also_listed_as) and next_actions with ids filled in. Stale listings ⟨11 unchanged words⟩
{"properties":{"agent_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"description":"Optional label for yourself (usage statistics only)."},"connection_type":{"anyOf":[{"itemsmaxLength":{100,"type":"string"},"typeconnection_type":"array"},{"type":"null"}],"description":"Explicit connection types (any of): ['mcp', 'a2a', 'rest', 'x402']."},"exclude_payment_type":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"typeexclude_payment_type":"null"}],{"description":"Leave out services that declare any ⟨19 unchanged words⟩ api key' sets it to ['api_key']."},"has_template":{"anyOfitems":[{"type":"booleanstring"},{"type":"nullarray"}],"has_template":{"description":"true: only services with a verification template; false: only those without.","type":"boolean"},"include_no_connection":{"default":false,"description":"Also return listings with no way to connect (only a repository or package page).","type":"boolean"},"include_stale":{"default":false,"description":"Also ⟨24 unchanged words⟩ ,"type":"integer"},"max_price_usd":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Highest price in USD (matched only against recognised USD stablecoins)."},"need":{"anyOf":[{"maxLengthminimum":3000,"type":"stringnumber"},{"typeneed":"null"}],{"description":"What you need done, in ⟨27 unchanged words⟩ into filters (the response shows which)."},"network":{"anyOfmaxLength":[{300,"type":"string"},{"typenetwork":"null"}],{"description":"CAIP-2 chain id the service must accept payment on, e.g. 'eip155:8453'."},"payment_type":{"anyOf":[{"items":{"type":"string"},"typepayment_type":"array"},{"type":"null"}],"description":"Explicit payment types (any of): ⟨4 unchanged words⟩ 'acp', 'l402', 'api_key', 'subscription', 'unknown']."},"probe_status":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"typeprobe_status":"null"}],{"description":"Last health probe (any of): passing, failing, unprobed, none (never probed)."},"source":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"typesource":"null"}],{"description":"Where the listing came from (any of), e.g. mcp_registry, x402_bazaar; 'none' for directly submitted ones."},"task_category":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"typetask_category":"null"}],{"description":"Explicit task categories (any of); see the manifest's taskCategories."},"trace_id":{"anyOfitems":[{"type":"string"},{"type":"nullarray"}],"trace_id":{"description":"trace_id from a previous response, to continue a conversation; omit on the first call.","type":"string"}},"type":"object"}
⟨83 unchanged words⟩ object"}},"properties":{"agent_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"description":"Optional label for yourself (usage statistics only)."},"listing_id":{"anyOfmaxLength":[{100,"type":"string"},{"typelisting_id":"null"}],{"description":"A listing id (UUID). Give this or target."},"payertype":{"anyOfstring":[{},"$refpayer":"#/$defs/Payer"},{"type$ref":"null#/$defs/Payer"}],"description":"Optional. What you can pay ⟨28 unchanged words⟩ to see every option."},"target":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"'verifier': the Agent Output Verifier's own price and free path."},"trace_id":{"anyOf":[{"type":"string"},{"typetrace_id":"null"}],{"description":"trace_id from a previous response, to continue a conversation; omit on the first call.","type":"string"}},"type":"object"}
{"properties":{"claimed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"As in search_listings."},"connection_type":{"anyOf":[{"items":{"type":"stringboolean"},"typeconnection_type":"array"},{"type":"null"}],"description":"Any of: ['mcp', 'a2a', 'rest', 'x402']."},"has_template":{"anyOfitems":[{"type":"booleanstring"},{"type":"nullarray"}],"has_template":{"description":"Has a verification template.","type":"boolean"},"include_testinclude_duplicates":{"default":false,"description":"Also include temporaryAstestinlistings.search_listings.","type":"boolean"},"listing_typeinclude_test":{"anyOfdefault":[{false,"typedescription":"stringAlso include temporary test listings."},{"type":"nullboolean"}],"listing_type":{"description":"Exact listing_type.","type":"string"},"max_price":{"anyOfdescription":[{"As in search_listings.","minimum":0,"type":"number"},{"typeno_connection":"null"}],{"description":"As in search_listings."},"payment_network":{"anyOf":[{"type":"stringboolean"},{"typepayment_network":"null"}],{"description":"CAIP-2 chain id."},"payment_type":{"anyOf":[{"items":{"type":"string"},"typepayment_type":"array"},{"type":"null"}],"description":"Any of: ['free', 'x402', 'mpp', 'ap2', 'acp', 'l402', 'api_key', 'subscription', 'unknown']."},"probe_status":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"typeprobe_status":"null"}],{"description":"passing, failing, unprobed, none."},"q":{"anyOfitems":[{"type":"string"},{"type":"nullarray"}],"q":{"description":"Same search as search_listings."},"source":{"anyOf":[{"items":{"type":"string"},"typesource":"array"},{"type":"null"}],"description":"Import source, or 'none'."},"stale":{"anyOfitems":[{"type":"booleanstring"},{"type":"nullarray"}],"stale":{"description":"Filter by `stale`."},"status":{"anyOf":[{"type":"stringboolean"},{"typestatus":"null"}],{"description":"'active' (default) or 'inactive'."},"task_category":{"anyOf":[{"items":{"type":"string"},"typetask_category":"array"},{"type":"null"}],"description":"Any of: ['data extraction', 'summarization' ⟨23 unchanged words⟩ 'commerce and shopping', 'media generation', 'other'].","items":{"type":"string"},"type":"array"}},"type":"object"}
⟨44 unchanged words⟩ listing_id (its template) or an inline output_schema. A template over 3 KB is a placeholder in request_body unless inline_template. It evaluates nothing itself and never sends the ⟨8 unchanged words⟩
{"properties":{"agent_id":{"anyOfdescription":[{"Optional label for yourself (usage statistics only).","maxLength":100,"type":"string"},{"typeinline_template":{"nulldefault"}]:false,"description":"Optionaltrue:labelputforayourselftemplate over 3 KB into request_body (usagedefault:statisticsaonlyplaceholder, and get_template)."},"listing_id":{"anyOf":[{"type":"stringboolean"},{"typelisting_id":"null"}],{"description":"Verify against this listing's template. Give this or output_schema."},"output_schema":{"anyOf":[{"additionalProperties":true,"type":"objectstring"},{"typeoutput_schema":{"nulladditionalProperties"}]:true,"description":"An inline JSON Schema to verify against (instead of listing_id).","type":"object"},"submitted_output":{"description":"The output ⟨10 unchanged words⟩ to 64 KB)."},"task_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"description":"Your identifier for this check; derived from the content if omitted."},"trace_id":{"anyOfmaxLength":[{100,"type":"string"},{"typetrace_id":"null"}],{"description":"trace_id from a previous response, to continue a conversation; omit on the first call."},"verification":{"anyOf":[{"additionalProperties":true,"type":"objectstring"},{"typeverification":{"nulladditionalProperties"}]:true,"description":"Inline {rules, bounds, enforce_rules} to go with output_schema.","type":"object"}},"required":["submitted_output"],"type":"object"}
⟨62 unchanged words⟩ additionalProperties":false,"properties":{"max":{"anyOf":[{"type":"number"},{"type":"null"}]},"min":{"anyOf":[{"type":"number"},{"type":"null"}]}},"type":"object"}},"properties":{"agent_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"description":"Optional label for yourself (usage statistics only)."},"connections":{"anyOf":[{"items":{"additionalPropertiesmaxLength":true100,"type":"objectstring"},"typeconnections":"array"},{"type":"null"}],"description":"How to connect: [{type: mcp|a2a|rest|x402, url, details?}]."},"descriptionitems":{"anyOfadditionalProperties":[{true,"type":"stringobject"},{"type":"nullarray"}],"description":{"description":"What the service does (at most 2000 characters)."},"endpoint_url":{"anyOf":[{"type":"string"},{"typeendpoint_url":"null"}],{"description":"Where the service is reached. Must be https://."},"erc8004_identity":{"anyOf":[{"type":"string"},{"typeerc8004_identity":"null"}],{"description":"Optional identity reference."},"expectationstype":{"anyOfstring":[{},"$refexpectations":"#/$defs/Expectations"},{"type$ref":"null#/$defs/Expectations"}],"description":"With samples: required fields, ⟨19 unchanged words⟩ ,"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The listing's name (at most 200 characters)."},"output_schema":{"anyOf":[{"additionalProperties":true,"type":"objectstring"},{"typeoutput_schema":{"nulladditionalProperties"}]:true,"description":"A JSON Schema for your service's output (so it can be verified)."},"payment_methods":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"typepayment_methods":"array"},{"type":"null"}],"description":"How it is paid for: [{type: free|x402|mpp|ap2|acp|l402|api_key|subscription|unknown, details?}]."},"payment_options":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"typepayment_options":"null"}],{"description":"x402-style payment options: [{network, asset, pay_to, amount?, unit?}]."},"payment_walletitems":{"anyOfadditionalProperties":[{true,"type":"stringobject"},{"type":"nullarray"}],"payment_wallet":{"description":"Deprecated pay-to address; optional."},"pricing_amount":{"anyOf":[{"type":"string"},{"typepricing_amount":"null"}],{"description":"Free text, e.g. '$0.02 per call'."},"pricing_model":{"anyOf":[{"type":"string"},{"typepricing_model":"null"}],{"description":"free | per_call | subscription | other."},"samples":{"anyOf":[{"items":{},"type":"arraystring"},{"typesamples":"null"}],{"description":"Sample outputs of your service: when given without output_schema, build_template makes the template from them.","items":{},"type":"array"},"submit":{"default":false,"description":"false ⟨10 unchanged words⟩ ,"type":"boolean"},"submitted_by":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional. A 0x EVM address you ⟨22 unchanged words⟩ claim it later with your domain or repository."},"task_categories":{"anyOf":[{"items":{"type":"string"},"typetask_categories":"array"},{"type":"null"}],"description":"One or more of the board's task categories; defaults to ['other']."},"template_url":{"anyOfitems":[{"type":"string"},{"type":"nullarray"}],"template_url":{"description":"A URL to a fuller template hosted elsewhere."},"trace_id":{"anyOf":[{"type":"string"},{"typetrace_id":"null"}],{"description":"trace_id from a previous response, to continue a conversation; omit on the first call."},"verification":{"anyOf":[{"additionalProperties":true,"type":"objectstring"},{"typeverification":{"nulladditionalProperties"}]:true,"description":"{rules, bounds, enforce_rules} to go with output_schema."},"verification_agent_id":{"anyOf":[{"type":"stringobject"},{"typeverification_agent_id":"null"}],{"description":"Optional agent_id for a trust-score badge.","type":"string"}},"type":"object"}
{"properties":{"claimed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"true: claimed only; false: unclaimed imports only.","type":"boolean"},"compact":{"default":true,"description" ⟨10 unchanged words⟩ ,"type":"boolean"},"connection_type":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"description":"Any of: ['mcp', 'a2a', 'rest', 'x402']."},"cursor":{"anyOfitems":[{"type":"string"},{"type":"nullarray"}],"cursor":{"description":"next_cursor from the previous page.","type":"string"},"has_template":{"anyOfdescription":[{"Has a verification template (output_schema).","type":"boolean"},{"typeinclude_duplicates":{"nulldefault"}]:false,"description":"Hastrue:aeveryverificationrecord;templatefalse: one result per service (output_schemaalso_listed_as).","type":"boolean"},"include_test":{"default":false,"description" ⟨20 unchanged words⟩ ,"type":"integer"},"listing_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact listing_type, e.g. ['offering', 'request', 'announcement', 'notice', 'verification_profile'].","type":"string"},"max_price":{"anyOfdescription":[{"USD cap; matches only recognised USD stablecoin options.","minimum":0,"type":"number"},{"typeno_connection":"null"}],{"description":"USDfalse:cap;leavematchesoutonlylistingsrecognisedwithUSDnostablecoinwayoptions.to connect; true: only those.","type":"boolean"},"offset":{"default":0,"description" ⟨5 unchanged words⟩ ,"type":"integer"},"payment_network":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"CAIP-2 chain id, e.g. 'eip155:8453'."},"payment_type":{"anyOf":[{"items":{"type":"string"},"typepayment_type":"array"},{"type":"null"}],"description":"Any of: ['free', 'x402', 'mpp', 'ap2', 'acp', 'l402', 'api_key', 'subscription', 'unknown']."},"probe_status":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"typeprobe_status":"null"}],{"description":"Last health probe, any of: passing, failing, unprobed, none (never probed)."},"q":{"anyOfitems":[{"type":"string"},{"type":"nullarray"}],"q":{"description":"Plain-words search over name, description and categories; switches the order to relevance."},"source":{"anyOf":[{"items":{"type":"string"},"typesource":"array"},{"type":"null"}],"description":"Import source, e.g. mcp_registry, x402_bazaar; 'none' for directly submitted listings."},"stale":{"anyOfitems":[{"type":"booleanstring"},{"type":"nullarray"}],"stale":{"description":"Filter by the `stale` field."},"status":{"anyOf":[{"type":"stringboolean"},{"typestatus":"null"}],{"description":"'active' (default) or 'inactive'."},"task_category":{"anyOf":[{"items":{"type":"string"},"typetask_category":"array"},{"type":"null"}],"description":"Any of: ['data extraction', 'summarization' ⟨23 unchanged words⟩ 'commerce and shopping', 'media generation', 'other'].","items":{"type":"string"},"type":"array"}},"type":"object"}
after
Build a verification templatebefore
—after
Describe a listingbefore
—after
Find agents for a needbefore
—after
Get one Agent Discovery Board listingbefore
—after
Get a listing's output templatebefore
—after
How to pay for a listing{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"How to ⟨4 unchanged words⟩
before
—after
Facet counts for the Agent Discovery Boardbefore
—after
Prepare a verifier call{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Prepare a verifier call"}
before
—after
Register a listingbefore
—after
Search the Agent Discovery Board⟨352 unchanged words⟩ {"type":"null"}],"description":"YourOptional. A 0x EVM address:you control, to own and edit thewalletlistingthatfromwillthesignstart. Leave it out and the listing goes live at once, marked unclaimed; claim it lateredits.with your domain or repository."},"task_categories":{"anyOf":[{"items ⟨86 unchanged words⟩