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 "discover_capabilities"
⟨10 unchanged words⟩ callable APIs, MCP servers or CLIs. Returns{need, coverage, count, uncovered, note,matches[]};each match haswith slug, endpoint, auth, formats, rate limit, pricing and a 0-100 reliabilityscore. Never empty on a valid need:score; if nothing fits, coverage='none' and matches[] lists reliable starting points.Errors: an invalid or too-short need fails input validation; a backend failure returns isError=true with the message.Rate limits: 100 calls/day anonymous, 1,000/day with a free key(POST /api/public/keys, no account), 50,000/day on Agent Pro. For a ⟨6 unchanged words⟩
Changed the definition of "discover_capabilities"
⟨10 unchanged words⟩ callable APIs, MCP servers or CLIs. Returns{need, coverage, count, uncovered, note,matches[]};each match haswith slug, endpoint, auth, formats, rate limit, pricing and a 0-100 reliabilityscore. Never empty on a valid need:score; if nothing fits, coverage='none' and matches[] lists reliable starting points.Errors: an invalid or too-short need fails input validation; a backend failure returns isError=true with the message.Rate limits: 100 calls/day anonymous, 1,000/day with a free key(POST /api/public/keys, no account), 50,000/day on Agent Pro. For a ⟨6 unchanged words⟩
Authorization not required
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Authorization not required
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Authorization not required
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Changed the definition of "search_registry"
⟨64 unchanged words⟩ full record of one known slug use get_entry. Read-only and side-effect free. Returns {count, results[]}inwhere each result is a summaryformentry record (slug,andname,ancategory, summary, endpoint, trust fields). Results are ordered alphabetically by name, not by relevance; there is no pagination beyond the limit parameter — raise limit (max 50) or narrow the query to see more. An empty results[] when nothing matches— thatis a valid answer, not an error.
Changed the definition of "search_registry"
⟨64 unchanged words⟩ full record of one known slug use get_entry. Read-only and side-effect free. Returns {count, results[]}inwhere each result is a summaryformentry record (slug,andname,ancategory, summary, endpoint, trust fields). Results are ordered alphabetically by name, not by relevance; there is no pagination beyond the limit parameter — raise limit (max 50) or narrow the query to see more. An empty results[] when nothing matches— thatis a valid answer, not an error.
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Authorization not required
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Changed the definition of "submit_entry"
⟨387 unchanged words⟩ ). Must be reachable: it is probedevery 6 hoursdaily and a dead endpoint loses its reliability score. ⟨277 unchanged words⟩
Changed the definition of "submit_entry"
⟨387 unchanged words⟩ ). Must be reachable: it is probedevery 6 hoursdaily and a dead endpoint loses its reliability score. ⟨277 unchanged words⟩
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Changed the definition of "discover_capabilities" and "submit_entry"
⟨48 unchanged words⟩ coverage='none' and matches[] lists reliable starting points. Errors: an invalid or too-short need fails input validation; a backend failure returns isError=true with the message. Rate limits: 100 calls/day anonymous, 1,000/day with a free key (POST /api/public/keys, no account), 50,000/day on Agent Pro. For a known keyword or slug, use search_registry.
⟨5 unchanged words⟩ ":{"description":"Restrict to one interfacelayer.layerOmit('api',to'mcp'searchor
Changed the definition of "discover_capabilities" and "submit_entry"
⟨48 unchanged words⟩ coverage='none' and matches[] lists reliable starting points. Errors: an invalid or too-short need fails input validation; a backend failure returns isError=true with the message. Rate limits: 100 calls/day anonymous, 1,000/day with a free key (POST /api/public/keys, no account), 50,000/day on Agent Pro. For a known keyword or slug, use search_registry.
⟨5 unchanged words⟩ ":{"description":"Restrict to one interfacelayer.layerOmit('api',to'mcp'searchor
Authorization not required
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Changed the definition of "discover_capabilities"
Use this when you haveMap agoal in plain language and no idea which interface servesplain-languageitgoal (e.g. 'send a transactional email') to callable APIs,'queryMCPPostgres').servers or CLIs. Returns {need, coverage, count, uncovered, note, matches[]}; each matchcarrieshas slug,name, category,endpoint, authmode and parameters,input/output
Changed the definition of "discover_capabilities"
Use this when you haveMap agoal in plain language and no idea which interface servesplain-languageitgoal (e.g. 'send a transactional email') to callable APIs,'queryMCPPostgres').servers or CLIs. Returns {need, coverage, count, uncovered, note, matches[]}; each matchcarrieshas slug,name, category,endpoint, authmode and parameters,input/output
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Changed the definition of "submit_entry"
⟨264 unchanged words⟩ email","maxLength":200,"pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨398 unchanged words⟩
Changed the definition of "submit_entry"
⟨264 unchanged words⟩ email","maxLength":200,"pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨398 unchanged words⟩
Authorization not required
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Changed the definition of "discover_capabilities", "get_entry", "list_categories" and 3 more
⟨92 unchanged words⟩ being unreachable is returned as an error result. Parameter guidance: write 'need' as a task, not a keyword ('send a transactional email', not 'email'); leave 'category' unset unless you specifically require one layer, since the best interface for a need is often in another; raise 'limit' when you intend to compare candidates; and use 'min_reliability' (e.g. 60) only for production calls, as it can empty an otherwise useful result set. For a known keyword, slug, vendor or category, use search_registry instead.
Fetchonetheapprovedfull
Changed the definition of "discover_capabilities", "get_entry", "list_categories" and 3 more
⟨92 unchanged words⟩ being unreachable is returned as an error result. Parameter guidance: write 'need' as a task, not a keyword ('send a transactional email', not 'email'); leave 'category' unset unless you specifically require one layer, since the best interface for a need is often in another; raise 'limit' when you intend to compare candidates; and use 'min_reliability' (e.g. 60) only for production calls, as it can empty an otherwise useful result set. For a known keyword, slug, vendor or category, use search_registry instead.
Fetchonetheapprovedfull
Changed the definition of "submit_entry"
⟨83 unchanged words⟩ ,"cli"],"type":"string"},"contact_email":{"description":"Optional. Where to email the moderation decision (approved or rejected, with the reason). Never published, never shared.","format":"email","maxLength":200,"pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},"description":{"default":"","maxLength":4000 ⟨94 unchanged words⟩
Changed the definition of "submit_entry"
⟨83 unchanged words⟩ ,"cli"],"type":"string"},"contact_email":{"description":"Optional. Where to email the moderation decision (approved or rejected, with the reason). Never published, never shared.","format":"email","maxLength":200,"pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},"description":{"default":"","maxLength":4000 ⟨94 unchanged words⟩
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Changed the definition of "discover_capabilities" and "search_registry"
MatchUse this when you have anatural-languagegoalneedin plain language and no idea which interface serves it (e.g. 'send a transactional email', 'query Postgres')to the.interfacesReturnsthat{need,cancoverage,docount,it
Changed the definition of "discover_capabilities" and "search_registry"
MatchUse this when you have anatural-languagegoalneedin plain language and no idea which interface serves it (e.g. 'send a transactional email', 'query Postgres')to the.interfacesReturnsthat{need,cancoverage,docount,it
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Authorization not required
Authorization not required
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Added "submit_entry" (5 tools before, 6 now)
Submit an interface to the registry — Submit an API, MCP server or CLI to Agent Nexus on behalf of the signed-in member. The entry lands in the moderation queue; describe its capabilities precisely so other agents can match it to a need.
Added "submit_entry" (5 tools before, 6 now)
Submit an interface to the registry — Submit an API, MCP server or CLI to Agent Nexus on behalf of the signed-in member. The entry lands in the moderation queue; describe its capabilities precisely so other agents can match it to a need.
Added "list_entries"; changed the definition of "discover_capabilities", "get_entry", "list_categories" and 1 more (4 tools before, 5 now)
⟨16 unchanged words⟩ string"},"limit":{"default":5,"description":"Maximum number of matching interfaces to return (1-20).","maximum":20,"minimum":1,"type":" ⟨42 unchanged words⟩
before
—after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"count":{"type":"number"},"coverage":{"type":"string"},"matches":{"items":{},"type":"array"},"need":{"type":"string"},"note":{"type":"string"},"uncovered":{"type":"boolean"}},"required":["need","coverage","count","uncovered","note","matches"],"type":"object"}Added "list_entries"; changed the definition of "discover_capabilities", "get_entry", "list_categories" and 1 more (4 tools before, 5 now)
⟨16 unchanged words⟩ string"},"limit":{"default":5,"description":"Maximum number of matching interfaces to return (1-20).","maximum":20,"minimum":1,"type":" ⟨42 unchanged words⟩
before
—after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"count":{"type":"number"},"coverage":{"type":"string"},"matches":{"items":{},"type":"array"},"need":{"type":"string"},"note":{"type":"string"},"uncovered":{"type":"boolean"}},"required":["need","coverage","count","uncovered","note","matches"],"type":"object"}Certificate recorded, valid to 2026-12-13
Authorization not required, issuer https://upjqzuruxbvgdrheacnz.supabase.co/auth/v1
Certificate recorded, valid to 2026-12-13
Authorization not required
Verified owner set by well_known_file proof on agentnexus.app
Unknown → Live
First tool surface recorded: 4 tools (server version 0.3.0)
First tool surface recorded: 4 tools (server version 0.3.0)
https://agentnexus.app/api/public/mcp (mcp_streamable_http) — from mcp_registry, with the record
https://agentnexus.app/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 74 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨30 unchanged words⟩ //agentnexus.app/api/public/keys), which allows one submission per key and per source address per 24 hours. This is a write: it creates ⟨109 unchanged words⟩ hour for members and 1 per 24 hoursforper agentkeyskey and per source address, and the endpoint must answer a live ⟨44 unchanged words⟩
⟨30 unchanged words⟩ //agentnexus.app/api/public/keys), which allows one submission per key and per source address per 24 hours. This is a write: it creates ⟨109 unchanged words⟩ hour for members and 1 per 24 hoursforper agentkeyskey and per source address, and the endpoint must answer a live ⟨44 unchanged words⟩
⟨3 unchanged words⟩ ,"properties":{"slug":{"description":"EntryExact lowercase slug of one entry, 1-80 chars, as returned in the 'slug' field of any other tool, e.g.'stripe-api'.'stripe-api' or 'github-mcp'. Case-sensitive, no URL and no display name; only entries with status 'approved' resolve.","maxLength":80,"minLength":1,"type ⟨5 unchanged words⟩
ListReturn thethreefixedinterfacetaxonomylayersof Agent Nexus: the three interface layers it indexes (APIs'api',MCPs'mcp',CLIs'cli'), each withtheanumberlabel, a one-line definition and its live count of approved entries. Read-only, idempotent and parameterless — call it once to learn the exact values accepted by the 'category' argument of search_registry, list_entries and discover_capabilities, and to size the catalogue before paging. It never returns entriesinthemselves:each.use list_entries to enumerate a layer, search_registry for a keyword, discover_capabilities for a plain-language need.
ListEnumerateeverythe whole approvedentrycatalogue inthe AgentdeterministicNexusslugregistryorder, page bypage.pageReturns—upusetothis50whenentriesyouperwantpageeverything (mirroring,orderedauditing,bybuildingslugyour own index),withnotthewhen you are looking for something specific. Read-only and idempotent. Returns {total,countpage,soper_page, pages, results[]}: read 'pages' from the first response and increment 'page' until youcanreachpageit;through'total' and 'pages' reflect thewhole'category'catalogue.filterUsewhensearch_registryone is set, so keep the filter identical across pages or the paging shifts. Entries come back in summary form; call get_entry with a slug for the full record. For a keywordlookupuseinstead.search_registry, for a plain-language need use discover_capabilities, and for the accepted category values call list_categories. Bulk mirror alternative: GET https://agentnexus.app/api/public/entries.ndjson streams the full catalogue in one request.
⟨3 unchanged words⟩ ,"properties":{"category":{"description":"RestrictOptionalthefilter,listingexactly one of 'api', 'mcp' or 'cli' (see list_categories). Omit toonepageinterfacethroughcategory.all three layers. When set, 'total' and 'pages' count only that layer.","enum":["api","mcp"," ⟨3 unchanged words⟩ "page":{"default":1,"description":"Page1-basednumber,pagestartingindex. Start at1.1 and increment until it equals the 'pages' value returned in the response; a page beyond the last one returns an empty results[] rather than an error.","maximum":9007199254740991,"minimum":1,"type":"integer"},"per_page":{"default":25,"description":"Entries
⟨44 unchanged words⟩ need to a callable interface, use discover_capabilitiesinstead.instead; to walk the whole catalogue in order use list_entries, and for the full record of one known slug use get_entry. Returns {count, results[]} in summary form, and an empty results[] when nothing matches — that is a valid answer, not an error.
⟨3 unchanged words⟩ ,"properties":{"category":{"description":"RestrictOptionalresultsfilter,toexactly oneinterfaceofcategory.'api', 'mcp' or 'cli' (see list_categories). Combined with query as AND. Omit to search all three layers.","enum":["api","mcp"," ⟨3 unchanged words⟩ "limit":{"default":10,"description":"MaximumUppernumberboundofon entriesto returnreturned,(1-50)., default 10. Results are ordered by name, not by relevance, so a small limit on a broad keyword can hide better matches — raise it or use discover_capabilities when you are ranking candidates.","maximum":50,"minimum":1,"type":"integer"},"query":{"default":"","description":"KeywordLiteral substring, max 120 chars, matched case-insensitively against name, summary, endpoint and slug — a product name ('resend'), a vendor, a slug fragment orslug.a host ('api.stripe.com'). Single terms work best: the whole string is matched as one substring, so 'send email' finds nothing unless those words appear together. The characters % , ( ) are stripped. An empty query (the default) returns the first entries in name order, which is a browse, not a search.","maxLength":120,"type":"string"} ⟨2 unchanged words⟩
SubmitRegisterana new interface (HTTP API, MCP server or CLI)toin the Agent Nexusoncatalogue.behalfCallersofauthenticatetheeither as a signed-inmember.memberTheorentrywithlandsainfreetheagentmoderationkeyqueue;(POSTdescribehttps://agentnexus.app/api/public/keys),itswhichcapabilitiesallowspreciselyone submission per key per 24 hours. This is a write: it creates a pending row, it does NOT publish anything — every submission is reviewed by a human before it becomes discoverable, so nothing you send here is visible to other agentscanuntilmatchit is approved. Nothing is overwritten or deleted, and re-submitting the same name creates a second pending row rather than updating the first. Five fields are required (name, category, summary, endpoint, auth_mode); everything else is optional but directly decides whether the entry is approved and how well it ranks: capabilities[] is what other agents are matched against, so list concrete verbs, and docs_url plus invocation_example are what a reviewer checks first. Rate limited to 20 submissions per hour for members and 1 per 24 hours for agent keys, and the endpoint must answer aneed.live health probe to keep a reliability score. Returns {slug, status}; poll GET https://agentnexus.app/api/public/submission?slug=<slug> for the decision, or pass contact_email to be emailed instead. Use list_my_submissions to review what you already submitted; use search_registry first to check the interface is not already listed.
⟨3 unchanged words⟩ ,"properties":{"auth_mode":{"description":"e.g.How a caller authenticates, in a few words: 'none', 'Bearer API key', 'API key in query', 'OAuth 2.1','none'.'Basic auth'. Write 'none' rather than leaving it vague; auth_params carries the individual credentials.","maxLength":120,"minLength":1,"type":"string"},"auth_params":{"default":[],"description":"Up to 10 individual credentials the caller must supply, each {name, location, required}. Leave empty when auth_mode is 'none'. Never include credential values here, only their names.","items":{"properties":{"location":{"description":"headerWhere|thequerycredential|goes:env'header',|'query',flag'env' (CLI/MCP environment variable) or 'flag' (CLI argument).","maxLength":40,"minLength":1,"type":"string"},"name":{"description":"Exact credential name as sent, e.g. 'Authorization' or 'api_key'.","
⟨3 unchanged words⟩ ,"properties":{"slug":{"description":"EntryExact lowercase slug of one entry, 1-80 chars, as returned in the 'slug' field of any other tool, e.g.'stripe-api'.'stripe-api' or 'github-mcp'. Case-sensitive, no URL and no display name; only entries with status 'approved' resolve.","maxLength":80,"minLength":1,"type ⟨5 unchanged words⟩
ListReturn thethreefixedinterfacetaxonomylayersof Agent Nexus: the three interface layers it indexes (APIs'api',MCPs'mcp',CLIs'cli'), each withtheanumberlabel, a one-line definition and its live count of approved entries. Read-only, idempotent and parameterless — call it once to learn the exact values accepted by the 'category' argument of search_registry, list_entries and discover_capabilities, and to size the catalogue before paging. It never returns entriesinthemselves:each.use list_entries to enumerate a layer, search_registry for a keyword, discover_capabilities for a plain-language need.
ListEnumerateeverythe whole approvedentrycatalogue inthe AgentdeterministicNexusslugregistryorder, page bypage.pageReturns—upusetothis50whenentriesyouperwantpageeverything (mirroring,orderedauditing,bybuildingslugyour own index),withnotthewhen you are looking for something specific. Read-only and idempotent. Returns {total,countpage,soper_page, pages, results[]}: read 'pages' from the first response and increment 'page' until youcanreachpageit;through'total' and 'pages' reflect thewhole'category'catalogue.filterUsewhensearch_registryone is set, so keep the filter identical across pages or the paging shifts. Entries come back in summary form; call get_entry with a slug for the full record. For a keywordlookupuseinstead.search_registry, for a plain-language need use discover_capabilities, and for the accepted category values call list_categories. Bulk mirror alternative: GET https://agentnexus.app/api/public/entries.ndjson streams the full catalogue in one request.
⟨3 unchanged words⟩ ,"properties":{"category":{"description":"RestrictOptionalthefilter,listingexactly one of 'api', 'mcp' or 'cli' (see list_categories). Omit toonepageinterfacethroughcategory.all three layers. When set, 'total' and 'pages' count only that layer.","enum":["api","mcp"," ⟨3 unchanged words⟩ "page":{"default":1,"description":"Page1-basednumber,pagestartingindex. Start at1.1 and increment until it equals the 'pages' value returned in the response; a page beyond the last one returns an empty results[] rather than an error.","maximum":9007199254740991,"minimum":1,"type":"integer"},"per_page":{"default":25,"description":"Entries
⟨44 unchanged words⟩ need to a callable interface, use discover_capabilitiesinstead.instead; to walk the whole catalogue in order use list_entries, and for the full record of one known slug use get_entry. Returns {count, results[]} in summary form, and an empty results[] when nothing matches — that is a valid answer, not an error.
⟨3 unchanged words⟩ ,"properties":{"category":{"description":"RestrictOptionalresultsfilter,toexactly oneinterfaceofcategory.'api', 'mcp' or 'cli' (see list_categories). Combined with query as AND. Omit to search all three layers.","enum":["api","mcp"," ⟨3 unchanged words⟩ "limit":{"default":10,"description":"MaximumUppernumberboundofon entriesto returnreturned,(1-50)., default 10. Results are ordered by name, not by relevance, so a small limit on a broad keyword can hide better matches — raise it or use discover_capabilities when you are ranking candidates.","maximum":50,"minimum":1,"type":"integer"},"query":{"default":"","description":"KeywordLiteral substring, max 120 chars, matched case-insensitively against name, summary, endpoint and slug — a product name ('resend'), a vendor, a slug fragment orslug.a host ('api.stripe.com'). Single terms work best: the whole string is matched as one substring, so 'send email' finds nothing unless those words appear together. The characters % , ( ) are stripped. An empty query (the default) returns the first entries in name order, which is a browse, not a search.","maxLength":120,"type":"string"} ⟨2 unchanged words⟩
SubmitRegisterana new interface (HTTP API, MCP server or CLI)toin the Agent Nexusoncatalogue.behalfCallersofauthenticatetheeither as a signed-inmember.memberTheorentrywithlandsainfreetheagentmoderationkeyqueue;(POSTdescribehttps://agentnexus.app/api/public/keys),itswhichcapabilitiesallowspreciselyone submission per key per 24 hours. This is a write: it creates a pending row, it does NOT publish anything — every submission is reviewed by a human before it becomes discoverable, so nothing you send here is visible to other agentscanuntilmatchit is approved. Nothing is overwritten or deleted, and re-submitting the same name creates a second pending row rather than updating the first. Five fields are required (name, category, summary, endpoint, auth_mode); everything else is optional but directly decides whether the entry is approved and how well it ranks: capabilities[] is what other agents are matched against, so list concrete verbs, and docs_url plus invocation_example are what a reviewer checks first. Rate limited to 20 submissions per hour for members and 1 per 24 hours for agent keys, and the endpoint must answer aneed.live health probe to keep a reliability score. Returns {slug, status}; poll GET https://agentnexus.app/api/public/submission?slug=<slug> for the decision, or pass contact_email to be emailed instead. Use list_my_submissions to review what you already submitted; use search_registry first to check the interface is not already listed.
⟨3 unchanged words⟩ ,"properties":{"auth_mode":{"description":"e.g.How a caller authenticates, in a few words: 'none', 'Bearer API key', 'API key in query', 'OAuth 2.1','none'.'Basic auth'. Write 'none' rather than leaving it vague; auth_params carries the individual credentials.","maxLength":120,"minLength":1,"type":"string"},"auth_params":{"default":[],"description":"Up to 10 individual credentials the caller must supply, each {name, location, required}. Leave empty when auth_mode is 'none'. Never include credential values here, only their names.","items":{"properties":{"location":{"description":"headerWhere|thequerycredential|goes:env'header',|'query',flag'env' (CLI/MCP environment variable) or 'flag' (CLI argument).","maxLength":40,"minLength":1,"type":"string"},"name":{"description":"Exact credential name as sent, e.g. 'Authorization' or 'api_key'.","
⟨5 unchanged words⟩ :{"description":"Restrict to one interface layer. Omit to search all three (default).","enum":["api","mcp"," ⟨7 unchanged words⟩ ":"Maximum number of matching interfaces to return,(1-20).1-20. Default 5.","maximum":20,"minimum":1,"type ⟨2 unchanged words⟩ {"default":0,"description":"Drop interfaceswhosescoring below this 0-100 reliabilityscorevalue.isDefaultbelow0this(novalue.filter).","maximum":100,"minimum":0,"type ⟨5 unchanged words⟩ agent is trying to accomplish, in plain language. 3-300 characters, required.","maxLength":300,"minLength":3,"type ⟨5 unchanged words⟩
SearchKeyword lookup in the Agent Nexus registryofwhenapprovedyouAPIsalready know what to look for: a product name,MCPvendor,serversslugandorCLIsendpointbyfragment,keywordoptionallyandnarrowedoptionalto one category. Matches literal text only — it does not interpret a goal. To go from a plain-language need to a callable interface, use discover_capabilities instead.
⟨5 unchanged words⟩ :{"description":"Restrict to one interface layer. Omit to search all three (default).","enum":["api","mcp"," ⟨7 unchanged words⟩ ":"Maximum number of matching interfaces to return,(1-20).1-20. Default 5.","maximum":20,"minimum":1,"type ⟨2 unchanged words⟩ {"default":0,"description":"Drop interfaceswhosescoring below this 0-100 reliabilityscorevalue.isDefaultbelow0this(novalue.filter).","maximum":100,"minimum":0,"type ⟨5 unchanged words⟩ agent is trying to accomplish, in plain language. 3-300 characters, required.","maxLength":300,"minLength":3,"type ⟨5 unchanged words⟩
SearchKeyword lookup in the Agent Nexus registryofwhenapprovedyouAPIsalready know what to look for: a product name,MCPvendor,serversslugandorCLIsendpointbyfragment,keywordoptionallyandnarrowedoptionalto one category. Matches literal text only — it does not interpret a goal. To go from a plain-language need to a callable interface, use discover_capabilities instead.
before
—after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"entry":{}},"required":["entry"],"type":"object"}before
—after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"categories":{"items":{},"type":"array"}},"required":["categories"],"type":"object"}⟨17 unchanged words⟩ string"},"limit":{"default":10,"description":"Maximum number of entries to return (1-50).","maximum":50,"minimum":1,"type":" ⟨18 unchanged words⟩
before
—after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"count":{"type":"number"},"results":{"items":{},"type":"array"}},"required":["count","results"],"type":"object"}List all registry entries (paginated) — List every approved entry in the Agent Nexus registry, page by page. Returns up to 50 entries per page, ordered by slug, with the total count so you can page through the whole catalogue. Use search_registry for keyword lookup instead.
before
—after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"entry":{}},"required":["entry"],"type":"object"}before
—after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"categories":{"items":{},"type":"array"}},"required":["categories"],"type":"object"}⟨17 unchanged words⟩ string"},"limit":{"default":10,"description":"Maximum number of entries to return (1-50).","maximum":50,"minimum":1,"type":" ⟨18 unchanged words⟩
before
—after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"count":{"type":"number"},"results":{"items":{},"type":"array"}},"required":["count","results"],"type":"object"}List all registry entries (paginated) — List every approved entry in the Agent Nexus registry, page by page. Returns up to 50 entries per page, ordered by slug, with the total count so you can page through the whole catalogue. Use search_registry for keyword lookup instead.