TrustyData
REMOTE · MCP.TRUSTYDATA.APP · SCANNED SEP 20
French address quality, geocoding, routing, company lookup & catchment stats (BAN, INSEE, OSM).
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security77
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability74
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 6339 tokens (~487/item across 13 items; 11 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the TrustyData MCP server?
TrustyData is a hosted endpoint at https://mcp.trustydata.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.trustydata.app
claude mcp add --transport http app-trustydata-trustydata 'https://mcp.trustydata.app/mcp'
{
"mcpServers": {
"app-trustydata-trustydata": {
"url": "https://mcp.trustydata.app/mcp"
}
}
} {
"servers": {
"app-trustydata-trustydata": {
"type": "http",
"url": "https://mcp.trustydata.app/mcp"
}
}
} [mcp_servers.app-trustydata-trustydata] url = "https://mcp.trustydata.app/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"app-trustydata-trustydata": {
"type": "remote",
"url": "https://mcp.trustydata.app/mcp",
"enabled": true
}
}
} openclaw mcp add app-trustydata-trustydata --url 'https://mcp.trustydata.app/mcp' --transport streamable-http
mcp_servers:
app-trustydata-trustydata:
url: "https://mcp.trustydata.app/mcp" {
"McpServers": {
"app-trustydata-trustydata": {
"Transport": "http",
"Url": "https://mcp.trustydata.app/mcp"
}
}
} assistant mcp add app-trustydata-trustydata -t streamable-http -u 'https://mcp.trustydata.app/mcp'
{
"mcpServers": {
"app-trustydata-trustydata": {
"type": "http",
"url": "https://mcp.trustydata.app/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 19 Sept 26 0
- Tool “zone_compare” rewrote its description, which is the text the model reads security
- Tool “zone_stats” rewrote its description, which is the text the model reads security
- Server version: 4.0.3 → 4.0.5 functional
- 15 Sept 26 +10
- Authorization: unverified → partial ▲ security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “compute_route” rewrote its description, which is the text the model reads security
- Tool “get_company_details” rewrote its description, which is the text the model reads security
- Tool “search_company” rewrote its description, which is the text the model reads security
- Tool “verify_address” rewrote its description, which is the text the model reads security
- Tool “zone_compare” rewrote its description, which is the text the model reads security
- Tool “zone_stats” rewrote its description, which is the text the model reads security
- Schema quality: 419 → 476 ▼ functional
- Schema quality: 419 → 470 ▼ functional
- Tool coverage: 4% → 100% ▲ functional
- Tool “compute_route” now declares an output schema ▲ functional
- Tool “get_address_details” now declares an output schema ▲ functional
- Tool “get_company_details” now declares an output schema ▲ functional
- Tool “route_matrix” now declares an output schema ▲ functional
- Tool “search_address” now declares an output schema ▲ functional
- Tool “search_company” now declares an output schema ▲ functional
- Tool “search_locality” now declares an output schema ▲ functional
- Tool “search_nearby” now declares an output schema ▲ functional
- Tool “verify_address” now declares an output schema ▲ functional
- Tool “zone_compare” now declares an output schema ▲ functional
- Tool “zone_stats” now declares an output schema ▲ functional
- First check of Tool coverage: 100 functional
- Schema quality: good → excellent functional
- New prompt “comparer_emplacements” functional
- New prompt “potentiel_commerce” functional
- New prompt “qualifier_entreprise” functional
- New prompt “verifier_adresses” functional
- New prompt “zone_de_chalandise” functional
- New resource “Plan et quota du compte” functional
- “compute_route” reworded the description of “destination” cosmetic
- “compute_route” reworded the description of “mode” cosmetic
- “compute_route” reworded the description of “origin” cosmetic
- “get_address_details” reworded the description of “address_id” cosmetic
- “get_company_details” reworded the description of “company_id” cosmetic
- “route_matrix” reworded the description of “destinations” cosmetic
- “route_matrix” reworded the description of “mode” cosmetic
- “route_matrix” reworded the description of “origins” cosmetic
- “search_address” reworded the description of “details” cosmetic
- “search_address” reworded the description of “limit” cosmetic
- “search_address” reworded the description of “query” cosmetic
- “search_company” reworded the description of “address” cosmetic
- “search_company” reworded the description of “city” cosmetic
- “search_company” reworded the description of “group_by_company” cosmetic
- “search_company” reworded the description of “lat” cosmetic
- “search_company” reworded the description of “lon” cosmetic
- “search_company” reworded the description of “naf_code” cosmetic
- “search_company” reworded the description of “page” cosmetic
- “search_company” reworded the description of “per_page” cosmetic
- “search_company” reworded the description of “postal_code” cosmetic
- “search_company” reworded the description of “query” cosmetic
- “search_company” reworded the description of “radius_m” cosmetic
- “search_company” reworded the description of “siren” cosmetic
- “search_company” reworded the description of “status” cosmetic
- “search_locality” reworded the description of “department_code” cosmetic
- “search_locality” reworded the description of “department_name” cosmetic
- “search_locality” reworded the description of “details” cosmetic
- “search_locality” reworded the description of “limit” cosmetic
- “search_locality” reworded the description of “population_max” cosmetic
- “search_locality” reworded the description of “population_min” cosmetic
- “search_locality” reworded the description of “postal_code” cosmetic
- “search_locality” reworded the description of “query” cosmetic
- “search_locality” reworded the description of “region_code” cosmetic
- “search_locality” reworded the description of “region_name” cosmetic
- “search_nearby” reworded the description of “address” cosmetic
- “search_nearby” reworded the description of “lat” cosmetic
- “search_nearby” reworded the description of “limit” cosmetic
- “search_nearby” reworded the description of “lon” cosmetic
- “search_nearby” reworded the description of “offset” cosmetic
- “search_nearby” reworded the description of “radius_m” cosmetic
- “verify_address” reworded the description of “address” cosmetic
- “verify_address” reworded the description of “details” cosmetic
- “verify_address” reworded the description of “max_results” cosmetic
- “zone_compare” reworded the description of “coefficient” cosmetic
- “zone_compare” reworded the description of “rank_by” cosmetic
- “zone_compare” reworded the description of “reference” cosmetic
- “zone_compare” reworded the description of “zones” cosmetic
- “zone_stats” reworded the description of “address” cosmetic
- “zone_stats” reworded the description of “coefficient” cosmetic
- “zone_stats” reworded the description of “lat” cosmetic
- “zone_stats” reworded the description of “lon” cosmetic
- “zone_stats” reworded the description of “minutes” cosmetic
- “zone_stats” reworded the description of “mode” cosmetic
- “zone_stats” reworded the description of “radius_km” cosmetic
- “zone_stats” reworded the description of “reference” cosmetic
- “zone_stats” reworded the description of “traffic” cosmetic
- Tool “compute_route” changed its title: Compute Route → Itinéraire routier complet cosmetic
- Tool “get_address_details” changed its title: Get Address Details → Détail d'une adresse cosmetic
- Tool “get_company_details” changed its title: Get Company Details → Fiche d'un établissement ou d'une entreprise cosmetic
- Tool “route_matrix” changed its title: Route Matrix → Matrice de temps et de distances cosmetic
- Tool “search_address” changed its title: Search Address → Rechercher des adresses cosmetic
- Tool “search_company” changed its title: Search Company → Rechercher des entreprises et établissements cosmetic
- Tool “search_locality” changed its title: Search Locality → Rechercher des communes cosmetic
- Tool “search_nearby” changed its title: Search Nearby → Adresses à proximité d'un point cosmetic
- Tool “verify_address” changed its title: Verify Address → Vérifier et normaliser une adresse cosmetic
- Tool “zone_compare” changed its title: Zone Compare → Comparer des zones de chalandise cosmetic
- Tool “zone_stats” changed its title: Zone Stats → Statistiques d'une zone de chalandise cosmetic
- 13 Sept 26 0
- Tool “zone_stats” rewrote its description, which is the text the model reads security
- Schema quality: 319 → 419 ▼ functional
- New tool “zone_compare” functional
- “zone_stats” added an optional parameter “coefficient” cosmetic
- “zone_stats” added an optional parameter “reference” cosmetic
- “compute_route” reworded the description of “destination” cosmetic
- “compute_route” reworded the description of “origin” cosmetic
- 10 Sept 26 0
- Schema quality: 2984 → 3509 ▼ functional
- New tool “zone_stats” functional
- 6 Sept 26 0
- Tool “compute_route” rewrote its description, which is the text the model reads security
- Tool “route_matrix” rewrote its description, which is the text the model reads security
- Schema quality: 267 → 298 ▼ functional
- MCP protocol: Implements a current MCP spec version (2026-07-28). functional
- MCP protocol version: 2025-11-25 → 2026-07-28 functional
- Server version: 3.4.7 → 4.0.3 functional
- “compute_route” added an optional parameter “mode” cosmetic
- “route_matrix” added an optional parameter “mode” cosmetic
- Tool “compute_route” changed its title: Compute Route cosmetic
- Tool “get_address_details” changed its title: Get Address Details cosmetic
- Tool “get_company_details” changed its title: Get Company Details cosmetic
- Tool “route_matrix” changed its title: Route Matrix cosmetic
- Tool “search_address” changed its title: Search Address cosmetic
- Tool “search_company” changed its title: Search Company cosmetic
- Tool “search_locality” changed its title: Search Locality cosmetic
- Tool “search_nearby” changed its title: Search Nearby cosmetic
- Tool “verify_address” changed its title: Verify Address cosmetic
- 26 Aug 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 +1
- Stability: 0.97 → pass security
- 24 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Probed https://mcp.trustydata.app/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.trustydata.app | CN=YE2,O=Let's Encrypt,C=US | 3 Aug 2026 | 1 Nov 2026 | ECDSA 256 | ECDSA-SHA384 | 50fecc58dc4e42a0377fcc76c528baf0bf3 |
| SANs: mcp.trustydata.app | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of mcp.trustydata.app. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| app. | present | 23684 | 8 | Verified |
| trustydata.app. | present | 42170 | 8 | Verified |
| mcp.trustydata.app. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.trustydata.app/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.trustydata.app/mcp | HTTPS enforced | 301 | https://mcp.trustydata.app/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
compute_route Itinéraire routier complet ~307
Calcule un itinéraire complet entre une origine et une destination sur le réseau France (OpenStreetMap), au choix en voiture, à pied ou à vélo : distance, durée, étapes de navigation en français, boîte englobante et géométrie encodée (polyline6). Mode de déplacement : `car` (voiture, défaut), `walking` (à pied) ou `cycling` (à vélo). Les valeurs du contrat d'API (`auto`, `pieton`, `velo`) sont acceptées telles quelles. Les consignes suivent le mode — « Conduisez… », « Marchez… », « Pédalez… » — et la réponse renvoie le `mode` utilisé : une durée n'est interprétable qu'accompagnée du mode qui l'a produite. ⚠️ Chaque mode a sa distance maximale : 5 000 km en voiture, 500 km à vélo, 250 km à pied ; au-delà la réponse est un 422 explicite, pas une panne. Pour de simples distances en masse, préfère route_matrix. Plan minimum : Business. Mention OSM ODbL obligatoire.
| Name | Type | Req | Description |
|---|---|---|---|
| destination | object | yes | Point d'arrivée : adresse libre OU couple `lat`/`lon`. |
| mode | – | – | Mode de déplacement : `car` (défaut), `walking` ou `cycling`. |
| origin | object | yes | Point de départ : adresse libre OU couple `lat`/`lon`. |
Structured output declared, but exposes no named fields.
No examples provided.
get_address_details Détail d'une adresse ~84
Récupère le détail complet d'une adresse via son identifiant (id renvoyé par search_address ou verify_address). Outil de drill-down : les détails sont déjà inclus inline par les deux autres outils. Plan minimum : Discovery.
| Name | Type | Req | Description |
|---|---|---|---|
| address_id | string | yes | Identifiant d'adresse (champ `id`) renvoyé par verify_address ou search_address. |
Structured output declared, but exposes no named fields.
No examples provided.
get_company_details Fiche d'un établissement ou d'une entreprise ~332
Fiche détaillée d'une entreprise ou d'un établissement français (base SIRENE). Un seul identifiant, deux usages : un SIRET (14 chiffres) renvoie la fiche de CET établissement ; un SIREN (9 chiffres) renvoie celle du SIÈGE de l'entreprise. Structure de la réponse : la racine décrit l'ÉTABLISSEMENT (adresse, activité, effectif, état, conventions collectives applicables à CE site) et le bloc `unite_legale` décrit l'ENTREPRISE (identité, dirigeants, chiffre d'affaires, TVA). Le niveau de détail dépend du plan : géolocalisation et TVA en Starter, dirigeants et conventions collectives en Growth, finances et procédures collectives en Business. Un champ ABSENT n'est pas une donnée inexistante : il peut relever d'un palier supérieur — son absence ne prouve pas l'inexistence de la donnée. Les dirigeants sont des données personnelles issues du Registre National des Entreprises (INPI) ; chacun porte `opposition_prospection` — `true` = cette personne s'est opposée à l'usage de ses données à des fins de prospection commerciale, `false` = pas d'opposition enregistrée, `null` = non renseigné (à ne pas lire comme `false`). C'est le SEUL endroit où cette information est servie. Plan minimum : Discovery.
| Name | Type | Req | Description |
|---|---|---|---|
| company_id | string | yes | SIRET (14 chiffres) de l'établissement, ou SIREN (9 chiffres) pour le siège de l'entreprise. |
Structured output declared, but exposes no named fields.
No examples provided.
route_matrix Matrice de temps et de distances ~272
Calcule une matrice de distances et durées entre N origines et M destinations (jusqu'à 25×25) sur le réseau France (OpenStreetMap), au choix en voiture, à pied ou à vélo. Sans géométrie ni consignes : pour un itinéraire détaillé, utilise compute_route. Mode de déplacement : `car` (voiture, défaut), `walking` (à pied) ou `cycling` (à vélo). Les valeurs du contrat d'API (`auto`, `pieton`, `velo`) sont acceptées telles quelles. ⚠️ La matrice plafonne à 1 500 km en voiture et à 200 km à pied comme à vélo — des limites plus basses que compute_route (5 000 / 250 / 500 km) : un trajet que compute_route accepte peut être refusé ici, en 422. Plan minimum : Growth. Mention OSM ODbL obligatoire.
| Name | Type | Req | Description |
|---|---|---|---|
| destinations | array | yes | Points d'arrivée (1 à 25), même forme. |
| mode | – | – | Mode de déplacement : `car` (défaut), `walking` ou `cycling`. |
| origins | array | yes | Points de départ (1 à 25), chacun une adresse libre OU un couple `lat`/`lon`. |
Structured output declared, but exposes no named fields.
No examples provided.
search_address Rechercher des adresses ~187
Recherche des adresses françaises à partir d'un texte libre (même partiel) et renvoie des candidats classés par pertinence (score 0-1). Pour confirmer UNE adresse précise, préfère verify_address. Chaque candidat porte les trois lignes postales prêtes à écrire (`ligne_voie`, `ligne_complement`, `ligne_commune`). Enrichissements selon le plan (mêmes paliers que verify_address, dont `statistical_grid` Filosofi en Business). Plan minimum : Discovery.
| Name | Type | Req | Description |
|---|---|---|---|
| details | boolean | – | Inclure les blocs détaillés (position GPS et Lambert 93, IRIS, grille statistique — selon le plan). Défaut vrai. |
| limit | integer | – | Nombre maximal de résultats (défaut 10). |
| query | string | yes | Début d'adresse ou adresse partielle à compléter (numéro, voie, commune…). |
Structured output declared, but exposes no named fields.
No examples provided.
search_company Rechercher des entreprises et établissements ~606
Recherche des entreprises et des établissements français dans la base SIRENE (INSEE), par nom, SIREN, SIRET, ville, code postal, code NAF, ou par proximité géographique. IMPORTANT : un résultat est TOUJOURS un ÉTABLISSEMENT (un SIRET), jamais une entreprise — même groupé par entreprise, où le SIREN est représenté par son meilleur établissement (le siège de préférence). 3 établissements d'un même SIREN ne font donc pas « 3 entreprises trouvées ». Par défaut, un résultat par entreprise si `query` est fourni, un résultat par établissement en recherche par proximité ou par `siren` ; force ce comportement avec `group_by_company`. `classement_pertinence` se lit avant de présenter un « meilleur match » : à false (listing simple ou tri par distance), le premier résultat n'est PAS le plus probable. Un résultat `diffusible: false` a ses nom et adresse masqués par l'INSEE — c'est la loi, pas une donnée manquante, et rien ne s'y complète de mémoire. Une liste vide fait autorité : aucune entreprise ne correspond. La fiche complète s'obtient ensuite via get_company_details. Plan minimum : Discovery — la recherche par proximité (lat/lon/radius_m) nécessite le plan Growth.
| Name | Type | Req | Description |
|---|---|---|---|
| address | – | – | Filtre sur la voie (recherche floue) ; exige `query`. |
| city | – | – | Filtre sur la commune (recherche floue) ; exige `query`. |
| group_by_company | – | – | Vrai : un résultat par entreprise (son meilleur établissement, le siège de préférence) ; faux : un par établissement. Absent : défaut de l'API selon la recherche. |
| lat | – | – | Recherche par proximité (plan Growth) : latitude WGS84 du centre, avec `lon` et `radius_m`. |
| lon | – | – | Longitude WGS84 du centre de la recherche par proximité, avec `lat` et `radius_m`. |
| naf_code | – | – | Filtre : code NAF/APE de l'activité, ex. `62.02A`. |
| page | integer | – | Numéro de page, à partir de 1. |
| per_page | integer | – | Résultats par page (défaut 10, plafond 25). |
| postal_code | – | – | Filtre : code postal exact. |
| query | – | – | Nom, dénomination, sigle ou enseigne ; un SIREN (9 chiffres) ou un SIRET (14 chiffres) donne une correspondance exacte. |
| radius_m | – | – | Rayon en mètres autour du centre (jusqu'à 50 km) ; plan Growth. |
| siren | – | – | Tous les établissements d'une unité légale (SIREN, 9 chiffres). |
| status | – | – | Filtre : `active` (établissement en activité) ou `closed` (fermé). |
Structured output declared, but exposes no named fields.
No examples provided.
search_locality Rechercher des communes ~371
Recherche ET liste des communes françaises. Deux usages : (1) retrouver une commune précise par nom, code postal ou code INSEE (renseigne `query`) ; (2) LISTER/FILTRER les communes d'un département ou d'une région, avec une fourchette de population optionnelle — `query` est alors inutile. Exemple : « communes du Pas-de-Calais de plus de 100 000 habitants » → department_code=["62"], population_min=100000. Préfère `department_code` (ex. "62") au nom ; les noms de département sont normalisés automatiquement ("Pas-de-Calais", "Val-d'Oise"… sont acceptés). Renvoie code INSEE, code postal, population et — selon le plan/details — altitude, densité, surface, département et région. Plan minimum : Discovery.
| Name | Type | Req | Description |
|---|---|---|---|
| department_code | – | – | Filtre : codes de département (liste, ex. `62`, `2A`). À préférer au nom. |
| department_name | – | – | Filtre : noms de département (liste ; orthographe normalisée automatiquement). |
| details | boolean | – | Inclure les détails de chaque commune (codes, population, coordonnées). Défaut vrai. |
| limit | integer | – | Nombre maximal de résultats (défaut 20). |
| population_max | – | – | Filtre : population maximale (habitants). |
| population_min | – | – | Filtre : population minimale (habitants). |
| postal_code | – | – | Filtre : codes postaux (liste). |
| query | – | – | Nom de commune, code postal ou code INSEE, complet ou partiel. Optionnel si un filtre est donné. |
| region_code | – | – | Filtre : codes de région (liste). |
| region_name | – | – | Filtre : noms de région (liste). |
Structured output declared, but exposes no named fields.
No examples provided.
search_nearby Adresses à proximité d'un point ~348
Recherche les adresses du référentiel officiel (BAN) situées dans un rayon de `radius_m` mètres (1 à 50 000) autour d'un point central, triées par distance croissante. Le point central est SOIT une adresse libre (`address`), SOIT un couple `lat`+`lon` WGS84 — jamais les deux. Une adresse libre est résolue comme verify_address et renvoyée dans `point_central.adresse_resolue`. Chaque résultat porte `distance_m` (mètres, à vol d'oiseau) et les enrichissements du plan (mêmes paliers que verify_address, dont `statistical_grid` Filosofi en Business). Pagination : passer `offset=pagination.next_offset` pour charger la page suivante (null = fin de parcours) ; `pagination.total_estime` est une estimation ; si `pagination.tronque` vaut true, le cap de 5000 adresses est atteint — réduire le rayon pour l'exhaustivité. Plan minimum : Growth.
| Name | Type | Req | Description |
|---|---|---|---|
| address | – | – | Centre par adresse libre (un nom de commune suffit). Exclusif de `lat`/`lon`. |
| lat | – | – | Latitude WGS84 du centre, avec `lon` et sans `address`. |
| limit | integer | – | Nombre de résultats par page (défaut 10, plafond 50). |
| lon | – | – | Longitude WGS84 du centre, avec `lat` et sans `address`. |
| offset | integer | – | Décalage de pagination : reprendre à `pagination.next_offset` de la réponse précédente. |
| radius_m | integer | yes | Rayon de recherche en mètres autour du centre. |
Structured output declared, but exposes no named fields.
No examples provided.
verify_address Vérifier et normaliser une adresse ~264
Vérifie et normalise une adresse française contre le référentiel géographique officiel (BAN). Renvoie un verdict (match_exact, match_probable, aucun_match) et l'adresse canonique, déjà découpée en trois lignes postales prêtes à écrire (`ligne_voie`, `ligne_complement`, `ligne_commune`) — à utiliser telles quelles plutôt que de recomposer l'adresse. Selon le plan : coordonnées GPS + Lambert 93 (Starter+), code IRIS (Growth+), statistiques INSEE Filosofi du carreau 200 m dans `statistical_grid` : population, répartition par tranches d'âge (0-3 à 80+), ménages, pauvreté, niveau de vie, époque de construction des logements (Business). Plan minimum : Discovery. Une adresse par appel.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Adresse postale française en texte libre, telle que saisie (fautes, abréviations et accents manquants tolérés). |
| details | boolean | – | Inclure les blocs détaillés (position GPS et Lambert 93, IRIS, grille statistique — selon le plan). Défaut vrai. |
| max_results | integer | – | Nombre maximal de candidats renvoyés (défaut 5). |
Structured output declared, but exposes no named fields.
No examples provided.
zone_compare Comparer des zones de chalandise ~967
Compare de 2 à 10 zones de chalandise en un seul appel et mesure leur cannibalisation. Pour chaque zone, rend exactement ce que `zone_stats` rend (`population`, `menages`, `niveau_de_vie_moyen`, `ages`, `sexe`, `menages_profil`, `logements`, `csp`, `potentiel_depense`, `carreaux`, `source`, `attribution` — voir cet outil pour le sens de chaque bloc), plus `id` et `exclusif` : la population, les ménages et le potentiel que la zone est SEULE à couvrir, calculés comme « la zone moins l'union de toutes les autres » — jamais « total moins les paires », qui à trois zones et plus retrancherait deux fois un triple recouvrement ; `exclusif.part_population` en pour cent de la population de la zone. Entre zones : `chevauchements`, une entrée par paire qui se recouvre (population, ménages et potentiel comptés deux fois ; une paire disjointe n'apparaît pas), et `classement`, tous les identifiants triés sur `rank_by` décroissant : `population` (défaut), `exclusive_population`, `theoretical_potential` ou `exclusive_potential` — ces deux derniers exigent `coefficient`. Chaque élément de `zones` se décrit comme sur `zone_stats` : un centre (`address`, un nom de commune suffit, OU `lat`+`lon` WGS84, jamais les deux) et UNE portée, soit `minutes` (1 à 30) avec `mode` `car` (défaut), `walking` ou `cycling` et, en voiture, `traffic` `free` (défaut) ou `peak` (heure de pointe du matin, vitesses modélisées, pas de trafic temps réel — refusé à pied et à vélo, et pouvant répondre « indisponible » si la plateforme ne l'a pas encore ouvert), soit `radius_km` (1 à 50) à vol d'oiseau ; plus un `id` optionnel (1 à 40 caractères, lettres, chiffres, `_`, `-`, unique dans l'appel) repris dans la réponse, le classement et les erreurs — sans `id`, la position à partir de 1. `reference` : `france` (défaut) ou `department` — l'`indice` de chaque poste CSP est alors rapporté au département qui pèse le plus dans la zone (`csp.reference.code`). `coefficient` (0 exclu à 1) : la part du revenu disponible q…
| Name | Type | Req | Description |
|---|---|---|---|
| coefficient | – | – | Part du revenu disponible que le secteur capte (0 exclu à 1), appliquée à toutes les zones, exclusifs et paires ; requis par les critères de potentiel. |
| rank_by | – | – | Critère du classement : `population` (défaut), `exclusive_population`, `theoretical_potential` ou `exclusive_potential` — ces deux derniers exigent `coefficient`. |
| reference | – | – | Référentiel de l'indice d'affinité CSP de chaque zone : `france` (défaut) ou `department`. |
| zones | array | yes | De 2 à 10 zones, chacune avec les arguments de zone_stats (centre + `minutes` ou `radius_km`) et un `id` optionnel. |
Structured output declared, but exposes no named fields.
No examples provided.
zone_stats Statistiques d'une zone de chalandise ~1,516
Rend ce que l'INSEE sait de ceux qui habitent une zone de chalandise : `population`, `menages`, `menages_pauvres` (sous le seuil de pauvreté), `niveau_de_vie_moyen` (euros par personne et par an — une moyenne, jamais une médiane), `iris_couverts` (quartiers IRIS touchés), `surface_km2`, et `carreaux` {total, estimes}. Les chiffres sont des sommes des carreaux INSEE Filosofi de 200 m pondérées par la part de chaque carreau dans la zone ; `carreaux.estimes` compte ceux que l'INSEE a imputés au titre du secret statistique — c'est la norme du fichier (souvent la majorité hors des villes denses), pas un défaut de la zone. Depuis la plateforme 1.11, la réponse porte aussi le PROFIL de la zone, en trois blocs de `{effectif, part}` : `ages` (onze tranches INSEE `0_3` … `80_plus` et `inconnu`, parts rapportées à `population`), `menages_profil` (personnes seules, 5 personnes et plus, propriétaires, monoparentaux, en collectif, en maison, parts rapportées à `menages`, plus `surface_moyenne_m2`) et `logements` (`total`, cinq périodes de construction et `sociaux`, parts rapportées à `logements.total`). Les parts sont en pourcentage au dixième, calculées avant arrondi ; les effectifs sont arrondis séparément, leur somme peut différer du total de quelques unités. Depuis la plateforme 1.16, le bloc `sexe` donne `hommes` et `femmes` en `{effectif, part}` plus `population_recensement` — les parts sont rapportées à `population_recensement` (hommes + femmes, la population du recensement répartie sur la zone), pas à `population` : les deux diffèrent de quelques pour cent, c'est normal (ménages ordinaires 2021 contre population totale 2022). C'est une estimation : le sexe n'est diffusé qu'à l'IRIS et réparti sur les carreaux au prorata de leur population ; les limites sont celles de `csp.fiabilite`. Depuis la plateforme 1.12, le bloc `csp` donne les huit catégories socioprofessionnelles des 15 ans et plus (agriculteurs, artisans_commercants, cadres, professions_intermediaires, employes,…
| Name | Type | Req | Description |
|---|---|---|---|
| address | – | – | Centre par adresse libre — un nom de commune suffit. Exclusif de `lat`/`lon`. |
| coefficient | – | – | Part du revenu disponible que le secteur capte (0 exclu à 1) ; déclenche `potentiel_theorique`. |
| lat | – | – | Latitude WGS84 du centre, avec `lon` et sans `address`. |
| lon | – | – | Longitude WGS84 du centre, avec `lat` et sans `address`. |
| minutes | – | – | Portée isochrone : minutes de trajet depuis le centre (1 à 30). Exclusif de `radius_km`. |
| mode | – | – | Mode de déplacement de l'isochrone : `car` (défaut), `walking` ou `cycling` — avec `minutes` seulement. |
| radius_km | – | – | Portée rayon à vol d'oiseau, en km (1 à 50). Exclusif de `minutes`. |
| reference | – | – | Référentiel de l'indice d'affinité CSP : `france` (défaut) ou `department` (département dominant de la zone). |
| traffic | – | – | Conditions de circulation de l'isochrone : `free` (défaut) ou `peak` (heure de pointe modélisée) — avec `minutes` et `mode: car` seulement. |
Structured output declared, but exposes no named fields.
No examples provided.
What is the TrustyData MCP server?
TrustyData is an MCP server listed in the public MCP registry as app.trustydata/trustydata. French address quality, geocoding, routing, company lookup & catchment stats (BAN, INSEE, OSM). This page covers its hosted endpoint (https://mcp.trustydata.app/mcp).
Is the TrustyData MCP server safe to use?
TrustyData scores 86 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the TrustyData MCP server expose?
TrustyData exposes 11 tools: verify_address, search_address, get_address_details, search_nearby, search_company, and 6 more. Their descriptions and schemas cost roughly 5,254 tokens of context every time the server is loaded.
Does the TrustyData MCP server require authentication?
No. We connected to TrustyData without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the TrustyData MCP server still maintained?
TrustyData is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.