{"$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-05T20:25:47.979Z","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp","markdownUrl":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp.md","server":{"slug":"com-neoavis-constats","name":"Neoavis","registryName":"com.neoavis/constats","description":"Can an AI agent buy on this French store? 500 stores tested: score, guest checkout, UCP. Free.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"api-mcp","type":"remote","identifier":"https://neoavis.com/api/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp","version":"1.3.0","transport":null,"scoredAt":"2026-11-05T07:30:54.004Z"},"score":{"total":77,"tier":"medium","status":"scored","weekDelta":6,"history":[{"date":"2026-11-05","total":77},{"date":"2026-11-04","total":77},{"date":"2026-11-03","total":76},{"date":"2026-11-02","total":76},{"date":"2026-11-01","total":72},{"date":"2026-10-31","total":72},{"date":"2026-10-30","total":71},{"date":"2026-10-29","total":71},{"date":"2026-10-28","total":68},{"date":"2026-10-27","total":68},{"date":"2026-10-26","total":67},{"date":"2026-10-25","total":67},{"date":"2026-10-24","total":66}]},"categories":[{"name":"Endpoint Security","score":80,"verdict":"fail","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 check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_no_destructive","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.absent","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":63,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 1550 tokens (~310/item across 5 items; 5 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":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"310","items":"5","tools":"5","tokens":"1550","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":40,"verdict":"partial","reasons":["Stability observed for 12 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"12"}}]},{"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 5 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 6 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":"5"}},{"code":"toolsafety.manipulation_clean","args":{"units":"6","judged":"6"}}]},{"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":"api-mcp","type":"remote","identifier":"https://neoavis.com/api/mcp","withdrawn":false,"score":77,"current":true,"url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp","markdownUrl":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp.md"}],"facts":[{"label":"Endpoint","value":"https://neoavis.com/api/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.3.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"consulter_marchand","title":"Consulter un marchand","description":"Full test result for ONE French online store, by domain: what an AI shopping agent managed to do there at the latest test. Use it before visiting, recommending or buying from a French store, or when the user asks if a store works with AI agents. To find stores you do not know yet, use trouver_marchands; to look up a store by name, rechercher_marchand; to put several side by side, comparer_marchands. Returns: note (score out of 100: journey 55, proven purchase facts 30, machine readability 15), etapes (six steps in order — acces, cookies, recherche, fiche, panier, caisse — each reussi, partiel, echec or non_atteint, with a motif when it failed), faits (oui, non or inconnu: checkout without an account, delivered price before sign-up, shipping costs, return policy, third-party seller), machine (product data, robots.txt, llms.txt, sitemap, UCP), ucp_commande (store declares UCP checkout), dernier_test (date), test_ancien (true if older than 90 days), resume (one-sentence summary to quote) and page (link to cite). Unknown or untracked domain: error result, nothing charged.","inputs":[{"name":"domaine","type":"string","required":true,"description":"Store domain, for example respire.co. A full URL or a www. prefix is accepted and normalised."},{"name":"langue","type":"string","required":false,"description":"Language of the page links and, for consulter_marchand, of the summary sentence: fr (default) or en. Data fields are the same in both."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":340},{"name":"classement_secteur","title":"Classement d'un secteur","description":"Ranking of ALL tested French online stores in one sector, best score first. Use it when the user wants the best stores of a sector as a whole (for example the best beauty stores for an AI agent). To filter by proven facts such as guest checkout, use trouver_marchands; for the details of one store, consulter_marchand. Returns: secteur and marchands, a list of every ranked store (30 to 70 per sector) with rang, ex_aequo (equal scores share a rank, then alphabetical order), domaine, nom, note out of 100, nombre_avis, dernier_test, test_ancien and page. Sectors: beaute, mode, maison, sport, epicerie, enfant, animalerie, bijoux, bricolage, high-tech. Unknown sector: error result listing the valid ones.","inputs":[{"name":"langue","type":"string","required":false,"description":"Language of the page links and, for consulter_marchand, of the summary sentence: fr (default) or en. Data fields are the same in both."},{"name":"secteur","type":"string","required":true,"description":"Sector id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":230},{"name":"rechercher_marchand","title":"Rechercher un marchand","description":"Find a tracked French store by part of its NAME or DOMAIN, across all sectors (case and accents ignored). Use it when the user names a store but you do not know its exact domain; then call consulter_marchand with the domain found. To discover stores by criteria rather than by name, use trouver_marchands. Returns: requete and marchands, every match (usually a few) with rang in its sector, ex_aequo, secteur, domaine, nom, note out of 100, nombre_avis, dernier_test, test_ancien and page. No match: an empty list, which means the store is not tracked yet.","inputs":[{"name":"langue","type":"string","required":false,"description":"Language of the page links and, for consulter_marchand, of the summary sentence: fr (default) or en. Data fields are the same in both."},{"name":"requete","type":"string","required":true,"description":"At least two characters of the store name or domain, for example nocibe or sezane."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":208},{"name":"trouver_marchands","title":"Trouver des marchands par critères","description":"Discover French online stores where an AI agent can actually buy, filtered by PROVEN facts, in one sector or all of them. Use it when the user asks where to buy something online in France, which stores allow guest checkout, or which show the delivered price. To look up a store by name, use rechercher_marchand; for a whole sector ranking, classement_secteur. Every filter is optional; set a boolean to true to require that fact. Returns: secteur, criteres (filters applied), total (number of matching stores) and marchands, best score first, at most limite entries, each with rang, ex_aequo, secteur, domaine, nom, note out of 100, the five facts as booleans (sans_compte, prix_livre, frais_livraison, retours, ucp_commande), dernier_test and page. No match: total 0 and an empty list.","inputs":[{"name":"frais_livraison","type":"boolean","required":false,"description":"Shipping costs were found."},{"name":"langue","type":"string","required":false,"description":"Language of the page links and, for consulter_marchand, of the summary sentence: fr (default) or en. Data fields are the same in both."},{"name":"limite","type":"integer","required":false,"description":"Maximum number of stores returned (default 20, at most 50); total still counts every match."},{"name":"note_min","type":"number","required":false,"description":"Minimum score out of 100."},{"name":"prix_livre","type":"boolean","required":false,"description":"Total price including delivery was shown before any sign-up."},{"name":"retours","type":"boolean","required":false,"description":"Return policy was found and quoted."},{"name":"sans_compte","type":"boolean","required":false,"description":"Agent reached checkout without creating an account (proven by a screenshot or quote)."},{"name":"secteur","type":"string","required":false,"description":"Restrict to one sector; all sectors if omitted."},{"name":"ucp","type":"boolean","required":false,"description":"Store publishes a UCP profile that declares checkout, so an agent can order through the protocol."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":393},{"name":"comparer_marchands","title":"Comparer des marchands","description":"Side-by-side test results for two to five French online stores you already know, in the order given. Use it when the user hesitates between specific stores. To find candidates first, use trouver_marchands or rechercher_marchand. Returns: marchands, one full result per store, identical to consulter_marchand (score out of 100, six steps acces to caisse, proven facts, machine readability, UCP checkout, summary and page). Each store counts as one request against the rate limit. Fewer than two or more than five domains: error result.","inputs":[{"name":"domaines","type":"array","required":true,"description":"Two to five store domains, for example [\"respire.co\", \"typology.com\"]."},{"name":"langue","type":"string","required":false,"description":"Language of the page links and, for consulter_marchand, of the summary sentence: fr (default) or en. Data fields are the same in both."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":190}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T07:30:53.000Z","track":"remote","endpoint":"https://neoavis.com/api/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=*.neoavis.com","issuer":"CN=Amazon RSA 2048 S22,O=Amazon,C=US","notBefore":"2026-10-22T19:35:23Z","notAfter":"2027-05-08T20:35:23Z","keyType":"RSA","keyBits":2048,"isCa":false},{"subject":"CN=Amazon RSA 2048 S22,O=Amazon,C=US","issuer":"CN=Amazon Root CA 1,O=Amazon,C=US","notBefore":"2026-07-08T19:28:43Z","notAfter":"2029-07-07T19:28:43Z","keyType":"RSA","keyBits":2048,"isCa":true},{"subject":"CN=Amazon Root CA 1,O=Amazon,C=US","issuer":"CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\\, Inc.,L=Scottsdale,ST=Arizona,C=US","notBefore":"2015-05-25T12:00:00Z","notAfter":"2037-12-31T01:00:00Z","keyType":"RSA","keyBits":2048,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"neoavis.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"neoavis.com.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"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-24","recent":[{"id":"chg_01a1a573-6318-7cfb-9ca2-35650e06b7fd","kind":"score.total_changed","summary":"Trust score (76 → 77)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a1a573-6318-7cfb-9ca2-35650e06b7fd"},{"id":"chg_01a19c22-f895-7ae0-9dc4-da1ce8a5911f","kind":"check.measure","summary":"Schema quality (136 → 310)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f895-7ae0-9dc4-da1ce8a5911f"},{"id":"chg_01a19c22-f896-7a30-b3b5-f53af07dd460","kind":"check.measure","summary":"Tool coverage (69% → 100%)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f896-7a30-b3b5-f53af07dd460"},{"id":"chg_01a19c22-f897-741e-82ee-0540249f083a","kind":"check.measure","summary":"Schema quality (good → excellent)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f897-741e-82ee-0540249f083a"},{"id":"chg_01a19c22-f898-710c-a467-9e72f3afb3d5","kind":"tool.description_changed","summary":"Tool “classement_secteur” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f898-710c-a467-9e72f3afb3d5"},{"id":"chg_01a19c22-f898-7b51-83c4-54cdbbd31173","kind":"param.description_changed","summary":"“classement_secteur” reworded the description of “langue”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f898-7b51-83c4-54cdbbd31173"},{"id":"chg_01a19c22-f899-709c-a0d0-18baa3a4e5c3","kind":"param.description_changed","summary":"“classement_secteur” reworded the description of “secteur”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f899-709c-a0d0-18baa3a4e5c3"},{"id":"chg_01a19c22-f899-7a3a-8489-13e3c69799bf","kind":"tool.description_changed","summary":"Tool “comparer_marchands” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f899-7a3a-8489-13e3c69799bf"},{"id":"chg_01a19c22-f89a-73da-a581-2426db0bfeb8","kind":"param.description_changed","summary":"“comparer_marchands” reworded the description of “domaines”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f89a-73da-a581-2426db0bfeb8"},{"id":"chg_01a19c22-f89a-794d-98bc-cc796902bf84","kind":"param.description_changed","summary":"“comparer_marchands” reworded the description of “langue”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f89a-794d-98bc-cc796902bf84"},{"id":"chg_01a19c22-f89b-71e6-9e22-67160d91ca71","kind":"param.description_changed","summary":"“consulter_marchand” reworded the description of “domaine”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f89b-71e6-9e22-67160d91ca71"},{"id":"chg_01a19c22-f89b-765f-9259-b5e631463c92","kind":"param.description_changed","summary":"“consulter_marchand” reworded the description of “langue”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f89b-765f-9259-b5e631463c92"},{"id":"chg_01a19c22-f89b-7ae8-b85d-196961998aee","kind":"tool.description_changed","summary":"Tool “rechercher_marchand” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f89b-7ae8-b85d-196961998aee"},{"id":"chg_01a19c22-f89c-70a1-a51b-0700cb0e63ec","kind":"param.description_changed","summary":"“rechercher_marchand” reworded the description of “langue”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f89c-70a1-a51b-0700cb0e63ec"},{"id":"chg_01a19c22-f89c-7538-823d-b5d12d7da2e8","kind":"param.description_changed","summary":"“rechercher_marchand” reworded the description of “requete”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f89c-7538-823d-b5d12d7da2e8"},{"id":"chg_01a19c22-f89c-7cd6-aac3-f72a261a3b9f","kind":"param.description_changed","summary":"“trouver_marchands” reworded the description of “frais_livraison”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f89c-7cd6-aac3-f72a261a3b9f"},{"id":"chg_01a19c22-f89d-71bd-a58e-ede2f1f1ad2b","kind":"param.description_changed","summary":"“trouver_marchands” reworded the description of “langue”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f89d-71bd-a58e-ede2f1f1ad2b"},{"id":"chg_01a19c22-f89d-75c6-8d25-e8d2259449cb","kind":"param.description_changed","summary":"“trouver_marchands” reworded the description of “note_min”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f89d-75c6-8d25-e8d2259449cb"},{"id":"chg_01a19c22-f89d-7a4b-bce6-2e6550805fc9","kind":"param.description_changed","summary":"“trouver_marchands” reworded the description of “prix_livre”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f89d-7a4b-bce6-2e6550805fc9"},{"id":"chg_01a19c22-f89d-7f18-8c21-8e85b784c736","kind":"param.description_changed","summary":"“trouver_marchands” reworded the description of “retours”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp#chg-chg_01a19c22-f89d-7f18-8c21-8e85b784c736"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp","markdown":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp.md","changelogJson":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/com-neoavis-constats/api-mcp.xml","external":[{"label":"Remote endpoint","href":"https://neoavis.com/api/mcp"},{"label":"Website","href":"https://neoavis.com/en/agents"}]}}