Read-only search of the EscortFox directory of independent escorts, agencies and venues: countries, cities, districts, services and listing summaries, each with its escortfox.com link. Ask in plain text ("escorts in Berlin", "venues in Prague", "agencies in Germany") or call a skill with a data part {"skill": "search_listings", "arguments": {...}}. Contact details and photos are only on escortfox.com. Also available as an MCP server at https://escortfox.com/mcp.
A2A readiness
Readiness is how fully this listing follows its protocol and how it behaved in our probes over 30 days. It is shown for reference and does not move it in search. Search order and leaderboards use the separate quality grade (here B, 87.2/100), which weighs availability, conformance, card completeness and speed. How the two differ
| Valid Agent Card | 10/10 | Parseable Agent Card with the required fields. |
| Live JSON-RPC | 25/25 | Endpoint answers A2A JSON-RPC (605 ms). |
| Protocol version | 10/10 | Declares A2A 1.0 with supportedInterfaces[] (v1 card shape). |
| JWS signature | 0/10 | Card is unsigned. |
| Uptime (30 days) | 15/15 | 3/3 probes succeeded; final after 5 probes in 30 days. |
| Skill declaration | 10/10 | Declares 7 skill(s) with structured metadata. |
| Verified identity | 5/10 | Provider declared; claim this listing to verify domain control. |
| Freshness + modern flags | 4/5 | seen in a source within 7 days. |
| Security declaration | 2/5 | Explicitly declares no authentication (public). |
Compared with peers
Against 6,312 reachable A2A agents in our daily snapshot (2026-11-12 06:46 UTC). Display only; it does not change search order.
- Readiness
- Higher than 95% of peers
- This listing 81 · peer median 54
- Latency
- Faster than 23% of peers
- This listing 659 ms · peer median 398 ms
Where it loses the most points, and how to win them back
- JWS signature −10
— Sign the Agent Card (JWS).
Now: Card is unsigned.
- Verified identity −5
— Claim the listing and prove control of its domain.
Now: Provider declared; claim this listing to verify domain control.
- Security declaration −3
— State how to authenticate (an auth scheme, or that none is needed).
Now: Explicitly declares no authentication (public).
Adoption signals
Public signals from outside this directory, shown for context. They do not change search order or grades.
- Site rank (Tranco)
- #629,800 of the top 1M
- escortfox.com · list of 2026-11-11
Skills
-
Ask in plain textAnswer a short plain-text request about the directory: listings of a type in a city ("escorts in London", "venues in Prague"), agencies in a country, the cities of a country, the countries covered or the service vocabulary. Replies list up to 20 summaries with their links.directoryescortssearch
-
Search listingsSearch the EscortFox directory of independent escorts, agencies and venues in one place. Returns up to 20 listing summaries per page: name, location, age, starting rate, verification status, incall/outcall, venue type, a short teaser and the listing's escortfox.com link. Summaries have no contact details or photos: always give the user each listing's link, where both are shown. "escort" and "venue" searches need country + city (find them with list_countries and list_cities); "agency" searches need country only. Only pages 0-4 (100 results) exist — narrow the search with district, service or verified instead of paging further. Call it with a data part {"skill": "search_listings", "arguments": {...}}; the arguments follow this JSON Schema: {"type":"object","properties":{"type":{"type":"string","description":"What to look for: \"escort\" (individual escorts in a city), \"venue\" (clubs, studios and other places in a city) or \"agency\" (agencies serving a country).","enum":["escort","venue","agency"]},"country":{"type":"string","description":"Where to search: the country's `code` from list_countries (e.g. \"DE\"), or, in a country the site splits by state, the city's `region` from list_cities (e.g. \"US-CA\" for California). Agency searches cover this whole country or region.","pattern":"^[A-Za-z]{2}(-[A-Za-z0-9]{1,3})?$","maxLength":6},"city":{"type":"string","description":"The city to search in, as its `slug` from list_cities (e.g. \"berlin\"). Escort and venue searches are per city; agency searches are country-wide and take no city.","pattern":"^[a-z0-9]+(-[a-z0-9]+)*$","maxLength":80},"district":{"type":"string","description":"Narrows an escort or venue search to one part of the city: the district's `slug` from list_districts (e.g. \"mitte\"). Leave it out to search the whole city.","pattern":"^[a-z0-9]+(-[a-z0-9]+)*$","maxLength":80},"service":{"type":"string","description":"Narrows an escort search to escorts who offer one service: its `slug` from list_services (e.g. \"massage\").","pattern":"^[a-z0-9]+(-[a-z0-9]+)*$","maxLength":80},"verified":{"type":"boolean","description":"true = only escorts whose photos and phone number EscortFox has verified. Use it when the user asks for verified or genuine profiles."},"lang":{"type":"string","description":"The language the user reads: advertiser teasers come back in it where the advertiser wrote one, and the escortfox.com links open the site in it (e.g. \"de\" for German). English when left out.","enum":["en","de","sk","cs","tr","ru","uk","es","pt","ro","hu","ar","ja","fr","it","nl","sv","no","pl","el","ko"]},"cursor":{"type":"string","description":"Asks for the next 20 results of the same search: the `nextCursor` of the previous search_listings result, unchanged. Leave it out for the first page.","pattern":"^[A-Za-z0-9_-]+$","maxLength":64}},"required":["type","country"],"additionalProperties":false}directoryescortssearch
-
Get a listingGet the summary of one EscortFox listing by its numeric id. Returns the same fields as one search_listings result — name, location, age, starting rate, verification status, incall/outcall, venue type, teaser — and the listing's escortfox.com link; contact details and photos are only on that page. Use it to refresh a listing the user already has, or to read a link they pasted. Call it with a data part {"skill": "get_listing", "arguments": {...}}; the arguments follow this JSON Schema: {"type":"object","properties":{"id":{"type":"integer","description":"Which listing: the `id` of a search_listings result, or the number at the end of an escortfox.com listing link (…/anna-12345 → 12345).","minimum":1},"lang":{"type":"string","description":"The language the user reads: advertiser teasers come back in it where the advertiser wrote one, and the escortfox.com links open the site in it (e.g. \"de\" for German). English when left out.","enum":["en","de","sk","cs","tr","ru","uk","es","pt","ro","hu","ar","ja","fr","it","nl","sv","no","pl","el","ko"]}},"required":["id"],"additionalProperties":false}directoryescortssearch
-
List countriesList the countries that have active EscortFox listings. Returns each country's code (e.g. "DE"), its English name and how many escort and venue listings it has, so you can tell whether the directory covers a place before searching. Use a code as `country` in list_cities and search_listings. Call it with a data part {"skill": "list_countries", "arguments": {...}}; the arguments follow this JSON Schema: {"type":"object","properties":{},"additionalProperties":false}directoryescortsreference data
-
List citiesList the cities of a country that have active listings, busiest first. Returns each city's slug, name, state or province, escort and venue counts and its escortfox.com link. Use the city slug as `city` in search_listings, and the city's region as `country` where it differs from the country code (US states, e.g. "US-CA"). Call it with a data part {"skill": "list_cities", "arguments": {...}}; the arguments follow this JSON Schema: {"type":"object","properties":{"country":{"type":"string","description":"The country whose cities to list: its `code` from list_countries (e.g. \"DE\"), or a region code such as \"US-CA\" for one state only.","pattern":"^[A-Za-z]{2}(-[A-Za-z0-9]{1,3})?$","maxLength":6}},"required":["country"],"additionalProperties":false}directoryescortsreference data
-
List districtsList the districts of one city that have active listings. Returns each district's slug, name and escort and venue counts. Most cities have none: an empty list means search the whole city. Use a district slug as `district` in search_listings. Call it with a data part {"skill": "list_districts", "arguments": {...}}; the arguments follow this JSON Schema: {"type":"object","properties":{"country":{"type":"string","description":"The city's `region` from list_cities: its country code, or its state code in a country the site splits by state (e.g. \"US-CA\").","pattern":"^[A-Za-z]{2}(-[A-Za-z0-9]{1,3})?$","maxLength":6},"city":{"type":"string","description":"The city whose districts to list: its `slug` from list_cities (e.g. \"berlin\").","pattern":"^[a-z0-9]+(-[a-z0-9]+)*$","maxLength":80}},"required":["country","city"],"additionalProperties":false}directoryescortsreference data
-
List servicesList the services escorts can offer on EscortFox. Returns each service's slug and English name (e.g. "massage" = Massage). Use a slug as `service` in search_listings to find escorts who offer it; services apply to escort searches only. Call it with a data part {"skill": "list_services", "arguments": {...}}; the arguments follow this JSON Schema: {"type":"object","properties":{},"additionalProperties":false}directoryescortsreference data
How to call
https://escortfox.com/a2a
Listed in
Directories this entry was found in.