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 "search_services"
⟨131 unchanged words⟩ "minimum":1,"type":"number"},"no_human":{"description":"Only services an agent can start using with no human setting up a key: probe-backed — its own (non-documentation) MCP server lists its tools to an unauthenticated client and the service needs no key (no auth, or a wallet), or one of its interfaces answers HTTP 402 to be paid per request","type":"boolean"},"page":{"description":"Page number (default ⟨161 unchanged words⟩
Changed the definition of "search_services"
⟨131 unchanged words⟩ "minimum":1,"type":"number"},"no_human":{"description":"Only services an agent can start using with no human setting up a key: probe-backed — its own (non-documentation) MCP server lists its tools to an unauthenticated client and the service needs no key (no auth, or a wallet), or one of its interfaces answers HTTP 402 to be paid per request","type":"boolean"},"page":{"description":"Page number (default ⟨161 unchanged words⟩
Changed the definition of "get_protocol_stats" and "submit_service"
Get every protocol on botfriendly.xyz/protocols with adoption stats:forhoweveryagentsprotocolcallBotFriendlyatracks:servicetheandmachine-readableproveinterfaceswho sent them
Changed the definition of "get_protocol_stats" and "submit_service"
Get every protocol on botfriendly.xyz/protocols with adoption stats:forhoweveryagentsprotocolcallBotFriendlyatracks:servicetheandmachine-readableproveinterfaceswho sent them
Changed the definition of "submit_service"
⟨27 unchanged words⟩ call, and the listing publishes immediately if its MCP server or OpenAPI spec completes a handshake — oneanswers.of has_mcp_server or has_openapi_spec is required; llms.txt, skill files and feeds only add badges. The url must be the product, not an article (/blog/, /news/ and similar are rejected), and a domain can add at most 2 listings a day and 3 in total. Every listing needs an icon — pass icon_url ⟨13 unchanged words⟩
Changed the definition of "submit_service"
⟨27 unchanged words⟩ call, and the listing publishes immediately if its MCP server or OpenAPI spec completes a handshake — oneanswers.of has_mcp_server or has_openapi_spec is required; llms.txt, skill files and feeds only add badges. The url must be the product, not an article (/blog/, /news/ and similar are rejected), and a domain can add at most 2 listings a day and 3 in total. Every listing needs an icon — pass icon_url ⟨13 unchanged words⟩
Certificate recorded, valid to 2026-12-23
Authorization not required
First tool surface recorded: 7 tools (server version 0.1.0)
https://mcp.botfriendly.xyz (mcp_streamable_http) — from mcp_registry
Changed the definition of "list_categories", "search_services" and "submit_service"
Listallevery BotFriendlycategoriescategory withdescriptionsits id (the search_services category value), human label, aliases (older slugs still accepted), description and servicecounts.count.
⟨33 unchanged words⟩ Certificate recorded, valid to 2026-12-03
Authorization not required
First tool surface recorded: 7 tools (server version 0.1.0)
Showing the latest 14 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨14 unchanged words⟩ URL must be on the service's own domain, or linked from the service's own site, and is fetched during thecall, andcall; the listing publishes immediately if its MCP serveror, OpenAPI spec or API completes a handshake — one of has_mcp_server, has_openapi_spec orhas_openapi_spechas_api is required; llms.txt, skill files and feeds ⟨54 unchanged words⟩
⟨4 unchanged words⟩ ,"accepts_x402":{"type":"boolean"},"api_url":{"description":"Required when has_api is true: the API's base URL (api.example.com, or a path under /api or /v1). It must answer in JSON. On the service's own domain, or linked from its site.","type":"string"},"auth_method":{"description":"Auth method","type ⟨50 unchanged words⟩ 120 chars)","type":"string"},"has_api":{"type":"boolean"},"has_mcp_server":{"type":"boolean"},"has_openapi_spec" ⟨53 unchanged words⟩ ":{"description":"Required when has_mcp_server istrue, and must betrue.onOn the service's owndomain.domain, or linked from its site.","type":"string"},"name":{ ⟨6 unchanged words⟩ ":{"description":"Required when has_openapi_spec istrue, and must betrue.onOn the service's owndomain.domain, or linked from its site.","type":"string"},"tags":{ ⟨18 unchanged words⟩
⟨14 unchanged words⟩ URL must be on the service's own domain, or linked from the service's own site, and is fetched during thecall, andcall; the listing publishes immediately if its MCP serveror, OpenAPI spec or API completes a handshake — one of has_mcp_server, has_openapi_spec orhas_openapi_spechas_api is required; llms.txt, skill files and feeds ⟨54 unchanged words⟩
⟨4 unchanged words⟩ ,"accepts_x402":{"type":"boolean"},"api_url":{"description":"Required when has_api is true: the API's base URL (api.example.com, or a path under /api or /v1). It must answer in JSON. On the service's own domain, or linked from its site.","type":"string"},"auth_method":{"description":"Auth method","type ⟨50 unchanged words⟩ 120 chars)","type":"string"},"has_api":{"type":"boolean"},"has_mcp_server":{"type":"boolean"},"has_openapi_spec" ⟨53 unchanged words⟩ ":{"description":"Required when has_mcp_server istrue, and must betrue.onOn the service's owndomain.domain, or linked from its site.","type":"string"},"name":{ ⟨6 unchanged words⟩ ":{"description":"Required when has_openapi_spec istrue, and must betrue.onOn the service's owndomain.domain, or linked from its site.","type":"string"},"tags":{ ⟨18 unchanged words⟩
⟨15 unchanged words⟩ string"},"category":{"description":"Categoryslugid (see list_categories)","enum":["think","see","hear-speak","create","remember","search","browse","communicate","execute","pay","shop","markets","platforms","identify","monitor","other","locate","book","hire","sign","trade","bet","connect","automate"],"type":"string"},"contact_email":{" ⟨131 unchanged words⟩