Card snapshot
escortfox.com
·
2026-10-31 09:09:39 UTC
·
9c65b5401a2c5b7acd74295e533dc7421d688a379ee77d4f3df52dcdaf86d87f
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"name": "EscortFox",
"description": "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.",
"version": "1.0.0",
"supportedInterfaces": [
{
"url": "https://escortfox.com/a2a",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
},
{
"url": "https://escortfox.com/a2a",
"protocolBinding": "JSONRPC",
"protocolVersion": "0.3"
}
],
"protocolVersion": "0.3.0",
"url": "https://escortfox.com/a2a",
"preferredTransport": "JSONRPC",
"provider": {
"organization": "EscortFox",
"url": "https://escortfox.com"
},
"iconUrl": "https://escortfox.com/static/icons/icon-192x192.png",
"documentationUrl": "https://escortfox.com/developers",
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false
},
"securitySchemes": {},
"security": [],
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "ask",
"name": "Ask in plain text",
"description": "Answer 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.",
"tags": [
"directory",
"escorts",
"search"
],
"examples": [
"Escorts in London",
"Verified escorts in Zurich",
"Venues in Prague",
"Agencies in Germany",
"Cities in Spain"
],
"inputModes": [
"text/plain"
],
"outputModes": [
"text/plain",
"application/json"
]
},
{
"id": "search_listings",
"name": "Search listings",
"description": "Search 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 \u2014 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 search: \\\"escort\\\", \\\"venue\\\" or \\\"agency\\\".\",\"enum\":[\"escort\",\"venue\",\"agency\"]},\"country\":{\"type\":\"string\",\"description\":\"Required. ISO 3166-1 alpha-2 country code (e.g. \\\"DE\\\"), or a city's region code where the site splits a country by state (e.g. \\\"US-CA\\\"). Get valid values from list_countries / list_cities.\",\"pattern\":\"^[A-Za-z]{2}(-[A-Za-z0-9]{1,3})?$\",\"maxLength\":6},\"city\":{\"type\":\"string\",\"description\":\"City slug from list_cities (e.g. \\\"berlin\\\"). Required for escort and venue searches; not allowed for agency searches.\",\"pattern\":\"^[a-z0-9]+(-[a-z0-9]+)*$\",\"maxLength\":80},\"district\":{\"type\":\"string\",\"description\":\"Optional district slug from list_districts (escort and venue searches).\",\"pattern\":\"^[a-z0-9]+(-[a-z0-9]+)*$\",\"maxLength\":80},\"service\":{\"type\":\"string\",\"description\":\"Optional service slug from list_services (escort searches only).\",\"pattern\":\"^[a-z0-9]+(-[a-z0-9]+)*$\",\"maxLength\":80},\"verified\":{\"type\":\"boolean\",\"description\":\"true = only escorts whose photos and phone are verified (escort searches only).\"},\"lang\":{\"type\":\"string\",\"description\":\"Language of the teaser text and of the escortfox.com links. Default \\\"en\\\".\",\"enum\":[\"en\",\"de\",\"sk\",\"cs\",\"tr\",\"ru\",\"uk\",\"es\",\"pt\",\"ro\",\"hu\",\"ar\",\"ja\",\"fr\",\"it\",\"nl\",\"sv\",\"no\",\"pl\",\"el\",\"ko\"]},\"page\":{\"type\":\"integer\",\"description\":\"Zero-based results page, 0-4 (20 results each). Default 0.\",\"minimum\":0,\"maximum\":4}},\"required\":[\"type\",\"country\"],\"additionalProperties\":false}",
"tags": [
"directory",
"escorts",
"search"
],
"examples": [
"Escorts in Berlin",
"{\"skill\":\"search_listings\",\"arguments\":{\"type\":\"escort\",\"country\":\"DE\",\"city\":\"berlin\"}}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
]
},
{
"id": "get_listing",
"name": "Get a listing",
"description": "Get the summary of one EscortFox listing by its numeric id \u2014 the number at the end of a listing link (\u2026/anna-12345 \u2192 12345). Returns the same fields as search_listings and the listing's escortfox.com link; contact details and photos are only on that page. Call it with a data part {\"skill\": \"get_listing\", \"arguments\": {...}}; the arguments follow this JSON Schema: {\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"description\":\"The listing id.\",\"minimum\":1},\"lang\":{\"type\":\"string\",\"description\":\"Language of the teaser text and of the escortfox.com links. Default \\\"en\\\".\",\"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}",
"tags": [
"directory",
"escorts",
"search"
],
"examples": [
"{\"skill\":\"get_listing\",\"arguments\":{\"id\":13655}}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
]
},
{
"id": "list_countries",
"name": "List countries",
"description": "List the countries that have active EscortFox listings, with the number of escort and venue listings in each. Use a country 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}",
"tags": [
"directory",
"escorts",
"reference data"
],
"examples": [
"Which countries do you cover?",
"{\"skill\":\"list_countries\",\"arguments\":{}}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
]
},
{
"id": "list_cities",
"name": "List cities",
"description": "List the cities of a country that have active listings, busiest first, with escort and venue counts and each city's 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\":\"Required. ISO 3166-1 alpha-2 country code (e.g. \\\"DE\\\"), or a city's region code where the site splits a country by state (e.g. \\\"US-CA\\\"). Get valid values from list_countries / list_cities.\",\"pattern\":\"^[A-Za-z]{2}(-[A-Za-z0-9]{1,3})?$\",\"maxLength\":6}},\"required\":[\"country\"],\"additionalProperties\":false}",
"tags": [
"directory",
"escorts",
"reference data"
],
"examples": [
"Cities in Germany",
"{\"skill\":\"list_cities\",\"arguments\":{\"country\":\"DE\"}}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
]
},
{
"id": "list_districts",
"name": "List districts",
"description": "List the districts of a city that have active listings (most cities have none). 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\":\"Required. The city's region from list_cities, or its ISO 3166-1 alpha-2 country code (e.g. \\\"DE\\\"), or a city's region code where the site splits a country by state (e.g. \\\"US-CA\\\"). Get valid values from list_countries / list_cities.\",\"pattern\":\"^[A-Za-z]{2}(-[A-Za-z0-9]{1,3})?$\",\"maxLength\":6},\"city\":{\"type\":\"string\",\"description\":\"Required. City slug from list_cities.\",\"pattern\":\"^[a-z0-9]+(-[a-z0-9]+)*$\",\"maxLength\":80}},\"required\":[\"country\",\"city\"],\"additionalProperties\":false}",
"tags": [
"directory",
"escorts",
"reference data"
],
"examples": [
"{\"skill\":\"list_districts\",\"arguments\":{\"country\":\"GB\",\"city\":\"london\"}}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
]
},
{
"id": "list_services",
"name": "List services",
"description": "List the service vocabulary of escort listings (slug and English name). Use a slug as `service` in search_listings (escort searches only). Call it with a data part {\"skill\": \"list_services\", \"arguments\": {...}}; the arguments follow this JSON Schema: {\"type\":\"object\",\"properties\":{},\"additionalProperties\":false}",
"tags": [
"directory",
"escorts",
"reference data"
],
"examples": [
"Which services can I filter by?",
"{\"skill\":\"list_services\",\"arguments\":{}}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
]
}
]
}