{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-06T17:20:16.988Z","url":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox","markdownUrl":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox.md","server":{"slug":"com-escortfox-escortfox","name":"EscortFox","registryName":"com.escortfox/escortfox","description":"Read-only search of the EscortFox escort directory: cities, services and listing summaries.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"escortfox","type":"remote","identifier":"https://escortfox.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox","version":"1.0.0","transport":null,"scoredAt":"2026-11-06T10:37:17.248Z"},"score":{"total":77,"tier":"medium","status":"scored","weekDelta":3,"history":[{"date":"2026-11-06","total":77},{"date":"2026-11-05","total":76},{"date":"2026-11-04","total":76},{"date":"2026-11-03","total":75},{"date":"2026-11-02","total":75},{"date":"2026-11-01","total":75},{"date":"2026-10-31","total":74},{"date":"2026-10-30","total":74}]},"categories":[{"name":"Endpoint Security","score":83,"verdict":"partial","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.","HTTPS is enforced; there's no plaintext access path.","The HSTS (Strict-Transport-Security) header is present.","DNSSEC is configured correctly; the domain's records validate against the full chain to the root."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_no_destructive","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.validated","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":69,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 981 tokens (~163/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"163","items":"6","tools":"6","tokens":"981","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":23,"verdict":"partial","reasons":["Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"7"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"6"}},{"code":"toolsafety.manipulation_clean","args":{"units":"7","judged":"7"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"escortfox","type":"remote","identifier":"https://escortfox.com/mcp","withdrawn":false,"score":77,"current":true,"url":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox","markdownUrl":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox.md"}],"facts":[{"label":"Endpoint","value":"https://escortfox.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"search_listings","title":"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 — narrow the search with district, service or verified instead of paging further.","inputs":[{"name":"city","type":"string","required":false,"description":"City slug from list_cities (e.g. \"berlin\"). Required for escort and venue searches; not allowed for agency searches."},{"name":"country","type":"string","required":true,"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."},{"name":"cursor","type":"string","required":false,"description":"For the next 20 results: the `nextCursor` of the previous search_listings result, unchanged. Omit for the first page."},{"name":"district","type":"string","required":false,"description":"Optional district slug from list_districts (escort and venue searches)."},{"name":"lang","type":"string","required":false,"description":"Language of the teaser text and of the escortfox.com links. Default \"en\"."},{"name":"service","type":"string","required":false,"description":"Optional service slug from list_services (escort searches only)."},{"name":"type","type":"string","required":true,"description":"What to search: \"escort\", \"venue\" or \"agency\"."},{"name":"verified","type":"boolean","required":false,"description":"true = only escorts whose photos and phone are verified (escort searches only)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":377},{"name":"get_listing","title":"Get a listing","description":"Get the summary of one EscortFox listing by its numeric id — the number at the end of a listing link (…/anna-12345 → 12345). Returns the same fields as search_listings and the listing's escortfox.com link; contact details and photos are only on that page.","inputs":[{"name":"id","type":"integer","required":true,"description":"The listing id."},{"name":"lang","type":"string","required":false,"description":"Language of the teaser text and of the escortfox.com links. Default \"en\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":102},{"name":"list_countries","title":"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.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":47},{"name":"list_cities","title":"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\").","inputs":[{"name":"country","type":"string","required":true,"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."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":136},{"name":"list_districts","title":"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.","inputs":[{"name":"city","type":"string","required":true,"description":"Required. City slug from list_cities."},{"name":"country","type":"string","required":true,"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 fro…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":124},{"name":"list_services","title":"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).","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":37}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T10:37:17.000Z","track":"remote","endpoint":"https://escortfox.com/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=escortfox.com","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-11-02T19:35:14Z","notAfter":"2027-01-31T20:33:45Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"secure","label":"Secure","name":"escortfox.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"escortfox.com.","outcome":"verified","label":"Verified"},{"zone":"escortfox.com.","outcome":"verified","label":"Verified"}]},"auth":{"outcome":"none","label":"No authorisation required","gate":null,"gateLabel":null,"status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"https_enforced","label":"HTTPS enforced","status":301},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-30","recent":[{"id":"chg_01a1b06f-284d-7cfb-aa8b-e109410bcba6","kind":"score.rubric_changed","summary":"We updated how we score, so this day's move reflects our rubric, not a change to the server","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox#chg-chg_01a1b06f-284d-7cfb-aa8b-e109410bcba6"},{"id":"chg_01a1a622-c062-72a0-ad89-69046e2bb0d7","kind":"score.total_changed","summary":"Trust score (75 → 76)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox#chg-chg_01a1a622-c062-72a0-ad89-69046e2bb0d7"},{"id":"chg_01a196b1-eda9-70af-892b-278b1c093df8","kind":"score.total_changed","summary":"Trust score (74 → 75)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox#chg-chg_01a196b1-eda9-70af-892b-278b1c093df8"},{"id":"chg_01a1918b-2222-75dc-ab8a-5afc94c502b3","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox#chg-chg_01a1918b-2222-75dc-ab8a-5afc94c502b3"},{"id":"chg_01a18f0a-dbc0-75b2-8303-34954ee91369","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox#chg-chg_01a18f0a-dbc0-75b2-8303-34954ee91369"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox","markdown":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox.md","changelogJson":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox/changelog.json","changelogRss":"https://verifymcp.io/servers/com-escortfox-escortfox/escortfox.xml","external":[{"label":"Remote endpoint","href":"https://escortfox.com/mcp"},{"label":"Website","href":"https://escortfox.com/"}]}}