accueil / serveurs / Données & BDD / ai.myriade/myriade
ai.myriade/myriade
serveur MCP (Model Context Protocol) · myriade_mcp 1.21.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que ai.myriade/myriade est sûr ?
Au dernier audit MCP Hub, le serveur MCP « ai.myriade/myriade » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 28 outils
- myriade_ask≈ 460 tokens
Ask a natural language question about a database using Myriade's data analyst agent. The agent will explore the database schema, search the catalog, run SQL queries, and analyze the results to answer your question. Use this for complex analytical questions that require multiple steps; for simple schema lookups or direct SQL, prefer the other tools. The run executes in the background as a regular Myriade conversation (visible in the web UI). If it finishes quickly the answer is returned directly; otherwise the tool returns ``{"status": "running", "conversation_id": ...}`` — poll myriade_get_answer with that id to retrieve the result. Long analytical questions are expected to take several minutes. Note: the agent has access to catalog write operations (create/update assets, tags, terms) — it may modify catalog state to record findings. It can also read, create and edit reports (ask it to "write a report on ..." or "update report <id> with ..."). Use myriade_query directly for strictly read-only inspection. Requires AI_PROVIDER and the corresponding API key (e.g. AI_PROVIDER=anthropic + ANTHROPIC_API_KEY).
Paramètres, retour & exemple (2)
Paramètresquestion· string · requis
Natural-language question about the datadatabase_id· string · requis
UUID of the database
Exemple d'appel{"name": "myriade_ask", "arguments": {"question": "texte", "database_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_audit_list_map≈ 251 tokens
The organisation's audit value map: every domain (key, name, its document, zone count), every active zone (slug, name, domain, verdict, gain, star, last verified, its document) with its levers and their class (quick_win, quick_action, waiting, project, long_term), the domain keys zones use without a domain document, and the zone or domain documents whose block could not be projected (with the error to fix). Read zones and levers in full with myriade_audit_read_zones / myriade_audit_read_levers, a zone's narrative with myriade_read_report (the uuid inside <DOCUMENT:uuid>).
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "myriade_audit_list_map", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_audit_read_levers≈ 216 tokens
Levers as their page shows them: every field, the class, the human follow-up (status, assignee, note) and the dated figures behind each. An id that is no lever on the map comes back under errors. A query is shown only on connections you may read.
Paramètres, retour & exemple (1)
Paramètreslevers· array · requis
The levers, each as <LEVER:id> or its uuid
Exemple d'appel{"name": "myriade_audit_read_levers", "arguments": {"levers": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_audit_read_zones≈ 236 tokens
Zones as their page shows them: the record from the ```zone block, the dated figures recorded on the zone, its levers in short (id, name, stage, class, follow-up, estimate) and its document. A slug with no active zone comes back under errors. A figure's query is shown only on connections you may read (``restricted`` otherwise).
Paramètres, retour & exemple (1)
Paramètreszones· array · requis
The zones' slugs (from myriade_audit_list_map)
Exemple d'appel{"name": "myriade_audit_read_zones", "arguments": {"zones": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_audit_record_evidence≈ 452 tokens
Record a dated figure backing a zone (or one of its levers), linked to the query that computed it, on a connection you may read. Recording the same label again on the same zone or lever replaces the figure.
Paramètres, retour & exemple (7)
Paramètreskind· string · optionnel · key | fact | extrapolation | change
key (headline), fact, extrapolation (derived) or change (moved since the last run)zone· string · requis
The zone's slug, from its document's ```zone blocklabel· string · requis
What the figure is ("Taux de rupture top 500")lever· ? · optionnel
Attach the figure to this lever of the zone instead, as <LEVER:id> or its uuidquery· ? · optionnel
The query that computed it: the query_id myriade_query returns (or its 8-hex short id)scope· ? · optionnel
The perimeter it coversvalue· string · requis
The figure as it should read ("7,8 %", "≈ 1,2 M€")
Exemple d'appel{"name": "myriade_audit_record_evidence", "arguments": {"zone": "texte", "label": "texte", "value": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_audit_record_lever≈ 969 tokens
Create a lever in a zone of the audit map, or update one by its id (an argument you omit keeps its value). Cite the returned id as <LEVER:id> in the zone document. Its class is computed from effort × gain_delay × timing; the follow-up (status, assignee, note) is set on its page.
Paramètres, retour & exemple (18)
Paramètresname· string · requis
A short imperative title ("Réallouer le stock des 22 magasins en rupture")next· ? · optionnel
The very next step, one sentencetype· string · requis
decision (a choice to make), list (a list to act on) or rule (a rule to automate)zone· string · requis
The zone's slug, from its document's ```zone blocklever· ? · optionnel
The lever to update, as <LEVER:id> or its uuid; omit to create oneneeds· ? · optionnel
What it needs before it can startowner· ? · optionnel
The team that would carry it ("Supply")risks· ? · optionnel
What could make it fail or backfirestage· string · requis
ready, extract, test, decide, build, explore, blocked or abandonedsteps· ? · optionnel
The steps to land it, in ordereffort· ? · optionnel
days, weeks or months of work to land ittiming· ? · optionnel
now, before (a deadline), wait (for something) or any; any but before clears the deadlinesuccess· ? · optionnel
How the team will know it workeddeadline· ? · optionnel
The deadline in words, when timing is beforeestimate· ? · optionnel
The lever's gain: {"value": "≈ 1,1 M€" (display text), "label": "de marge par an si ..." (what the amount is), "rows": [{"label", "text", "query": query id}], "calc": "how the rows combine", "takeaway": "one sentence"}gain_delay· ? · optionnel
immediate (weeks), short (quarter), medium (year), long_term (beyond a year) or nonedeadline_at· ? · optionnel
The deadline's date as YYYY-MM-DD, when timing is beforedeliverable· ? · optionnel
What the team gets in hand
Exemple d'appel{"name": "myriade_audit_record_lever", "arguments": {"name": "texte", "type": "texte", "zone": "texte", "stage": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_create_report≈ 303 tokens
Create a report owned by the caller, private until shared. Share it with myriade_set_report_access(visibility="everyone"): an audit zone or domain document joins the map only once organisation-wide.
Paramètres, retour & exemple (3)
Paramètrestitle· string · requis
Title of the reportcontent· string · optionnel
Markdown content; may cite <QUERY:id> and <CHART:id> tags. An audit zone or domain opens with its ```zone or ```domain block.database_id· ? · optionnel
UUID of the database the report is written from. Omit for an organisation-level report (audit zones and domains are).
Exemple d'appel{"name": "myriade_create_report", "arguments": {"title": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_edit_report≈ 328 tokens
Replace text in a report, as the caller (a version is recorded). Read it first with myriade_read_report. A published report is editable only by its owner or an org admin.
Paramètres, retour & exemple (5)
Paramètresreason· string · requis
Why (kept in history)new_string· string · requis
Text to put in its placeold_string· string · requis
Exact text to replace, unique in the report unless replace_all (include the surrounding heading to make it unique)document_id· string · requis
UUID of the reportreplace_all· boolean · optionnel
Replace every occurrence
Exemple d'appel{"name": "myriade_edit_report", "arguments": {"reason": "texte", "new_string": "texte", "old_string": "texte", "document_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_get_answer≈ 316 tokens
Retrieve the result of a myriade_ask run. Returns ``{"status": "completed", "answer": ...}`` once the analyst agent has answered, or ``{"status": "running"}`` while it is still working — keep polling in that case. ``{"status": "failed"}`` / ``{"status": "quota_exceeded"}`` carry the run's error. ``{"status": "no_answer"}`` means the run is gone without a recorded answer (agent stopped silently, or the server restarted): start a new myriade_ask run.
Paramètres, retour & exemple (2)
Paramètreswait_seconds· integer · optionnel
How long to wait for the run to finish before reporting its status (long-poll)conversation_id· string · requis
Conversation UUID returned by myriade_ask
Exemple d'appel{"name": "myriade_get_answer", "arguments": {"conversation_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_get_check≈ 228 tokens
Get a monitoring check (name, SQL, severity, cadence, status) and its most recent run results, newest first. On governed databases the SQL and evidence rows are redacted unless you manage the database or authored the proposal.
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionnel
Run results to return (1-100)check_id· string · requis
UUID of the monitoring check
Exemple d'appel{"name": "myriade_get_check", "arguments": {"check_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_get_database_info≈ 196 tokens
Get detailed information about a specific database connection. Returns information about the database including its name, engine type, description, write mode, and any AI memory notes.
Paramètres, retour & exemple (1)
Paramètresdatabase_id· string · requis
UUID of the database (from myriade_list_databases)
Exemple d'appel{"name": "myriade_get_database_info", "arguments": {"database_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_get_query_results≈ 296 tokens
Re-execute a saved Myriade query and return fresh results. The query's SQL always re-runs under the caller's governance policies (table permissions, column masking) — results are never served from Myriade's cached snapshot. Prefer this over myriade_query for recurring metrics (dashboards, cockpits): the SQL stays governed in Myriade instead of travelling through prompts. Write statements are blocked. Returns up to 50 rows with column metadata, same shape as myriade_query.
Paramètres, retour & exemple (1)
Paramètresquery_id· string · requis
UUID or short id (8+ hex characters) of a saved Myriade query (from a Myriade query link, a <QUERY:…> tag in a report, or myriade_ask responses)
Exemple d'appel{"name": "myriade_get_query_results", "arguments": {"query_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_get_table_schema≈ 324 tokens
Get the column-level schema for a specific table. Returns column names, data types, and descriptions for the table, plus the SQL `dialect` to use with myriade_query on this database. When the name is ambiguous across schemas, the candidates are returned under `matches` instead — pass `schema_name` to pick one. Raises if the user has no access to the table under governance.
Paramètres, retour & exemple (3)
Paramètrestable_name· string · requis
Name of the table to inspectdatabase_id· string · requis
UUID of the databaseschema_name· ? · optionnel
Optional schema name to disambiguate same-named tables
Exemple d'appel{"name": "myriade_get_table_schema", "arguments": {"table_name": "texte", "database_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_list_databases≈ 223 tokens
List databases configured in Myriade (paginated, sorted by name). Returns paginated database connections with their IDs, names, engines, and descriptions. Use the database ID with other tools.
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionnel
Maximum results to return (1-200)offset· integer · optionnel
Number of results to skip for pagination
Exemple d'appel{"name": "myriade_list_databases", "arguments": {"limit": 1, "offset": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_list_reports≈ 322 tokens
List or search reports (documents) written in Myriade. Without ``query`` returns the most recently updated reports first; with ``query`` returns the best matches first. Only reports the caller may see are returned. Read one with myriade_read_report.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnel
Maximum results to return (1-50)query· ? · optionnel
Optional search terms (title, description, content); results are ranked by relevancedatabase_id· ? · optionnel
UUID of the database whose reports to list. Omit for organisation-level reports (not bound to a database).
Exemple d'appel{"name": "myriade_list_reports", "arguments": {"limit": 1, "query": "texte", "database_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_list_tables≈ 272 tokens
List tables in a database (paginated, sorted by database/schema/name). Returns a flat, paginated list of tables. Each item has database_name, schema, and name fields. The response's `dialect` is the SQL dialect to use with myriade_query on this database.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnel
Maximum tables to return (1-500)offset· integer · optionnel
Number of tables to skip for paginationdatabase_id· string · requis
UUID of the database
Exemple d'appel{"name": "myriade_list_tables", "arguments": {"database_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_monitoring_overview≈ 264 tokens
Snapshot of a database's monitoring board: check count, standing alerts (open / acknowledged / known) with their headlines, recent notifications and triage notes, followed by the open alerts as JSON — each with its investigation and evidence while they fit, then as listing lines, with ``shown`` / ``total`` / ``detailed`` saying which. Alert ids feed myriade_triage_alert; check ids feed myriade_get_check. Investigation details are redacted unless you manage the database.
Paramètres, retour & exemple (1)
Paramètresdatabase_id· string · requis
UUID of the database
Exemple d'appel{"name": "myriade_monitoring_overview", "arguments": {"database_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_propose_check≈ 691 tokens
Propose a monitoring check for the user to review in Myriade. This creates a PROPOSAL, never an active check: nothing runs until a database owner or org admin accepts it in the app. The SQL is test-run once under your governance context to validate it. Contract for ``check_sql``: it MUST return rows ONLY when something is wrong (zero rows = healthy) and use relative time (``now() - interval``), never absolute dates. Minimum cadence is 5 minutes. Names are unique per database — read myriade_monitoring_overview before proposing a near-duplicate.
Paramètres, retour & exemple (9)
Paramètreskind· string · requis · freshness | volume | integrity | quality | business
What the check guards: freshness (data arriving on time), volume (row counts, drops, spikes), integrity (duplicates, orphans, keys), quality (nulls, negatives, malformed values), business (a business rule or KPI threshold)name· string · requis
Short human-readable name of the thing watched, unique per database, no type prefix (the kind carries it)severity· string · optionnel · LOW | MEDIUM | HIGH | CRITICAL
Severity raised when the check tripscheck_sql· string · requis
SQL returning zero rows when healthy, rows when wrongtime_zone· string · optionnel
IANA timezone start_time is read in (e.g. "Europe/Paris"), required with start_timestart_time· string · optionnel
Fixed time of day "HH:MM" (24h) the check runs at, for a cadence in whole days only (interval_minutes 1440 = every day)database_id· string · requis
UUID of the databasedescription· string · optionnel
One sentence, prospective tense: "Trips when <condition> (baseline ~X)"interval_minutes· integer · optionnel
Cadence in minutes (minimum 5)
Exemple d'appel{"name": "myriade_propose_check", "arguments": {"kind": "freshness", "name": "texte", "check_sql": "texte", "database_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_query≈ 358 tokens
Execute a read-only SQL query against a database. Write the SQL in the dialect of the target database's engine — see the `dialect` field returned by myriade_list_tables and myriade_get_table_schema, or the engine in myriade_list_databases. Write operations (INSERT, UPDATE, DELETE, DROP, etc.) are blocked. Returns up to 50 rows of results with column metadata. Successful queries are saved in Myriade; the response's `query_id` can be replayed later with myriade_get_query_results without resending SQL.
Paramètres, retour & exemple (3)
Paramètressql· string · requis
Read-only SQL query, written for the target database's dialect (writes are blocked)title· ? · optionnel
Optional name for the saved query, shown in Myriadedatabase_id· string · requis
UUID of the database
Exemple d'appel{"name": "myriade_query", "arguments": {"sql": "texte", "database_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_read_asset≈ 258 tokens
Get detailed information about a catalog object (table, column, schema, or glossary term — assets and terms share one id space). Returns the asset's description, tags, status, columns (for tables), sample data, parent hierarchy, and activity feed; for a glossary term, its definition, synonyms, related terms, and activity feed.
Paramètres, retour & exemple (2)
Paramètresasset_id· string · requis
UUID of the catalog object (asset or glossary term)database_id· string · requis
UUID of the database
Exemple d'appel{"name": "myriade_read_asset", "arguments": {"asset_id": "texte", "database_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_read_report≈ 204 tokens
Read a report's full markdown content. Applies the same visibility rule as the web app; a report the caller may not see returns a "not found" error. Edit it with myriade_edit_report, or have the analyst agent rework it with myriade_ask.
Paramètres, retour & exemple (1)
Paramètresdocument_id· string · requis
UUID of the report (from myriade_list_reports)
Exemple d'appel{"name": "myriade_read_report", "arguments": {"document_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_request_catalog_change≈ 390 tokens
Propose a catalog change for the data team to review (no edit rights needed). Creates a reviewable suggestion routed to the asset's reviewers. Does NOT change the published catalog until approved. Use this instead of ``myriade_update_asset`` when you lack edit rights or are not confident enough to write directly.
Paramètres, retour & exemple (5)
Paramètresfield· string · requis · description | tags
Field to change: "description" or "tags"asset_id· string · requis
UUID of the asset to propose a change forrationale· string · requis
Why this change is proposed — shown to reviewers and in the activity feeddatabase_id· string · requis
UUID of the databaseproposed_value· string · requis
Proposed description text, or JSON-encoded list of tag names
Exemple d'appel{"name": "myriade_request_catalog_change", "arguments": {"field": "description", "asset_id": "texte", "rationale": "texte", "database_id": "texte", "proposed_value": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_sample_data≈ 326 tokens
Get sample rows from a table to understand the data. Returns a random sample of up to ``limit`` rows (max 20).
Paramètres, retour & exemple (5)
Paramètreslimit· integer · optionnel
Rows to sample (1-20)table_name· string · requis
Name of the table to sampledatabase_id· string · requis
UUID of the databaseschema_name· string · requis
Schema containing the tabledatabase_name· ? · optionnel
Optional warehouse-side database name (e.g. for Snowflake)
Exemple d'appel{"name": "myriade_sample_data", "arguments": {"table_name": "texte", "database_id": "texte", "schema_name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_search_catalog≈ 308 tokens
Search the data catalog for tables, columns, or terms by name/description. Uses fuzzy matching and full-text search. Keep queries short (1-2 words) for best results.
Paramètres, retour & exemple (4)
Paramètrestext· string · requis
Search query — keep short (1-2 words) for best resultslimit· integer · optionnel
Maximum results to return (1-50)asset_type· ? · optionnel
Filter: "TABLE", "COLUMN", or "TERM"database_id· string · requis
UUID of the database
Exemple d'appel{"name": "myriade_search_catalog", "arguments": {"text": "texte", "database_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_set_report_access≈ 267 tokens
Change who can read a report: visibility (its owner only) and web publication (its owner or an org admin).
Paramètres, retour & exemple (3)
Paramètrespublished· ? · optionnel
Anonymous web access; only on a report of a public databasevisibility· ? · optionnel
private, scoped, or everyone (organisation-wide)document_id· string · requis
UUID of the report
Exemple d'appel{"name": "myriade_set_report_access", "arguments": {"document_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_triage_alert≈ 496 tokens
Triage an alert (requires manage access: database owner or org admin). - ``resolve``: the underlying problem is handled or gone. - ``acknowledge``: keep it standing with a ``statement`` of what is happening — only for a situation that may worsen. - ``dismiss``: false positive / expected; refused while the check still trips (it would just respawn). - ``snooze``: silence for ``hours`` with a ``statement``; reopens by itself if the check still trips afterwards. - ``reopen``: send a parked alert back to "needs action" with a ``statement`` of what is no longer covered.
Paramètres, retour & exemple (5)
Paramètresnote· ? · optionnel
Optional note appended to the alert details (resolve, dismiss)hours· ? · optionnel
Snooze window in hours (1-168). Required for snooze.action· string · requis · resolve | acknowledge | dismiss | snooze | reopen
Transition to apply to the alertalert_id· string · requis
UUID of the alertstatement· ? · optionnel
One SHORT present-tense plain-text sentence (~120 chars, no Markdown) shown as the alert headline. Required for acknowledge, snooze and reopen.
Exemple d'appel{"name": "myriade_triage_alert", "arguments": {"action": "resolve", "alert_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_update_asset≈ 457 tokens
Update a catalog asset's documentation (requires edit rights). - ``description`` replaces the existing description (auto-sets status to "draft" if status is null). - ``tag_ids`` replaces all tags (accepts names or UUIDs; auto-creates missing tags). - ``status`` is "draft" (needs review) or "published". Only use "published" with high confidence. Use ``myriade_request_catalog_change`` instead when you lack edit rights or are not confident enough to write directly.
Paramètres, retour & exemple (5)
Paramètresstatus· ? · optionnel
"draft" (needs review) or "published" (production-ready)tag_ids· ? · optionnel
Tag names or UUIDs (replaces all tags). Auto-creates missing tags.asset_id· string · requis
UUID of the asset to updatedatabase_id· string · requis
UUID of the databasedescription· ? · optionnel
Replaces existing description; auto-sets status='draft' if status is null
Exemple d'appel{"name": "myriade_update_asset", "arguments": {"asset_id": "texte", "database_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}} - myriade_update_report_title≈ 184 tokens
Rename a report (an audit zone takes its document's title).
Paramètres, retour & exemple (2)
Paramètrestitle· string · requis
The new titledocument_id· string · requis
UUID of the report
Exemple d'appel{"name": "myriade_update_report_title", "arguments": {"title": "texte", "document_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": "texte"}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».