{"schema_version":"verify.compare.v1","generated_at":"2026-08-15T00:27:51.621244+00:00","count":1,"missing_servers":[],"results":[{"server_id":"ai.dataecho/mcp","display_name":"ai.dataecho/mcp","profile_url":"https://verify.sentinelsignal.io/servers/ai.dataecho/mcp","compare_url":"https://verify.sentinelsignal.io/compare?server=ai.dataecho%2Fmcp","trust_summary_url":"https://verify.sentinelsignal.io/v1/servers/ai.dataecho/mcp/trust-summary","claimed":false,"verified_publisher":false,"claim_status":"unclaimed","badge_url":"https://verify.sentinelsignal.io/badge/ai.dataecho/mcp.svg","report_url":"https://verify.sentinelsignal.io/v1/servers/ai.dataecho/mcp/report","policy_url":"https://verify.sentinelsignal.io/v1/servers/ai.dataecho/mcp/policy","evidence_url":"https://verify.sentinelsignal.io/api/v1/servers/ai.dataecho/mcp/evidence","commerce_signal":null,"payment_capable":null,"delegation_level":null,"risk_flags":[],"strengths":["report_available","policy_available","badge_available"],"limitations":["unclaimed_profile","publisher_not_verified"],"last_seen":null,"last_scored":"2026-08-14T15:54:38.105004+00:00","recommended_agent_action":"allow_with_policy_review","observed_attention":{"schema":"verify.observed_attention.v1","window_days":30,"level":"none","label":"No observed attention","summary":"No recent machine-readable trust or discovery activity observed for this server.","segments":{"useful_ai_user":{"level":"none","observed":false,"description":"AI-assisted user sessions such as ChatGPT/User or Claude/User."},"machine_trust_evaluator":{"level":"none","observed":false,"description":"Synthetic sessions inspecting multiple trust surfaces such as report, policy, ledger, badge, trust-summary, or compare."},"possible_agent_or_script":{"level":"none","observed":false,"description":"Structured direct sessions with rapid profile, compare, report, policy, badge, or trust-surface fan-out."},"isolated_machine_surface":{"level":"none","observed":false,"description":"Aged-out direct synthetic singleton sessions that touched a machine-readable trust surface without becoming a broader evaluator."},"ai_crawler":{"level":"none","observed":false,"description":"Known AI crawler activity such as ClaudeBot, GPTBot, or similar crawlers."},"search_crawler":{"level":"none","observed":false,"description":"Search and SEO crawler activity."},"browser_like_automation":{"level":"none","observed":false,"description":"Browser-like synthetic sessions with rapid structured endpoint activity."},"confirmed_human":{"level":"none","observed":false,"description":"Confirmed browser-session human activity."}},"surfaces_observed":{"server_profile":false,"compare":false,"compare_json":false,"compare_api":false,"report_json":false,"policy":false,"ledger":false,"badge_metadata":false,"badge_svg":false,"trust_summary":false,"mcp_tool":false},"claim_prompt":{"recommended":false,"reason":"No claim prompt is recommended from observed attention in the current window."},"notes":["Observed attention is based on segmented first-party telemetry.","Crawler and evaluator activity is not treated as confirmed human demand.","Public levels are bucketed to avoid exposing raw traffic counts."]},"owner_activation":{"claim_recommended":false,"reason":"no_observed_attention"}}],"servers":[{"namespace":"ai.dataecho","name":"mcp","title":"ai.dataecho/mcp","description":"Deploy files, sites, and Dockerfile apps to live URLs + private drives for agent memory.","homepage_url":"https://dataecho.ai","docs_url":null,"icon_url":null,"support_url":null,"remote_url":"https://dataecho.ai/mcp","server_card_url":null,"latest_version":"1.0.0","current_status":"healthy","current_score":59.38,"transport_type":"streamable-http","has_oauth":false,"has_dcr":false,"has_prompts":false,"tool_count":26,"current_validation_schema_version":"8058defc70ca932c","last_validated_at":"2026-08-14T15:54:38.105004+00:00","registry_source":"official_registry","registry_identifier":"ai.dataecho/mcp","canonical_identifier":null,"current_score_components":{"auth_operability_score":2.0,"error_contract_score":0.0,"rate_limit_semantics_score":2.0,"schema_completeness_score":2.0,"backward_compatibility_score":4.0,"slo_health_score":3.0,"security_hygiene_score":2.0,"task_success_score":4.0,"trust_confidence_score":4.0,"abuse_noise_ratio_score":4.0,"prompt_contract_score":2.0,"resource_contract_score":2.0,"discovery_metadata_score":2.0,"registry_consistency_score":2.0,"installability_score":4.0,"session_semantics_score":4.0,"tool_surface_design_score":3.0,"result_shape_stability_score":3.0,"oauth_interop_score":0.0,"recovery_semantics_score":0.0,"maintenance_signal_score":4.0,"adoption_signal_score":3.0,"freshness_confidence_score":4.0,"transport_fidelity_score":4.0,"spec_recency_score":2.0,"session_resume_score":3.0,"step_up_auth_score":0.0,"transport_compliance_score":0.0,"utility_coverage_score":0.0,"advanced_capability_coverage_score":1.0,"connector_publishability_score":1.0,"tool_snapshot_churn_score":4.0,"connector_replay_score":4.0,"request_association_score":0.0,"interactive_flow_safety_score":4.0,"action_safety_score":1.0,"official_registry_presence_score":4.0,"safety_transparency_score":2.0,"tool_capability_clarity_score":4.0,"destructive_operation_safety_score":3.0,"egress_ssrf_resilience_score":3.0,"execution_sandbox_safety_score":1.0,"data_exfiltration_resilience_score":3.0,"least_privilege_scope_score":1.0,"secret_handling_hygiene_score":1.0,"dependency_supply_chain_signal_score":1.0,"input_sanitization_safety_score":3.0,"tool_namespace_clarity_score":4.0},"capability_taxonomy":[],"machine_summary":{},"taxonomy_tags":[],"score_decomposition":[],"validation_diff":null,"tool_snapshot_diff":null,"connector_replay":{},"request_association":{},"production_readiness":{"code":"needs_remediation","label":"Needs remediation","reason":"Current validation evidence shows operational or discovery gaps that should be fixed first.","badge":"score-low","critical_alerts":0,"high_or_critical_alerts":0,"degraded_by_active_alerts":false},"recommended_for":[],"history_summary":{},"validation_timeline":[],"evidence_confidence":{"score":100.0,"label":"high","reason":"Based on 20 recent validations, 15 captured checks, and validation age of 8.6 hours.","live_check_count":15,"validation_age_hours":8.55,"basis":{"evidence_bearing_validations":20,"affirmative_live_check_count":15,"validation_age_hours":8.55,"freshness_threshold_hours":24}},"incident_feed":[],"disputes":[],"remediations":[],"client_remediation_modes":[],"client_profiles":[],"client_readiness_verdicts":[],"publishability_policy_profiles":[],"compatibility_fixtures":[],"install_snippets":{},"aliases":[],"raw_evidence":{"checks":{"probe_noise_resilience":{"status":"ok","latency_ms":360.21,"details":{"url":"https://dataecho.ai/robots.txt","http_status":200,"headers":{"content-type":"text/plain; charset=utf-8"},"validation_disallowed":false,"consent_error":null}},"server_card":{"status":"error","latency_ms":303.67,"details":{"url":"https://dataecho.ai/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://dataecho.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_protected_resource":{"status":"error","latency_ms":529.23,"details":{"url":"https://dataecho.ai/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://dataecho.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_authorization_server":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"openid_configuration":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"initialize":{"status":"ok","latency_ms":534.78,"details":{"url":"https://dataecho.ai/mcp","payload":{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-03-26","capabilities":{"tools":{"listChanged":false}},"serverInfo":{"name":"dataecho","title":"DataEcho","version":"1.0.0"},"instructions":"DataEcho hosts what agents build: publish_site deploys files/sites/apps to a live URL (anonymous works — 24h expiry, ALWAYS show the user the claimUrl), drives are private versioned cloud storage. Authenticate by sending the platform API key as `Authorization: Bearer <key>` (get one via request_login_code → verify_login_code). Container apps: include a Dockerfile, must listen on process.env.PORT, persist under /data, poll app_status. Large folders: prefer the dataecho skill (npx skills add mohocp/dataecho)."}},"http_status":200,"headers":{"content-type":"application/json"}}},"protocol_version_probe":{"status":"warning","latency_ms":null,"details":{"claimed_version":"2025-03-26","validator_protocol_version":"2025-03-26","latest_known_version":"2025-11-25","releases_behind":2,"lag_days":244}},"tools_list":{"status":"ok","latency_ms":628.1,"details":{"url":"https://dataecho.ai/mcp","payload":{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"platform_info","description":"DataEcho platform overview: what it can host, auth state of this connection, docs links. Call this first if unsure.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"request_login_code","description":"Start sign-in: email a one-time code to the user. Follow with verify_login_code.","inputSchema":{"type":"object","properties":{"email":{"type":"string","description":"The user's email address"}},"required":["email"],"additionalProperties":false}},{"name":"verify_login_code","description":"Complete sign-in with the emailed code. Returns the apiKey ONCE — configure it as the `Authorization: Bearer <key>` header of this MCP connection (and/or save to ~/.artifact/credentials for the CLI scripts). Never echo it into chat.","inputSchema":{"type":"object","properties":{"email":{"type":"string","description":"Same email as request_login_code"},"code":{"type":"string","description":"The one-time code from the email"}},"required":["email","code"],"additionalProperties":false}},{"name":"publish_site","description":"Deploy files to a live URL. No slug → create a NEW site (works without auth; anonymous sites expire in 24h — always show the user the claimUrl). With slug → UPDATE that site (complete snapshot: send ALL files). A Dockerfile in the files makes it a server-side app (auth required; listen on process.env.PORT; persist under /data; poll app_status). Total payload ≤ 8 MB — for bigger sites use the dataecho skill scripts.","inputSchema":{"type":"object","properties":{"files":{"type":"array","description":"Files to publish. Each file: { path, content (utf-8 text) OR contentBase64 (binary), contentType? }. The publish is a COMPLETE snapshot — omitted files are removed on update.","items":{"type":"object","properties":{"path":{"type":"string","description":"Site-relative path, e.g. index.html or assets/app.js"},"content":{"type":"string","description":"UTF-8 text content (use for html/css/js/json/text)"},"contentBase64":{"type":"string","description":"Base64 content (use for binary files)"},"contentType":{"type":"string","description":"Optional MIME type; guessed from the extension if omitted"}},"required":["path"],"additionalProperties":false}},"slug":{"type":"string","description":"Existing site slug to update (omit to create a new site)"},"title":{"type":"string","description":"Viewer page title (used when there's no index.html)"},"description":{"type":"string","description":"Viewer page description"},"spa":{"type":"boolean","description":"Enable SPA fallback routing (serve index.html for unknown paths)"},"ttlSeconds":{"type":"number","description":"Expiry for authenticated sites, in seconds"},"claimToken":{"type":"string","description":"Claim token — required to update an anonymous site without auth"}},"required":["files"],"additionalProperties":false}},{"name":"claim_site","description":"Make a previously-anonymous site permanent under the authenticated account (requires auth + the claimToken from publish_site).","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Site slug"},"claimToken":{"type":"string","description":"Claim token returned by the anonymous publish"}},"required":["slug","claimToken"],"additionalProperties":false}},{"name":"list_sites","description":"List all sites owned by the authenticated account.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"search_sites","description":"Full-text search across the authenticated account's sites (names, metadata, and text content).","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query"},"limit":{"type":"number","description":"Max results (optional)"}},"required":["query"],"additionalProperties":false}},{"name":"get_site","description":"Full details + current file manifest of an owned site.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Site slug"}},"required":["slug"],"additionalProperties":false}},{"name":"update_site_metadata","description":"Patch site settings without redeploying: viewer title/description, SPA mode, TTL, password (string sets, null removes).","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Site slug"},"title":{"type":"string","description":"Viewer title"},"description":{"type":"string","description":"Viewer description"},"spaMode":{"type":"boolean","description":"SPA fallback routing"},"ttlSeconds":{"type":"number","description":"Expiry in seconds (null-like 0 not allowed; omit to keep)"},"password":{"type":"string","description":"Password-gate the site; pass an empty string to REMOVE the password"}},"required":["slug"],"additionalProperties":false}},{"name":"delete_site","description":"Permanently delete an owned site. Irreversible — confirm with the user first.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Site slug"}},"required":["slug"],"additionalProperties":false}},{"name":"app_status","description":"Build/run status of a container app deployed via publish_site with a Dockerfile. Poll until status is `live` or `failed`.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Site slug"},"logs":{"type":"boolean","description":"Include build logs"}},"required":["slug"],"additionalProperties":false}},{"name":"list_drives","description":"List the authenticated account's private cloud drives.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"create_drive","description":"Create a new private drive.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Drive name"}},"required":["name"],"additionalProperties":false}},{"name":"drive_list_files","description":"List files in a drive (by drive name or drv_… id), optionally under a path prefix.","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"prefix":{"type":"string","description":"Path prefix filter"}},"required":["drive"],"additionalProperties":false}},{"name":"drive_read_file","description":"Read a file from a drive. Text comes back as utf-8 `content`; binary as `contentBase64`. Files over 1 MB are refused (use the skill scripts).","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"path":{"type":"string","description":"File path in the drive"}},"required":["drive","path"],"additionalProperties":false}},{"name":"drive_write_file","description":"Write/overwrite one file in a drive (ETag-safe: pass ifMatch to assert the version you read, otherwise the current version is used automatically).","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"path":{"type":"string","description":"Destination path in the drive"},"content":{"type":"string","description":"UTF-8 text content"},"contentBase64":{"type":"string","description":"Base64 content for binary files"},"contentType":{"type":"string","description":"Optional MIME type"},"ifMatch":{"type":"string","description":"Optional ETag precondition"}},"required":["drive","path"],"additionalProperties":false}},{"name":"drive_delete_file","description":"Delete one file from a drive.","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"path":{"type":"string","description":"File path"}},"required":["drive","path"],"additionalProperties":false}},{"name":"drive_move_file","description":"Move/rename a file inside a drive.","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"from":{"type":"string","description":"Current path"},"to":{"type":"string","description":"New path"}},"required":["drive","from","to"],"additionalProperties":false}},{"name":"drive_share","description":"Mint a scoped drive access token for another agent (perms read|write, optional path prefix + TTL like `7d`). The secret is returned ONCE.","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"perms":{"type":"string","description":"read (default) or write"},"pathPrefix":{"type":"string","description":"Restrict the token to this path prefix"},"ttl":{"type":"string","description":"Lifetime, e.g. 1h, 7d (omit for no expiry)"},"label":{"type":"string","description":"Human label for the token"}},"required":["drive"],"additionalProperties":false}},{"name":"drive_tokens","description":"List active share tokens of a drive (secrets are never shown again).","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"}},"required":["drive"],"additionalProperties":false}},{"name":"drive_revoke_token","description":"Revoke a drive share token.","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"tokenId":{"type":"string","description":"dtok_… id from drive_tokens"}},"required":["drive","tokenId"],"additionalProperties":false}},{"name":"drive_history","description":"Version timeline of a drive (every write is a restorable version).","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"}},"required":["drive"],"additionalProperties":false}},{"name":"drive_restore","description":"Restore a drive to a prior version (commits a new version; nothing is lost).","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"versionId":{"type":"string","description":"dv_… id from drive_history"}},"required":["drive","versionId"],"additionalProperties":false}},{"name":"list_variables","description":"List account variable NAMES (values are write-only — they are injected into proxy calls and container apps, never read back).","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"set_variable","description":"Create/update a write-only account secret (uppercase name). Injected as env vars into container apps and as ${VAR} into proxy calls. Optionally pin which upstream hosts may receive it.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"UPPER_SNAKE_CASE variable name"},"value":{"type":"string","description":"Secret value (never readable back)"},"allowedUpstreams":{"type":"array","items":{"type":"string"},"description":"Optional allow-list of upstream hosts"}},"required":["name","value"],"additionalProperties":false}},{"name":"delete_variable","description":"Delete an account variable.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"}},"required":["name"],"additionalProperties":false}}]}},"http_status":200,"headers":{"content-type":"application/json"}}},"prompts_list":{"status":"ok","latency_ms":178.68,"details":{"url":"https://dataecho.ai/mcp","payload":{"jsonrpc":"2.0","id":3,"result":{"prompts":[]}},"http_status":200,"headers":{"content-type":"application/json"}}},"prompt_get":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"resources_list":{"status":"ok","latency_ms":179.53,"details":{"url":"https://dataecho.ai/mcp","payload":{"jsonrpc":"2.0","id":5,"result":{"resources":[]}},"http_status":200,"headers":{"content-type":"application/json"}}},"resource_read":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"determinism_probe":{"status":"ok","latency_ms":180.32,"details":{"attempts":2,"successful":2,"matches":2,"stable_ratio":1.0,"baseline_signature":"0cdc3aed2776a0580d705a393f22cb0fe87a33ac832799f4af53a005cb5637c5","errors":[]}},"instruction_tool_reference_probe":{"status":"warning","latency_ms":null,"details":{"referenced_tools":["dataecho"],"missing_tools":["dataecho"],"observed_tool_count":26}},"session_resume_probe":{"status":"warning","latency_ms":null,"details":{"reason":"no_session_id","transport":"streamable-http","resume_expected":true,"protocol_version":"2025-03-26"}},"step_up_auth_probe":{"status":"missing","latency_ms":null,"details":{"oauth_present":false,"auth_required_checks":[],"supported_scopes":[],"scope_specificity_ratio":0.0,"broad_scopes":[],"challenge_headers":[],"step_up_signals":[],"minimal_scope_documented":false}},"transport_compliance_probe":{"status":"error","latency_ms":180.91,"details":{"transport":"streamable-http","session_id_present":false,"protocol_header_present":false,"last_event_id_visible":false,"requested_protocol_version":"2025-03-26","bad_protocol_status_code":200,"bad_protocol_payload":{"jsonrpc":"2.0","id":410,"result":{"tools":[{"name":"platform_info","description":"DataEcho platform overview: what it can host, auth state of this connection, docs links. Call this first if unsure.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"request_login_code","description":"Start sign-in: email a one-time code to the user. Follow with verify_login_code.","inputSchema":{"type":"object","properties":{"email":{"type":"string","description":"The user's email address"}},"required":["email"],"additionalProperties":false}},{"name":"verify_login_code","description":"Complete sign-in with the emailed code. Returns the apiKey ONCE — configure it as the `Authorization: Bearer <key>` header of this MCP connection (and/or save to ~/.artifact/credentials for the CLI scripts). Never echo it into chat.","inputSchema":{"type":"object","properties":{"email":{"type":"string","description":"Same email as request_login_code"},"code":{"type":"string","description":"The one-time code from the email"}},"required":["email","code"],"additionalProperties":false}},{"name":"publish_site","description":"Deploy files to a live URL. No slug → create a NEW site (works without auth; anonymous sites expire in 24h — always show the user the claimUrl). With slug → UPDATE that site (complete snapshot: send ALL files). A Dockerfile in the files makes it a server-side app (auth required; listen on process.env.PORT; persist under /data; poll app_status). Total payload ≤ 8 MB — for bigger sites use the dataecho skill scripts.","inputSchema":{"type":"object","properties":{"files":{"type":"array","description":"Files to publish. Each file: { path, content (utf-8 text) OR contentBase64 (binary), contentType? }. The publish is a COMPLETE snapshot — omitted files are removed on update.","items":{"type":"object","properties":{"path":{"type":"string","description":"Site-relative path, e.g. index.html or assets/app.js"},"content":{"type":"string","description":"UTF-8 text content (use for html/css/js/json/text)"},"contentBase64":{"type":"string","description":"Base64 content (use for binary files)"},"contentType":{"type":"string","description":"Optional MIME type; guessed from the extension if omitted"}},"required":["path"],"additionalProperties":false}},"slug":{"type":"string","description":"Existing site slug to update (omit to create a new site)"},"title":{"type":"string","description":"Viewer page title (used when there's no index.html)"},"description":{"type":"string","description":"Viewer page description"},"spa":{"type":"boolean","description":"Enable SPA fallback routing (serve index.html for unknown paths)"},"ttlSeconds":{"type":"number","description":"Expiry for authenticated sites, in seconds"},"claimToken":{"type":"string","description":"Claim token — required to update an anonymous site without auth"}},"required":["files"],"additionalProperties":false}},{"name":"claim_site","description":"Make a previously-anonymous site permanent under the authenticated account (requires auth + the claimToken from publish_site).","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Site slug"},"claimToken":{"type":"string","description":"Claim token returned by the anonymous publish"}},"required":["slug","claimToken"],"additionalProperties":false}},{"name":"list_sites","description":"List all sites owned by the authenticated account.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"search_sites","description":"Full-text search across the authenticated account's sites (names, metadata, and text content).","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query"},"limit":{"type":"number","description":"Max results (optional)"}},"required":["query"],"additionalProperties":false}},{"name":"get_site","description":"Full details + current file manifest of an owned site.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Site slug"}},"required":["slug"],"additionalProperties":false}},{"name":"update_site_metadata","description":"Patch site settings without redeploying: viewer title/description, SPA mode, TTL, password (string sets, null removes).","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Site slug"},"title":{"type":"string","description":"Viewer title"},"description":{"type":"string","description":"Viewer description"},"spaMode":{"type":"boolean","description":"SPA fallback routing"},"ttlSeconds":{"type":"number","description":"Expiry in seconds (null-like 0 not allowed; omit to keep)"},"password":{"type":"string","description":"Password-gate the site; pass an empty string to REMOVE the password"}},"required":["slug"],"additionalProperties":false}},{"name":"delete_site","description":"Permanently delete an owned site. Irreversible — confirm with the user first.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Site slug"}},"required":["slug"],"additionalProperties":false}},{"name":"app_status","description":"Build/run status of a container app deployed via publish_site with a Dockerfile. Poll until status is `live` or `failed`.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Site slug"},"logs":{"type":"boolean","description":"Include build logs"}},"required":["slug"],"additionalProperties":false}},{"name":"list_drives","description":"List the authenticated account's private cloud drives.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"create_drive","description":"Create a new private drive.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Drive name"}},"required":["name"],"additionalProperties":false}},{"name":"drive_list_files","description":"List files in a drive (by drive name or drv_… id), optionally under a path prefix.","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"prefix":{"type":"string","description":"Path prefix filter"}},"required":["drive"],"additionalProperties":false}},{"name":"drive_read_file","description":"Read a file from a drive. Text comes back as utf-8 `content`; binary as `contentBase64`. Files over 1 MB are refused (use the skill scripts).","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"path":{"type":"string","description":"File path in the drive"}},"required":["drive","path"],"additionalProperties":false}},{"name":"drive_write_file","description":"Write/overwrite one file in a drive (ETag-safe: pass ifMatch to assert the version you read, otherwise the current version is used automatically).","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"path":{"type":"string","description":"Destination path in the drive"},"content":{"type":"string","description":"UTF-8 text content"},"contentBase64":{"type":"string","description":"Base64 content for binary files"},"contentType":{"type":"string","description":"Optional MIME type"},"ifMatch":{"type":"string","description":"Optional ETag precondition"}},"required":["drive","path"],"additionalProperties":false}},{"name":"drive_delete_file","description":"Delete one file from a drive.","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"path":{"type":"string","description":"File path"}},"required":["drive","path"],"additionalProperties":false}},{"name":"drive_move_file","description":"Move/rename a file inside a drive.","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"from":{"type":"string","description":"Current path"},"to":{"type":"string","description":"New path"}},"required":["drive","from","to"],"additionalProperties":false}},{"name":"drive_share","description":"Mint a scoped drive access token for another agent (perms read|write, optional path prefix + TTL like `7d`). The secret is returned ONCE.","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"perms":{"type":"string","description":"read (default) or write"},"pathPrefix":{"type":"string","description":"Restrict the token to this path prefix"},"ttl":{"type":"string","description":"Lifetime, e.g. 1h, 7d (omit for no expiry)"},"label":{"type":"string","description":"Human label for the token"}},"required":["drive"],"additionalProperties":false}},{"name":"drive_tokens","description":"List active share tokens of a drive (secrets are never shown again).","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"}},"required":["drive"],"additionalProperties":false}},{"name":"drive_revoke_token","description":"Revoke a drive share token.","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"tokenId":{"type":"string","description":"dtok_… id from drive_tokens"}},"required":["drive","tokenId"],"additionalProperties":false}},{"name":"drive_history","description":"Version timeline of a drive (every write is a restorable version).","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"}},"required":["drive"],"additionalProperties":false}},{"name":"drive_restore","description":"Restore a drive to a prior version (commits a new version; nothing is lost).","inputSchema":{"type":"object","properties":{"drive":{"type":"string","description":"Drive name or drv_… id"},"versionId":{"type":"string","description":"dv_… id from drive_history"}},"required":["drive","versionId"],"additionalProperties":false}},{"name":"list_variables","description":"List account variable NAMES (values are write-only — they are injected into proxy calls and container apps, never read back).","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"set_variable","description":"Create/update a write-only account secret (uppercase name). Injected as env vars into container apps and as ${VAR} into proxy calls. Optionally pin which upstream hosts may receive it.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"UPPER_SNAKE_CASE variable name"},"value":{"type":"string","description":"Secret value (never readable back)"},"allowedUpstreams":{"type":"array","items":{"type":"string"},"description":"Optional allow-list of upstream hosts"}},"required":["name","value"],"additionalProperties":false}},{"name":"delete_variable","description":"Delete an account variable.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"}},"required":["name"],"additionalProperties":false}}]}},"bad_protocol_headers":{"content-type":"application/json"},"bad_protocol_error":null,"delete_status_code":null,"delete_error":null,"expired_session_status_code":null,"expired_session_error":null,"issues":["missing_session_id","missing_protocol_header","bad_protocol_not_rejected"]}},"utility_coverage_probe":{"status":"missing","latency_ms":181.51,"details":{"completions":{"advertised":false,"sample_target":null,"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"missing","http_status":200},"initialize_capability_keys":["tools"]}},"advanced_capabilities_probe":{"status":"warning","latency_ms":null,"details":{"capabilities":{"prompts":true,"resources":true,"completions":false,"roots":false,"sampling":false,"elicitation":false,"structured_outputs":false,"resource_links":false},"enabled_count":2,"enabled":["prompts","resources"],"initialize_capability_keys":["tools"]}},"tool_snapshot_probe":{"status":"ok","latency_ms":null,"details":{"current_tool_count":26,"previous_tool_count":26,"similarity":1.0,"added":[],"removed":[],"changed_outputs":[]}},"connector_replay_probe":{"status":"ok","latency_ms":null,"details":{"backward_compatible":true,"would_break_after_refresh":false,"added_tools":[],"removed_tools":[],"required_arg_breaks":[],"output_breaks":[],"additive_output_changes":[]}},"request_association_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_request_association_capabilities_advertised"}},"interactive_flow_probe":{"status":"ok","latency_ms":null,"details":{"risk_hits":[],"safe_hits":["login"],"oauth_supported":false,"prompt_available":false}},"action_safety_probe":{"status":"error","latency_ms":null,"details":{"summary":{"tool_count":26,"high_risk_tools":2,"destructive_tools":0,"exec_tools":2,"egress_tools":0,"secret_tools":4,"bulk_access_tools":0,"declared_non_read_only_tools":0,"annotation_conflict_tools":0,"risk_distribution":{"low":15,"medium":9,"high":2,"critical":0},"capability_distribution":{"undetermined":7,"write":9,"exec":2,"secrets":4,"read":11,"filesystem":4},"has_mutating_capability":true,"has_non_read_capability":true},"auth_present":false,"safeguard_count":2,"confirmation_signals":["delete_site"],"reason":null}},"official_registry_probe":{"status":"ok","latency_ms":null,"details":{"registry_source":"official_registry","registry_identifier":"ai.dataecho/mcp","direct_match":true,"official_peer_count":1}},"provenance_divergence_probe":{"status":"not_assessed","latency_ms":null,"details":{"direct_official_match":true,"registry_title":null,"server_card_title":null,"registry_version":null,"server_card_version":null,"registry_homepage":null,"server_card_homepage":null,"registry_repository":null,"server_card_repository":null,"drift_fields":[],"metadata_document_count":2,"compared_fields":["title","version","homepage","repository"],"readable_sources":["registry"],"comparable_field_count":0}},"schema_divergence_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_server_card_tools","compared_tool_count":0,"compared_dimensions":["server_name","server_version","declared_vs_observed_auth","tool_membership","parameter_names","required_parameters","parameter_types","output_schema_presence"],"server_name_mismatch":false,"card_server_name":null,"live_server_name":"dataecho","server_version_mismatch":false,"card_server_version":null,"live_server_version":"1.0.0","auth_scheme_mismatch":false}},"connector_publishability_probe":{"status":"warning","latency_ms":null,"details":{"transport":"streamable-http","tool_count":26,"high_risk_tools":2,"blockers":["protocol_version","session_resume","step_up_auth","transport_compliance","request_association","action_safety","server_card"],"criteria":{"remote_transport":true,"initialize":true,"tools_list":true,"protocol_version":false,"session_resume":false,"step_up_auth":false,"transport_compliance":false,"connector_replay":true,"request_association":false,"action_safety":false,"server_card":false,"tool_surface":true,"auth_flow":true}}}}},"active_alerts":[{"code":"instruction_tool_reference_mismatch","severity":"low","title":"Server instructions name unavailable tools","message":"Initialize instructions reference tools not present in tools/list: dataecho","addressee":"publisher"}],"maintainer_analytics":{},"public_server_reputation":{},"maintainer_response_quality":{},"maintainer_annotations":[],"maintainer_rebuttals":[],"security_posture_summary":{},"tool_security_inventory":[],"transport_compliance":{},"utility_coverage":{},"write_action_governance":{},"provenance_divergence":{},"alias_consolidation":{},"alert_routing":{},"authenticated_validation":{},"hosted_runtime":{},"action_controls_diff":null,"benchmark_tasks":[],"latest_capability_counts":{},"point_loss_breakdown":[],"verdict_traces":{},"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_d76683552e9c1b63","generated_at":"2026-08-15T00:27:51.642242+00:00","trust_evaluated_at":"2026-08-15T00:27:51.642242+00:00","evidence_revision":"886290bb483572e54885dada","source":"current_snapshot","server":"ai.dataecho/mcp","last_validated_at":"2026-08-14T15:54:38.105004+00:00","validation_age_hours":8.55,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-08-14T15:54:38.105004+00:00","age_hours":8.55,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":59.38,"raw_score":59.38,"confidence_score":100.0,"confidence_weighted_score":59.4,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":59.38,"display_score":59.38,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Block for production","why":"write/admin actions need confirmation safeguards + score below evaluation threshold","next_action":"revalidate, add safeguards, export policy","reason_count":2},"production_readiness_class":{"code":"needs_remediation","label":"Needs remediation","reason":"Current validation evidence shows operational or discovery gaps that should be fixed first."},"evidence_confidence":{"score":100.0,"label":"high","validation_age_hours":8.55,"live_check_count":15,"basis":{"evidence_bearing_validations":20,"affirmative_live_check_count":15,"validation_age_hours":8.55,"freshness_threshold_hours":24}},"active_alerts":[{"code":"instruction_tool_reference_mismatch","severity":"low","title":"Server instructions name unavailable tools"}],"active_alert_summary":{"critical":0,"high":0,"medium":0,"low":1,"high_or_critical":0,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-08-15T00:27:51.642242+00:00"}},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_d76683552e9c1b63","generated_at":"2026-08-15T00:27:51.642242+00:00","trust_evaluated_at":"2026-08-15T00:27:51.642242+00:00","evidence_revision":"886290bb483572e54885dada","source":"current_snapshot","server":"ai.dataecho/mcp","last_validated_at":"2026-08-14T15:54:38.105004+00:00","validation_age_hours":8.55,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-08-14T15:54:38.105004+00:00","age_hours":8.55,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":59.38,"raw_score":59.38,"confidence_score":100.0,"confidence_weighted_score":59.4,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":59.38,"display_score":59.38,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Block for production","why":"write/admin actions need confirmation safeguards + score below evaluation threshold","next_action":"revalidate, add safeguards, export policy","reason_count":2},"production_readiness_class":{"code":"needs_remediation","label":"Needs remediation","reason":"Current validation evidence shows operational or discovery gaps that should be fixed first."},"evidence_confidence":{"score":100.0,"label":"high","validation_age_hours":8.55,"live_check_count":15,"basis":{"evidence_bearing_validations":20,"affirmative_live_check_count":15,"validation_age_hours":8.55,"freshness_threshold_hours":24}},"active_alerts":[{"code":"instruction_tool_reference_mismatch","severity":"low","title":"Server instructions name unavailable tools"}],"active_alert_summary":{"critical":0,"high":0,"medium":0,"low":1,"high_or_critical":0,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-08-15T00:27:51.642242+00:00"}},"agent_commerce":{},"latest_claim":null,"maintainer_profile_slug":null,"watch_summary":{},"partial":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"trust_evaluated_at":"2026-08-15T00:27:51.642242+00:00","evidence_revision":"886290bb483572e54885dada","active_alert_summary":{"critical":0,"high":0,"medium":0,"low":1,"high_or_critical":0,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-08-15T00:27:51.642242+00:00"},"owner_opted_out":false,"observed_attention":{"schema":"verify.observed_attention.v1","window_days":30,"level":"none","label":"No observed attention","summary":"No recent machine-readable trust or discovery activity observed for this server.","segments":{"useful_ai_user":{"level":"none","observed":false,"description":"AI-assisted user sessions such as ChatGPT/User or Claude/User."},"machine_trust_evaluator":{"level":"none","observed":false,"description":"Synthetic sessions inspecting multiple trust surfaces such as report, policy, ledger, badge, trust-summary, or compare."},"possible_agent_or_script":{"level":"none","observed":false,"description":"Structured direct sessions with rapid profile, compare, report, policy, badge, or trust-surface fan-out."},"isolated_machine_surface":{"level":"none","observed":false,"description":"Aged-out direct synthetic singleton sessions that touched a machine-readable trust surface without becoming a broader evaluator."},"ai_crawler":{"level":"none","observed":false,"description":"Known AI crawler activity such as ClaudeBot, GPTBot, or similar crawlers."},"search_crawler":{"level":"none","observed":false,"description":"Search and SEO crawler activity."},"browser_like_automation":{"level":"none","observed":false,"description":"Browser-like synthetic sessions with rapid structured endpoint activity."},"confirmed_human":{"level":"none","observed":false,"description":"Confirmed browser-session human activity."}},"surfaces_observed":{"server_profile":false,"compare":false,"compare_json":false,"compare_api":false,"report_json":false,"policy":false,"ledger":false,"badge_metadata":false,"badge_svg":false,"trust_summary":false,"mcp_tool":false},"claim_prompt":{"recommended":false,"reason":"No claim prompt is recommended from observed attention in the current window."},"notes":["Observed attention is based on segmented first-party telemetry.","Crawler and evaluator activity is not treated as confirmed human demand.","Public levels are bucketed to avoid exposing raw traffic counts."]},"owner_activation":{"claim_recommended":false,"reason":"no_observed_attention"},"snapshot_id":"trustsnap_d76683552e9c1b63"}],"rows":[{"label":"Snapshot ID","values":["trustsnap_d76683552e9c1b63"]},{"label":"Status","values":["healthy"]},{"label":"Score","values":[59.38]},{"label":"Production readiness","values":["Needs remediation"]},{"label":"Production trust decision","values":["Block for production"]},{"label":"Recommended policy","values":["Block"]},{"label":"Observed Attention","values":["No observed attention"]},{"label":"Evidence confidence","values":[100.0]},{"label":"Freshness","values":["n/a"]},{"label":"Latency","values":["n/a"]},{"label":"Spec recency","values":[2.0]},{"label":"Session resume","values":[3.0]},{"label":"Step-up auth","values":[0.0]},{"label":"Transport compliance","values":[0.0]},{"label":"Utility coverage","values":[0.0]},{"label":"Publishability","values":[1.0]},{"label":"Connector replay","values":[4.0]},{"label":"Request association","values":[0.0]},{"label":"Action safety","values":[1.0]},{"label":"Registry presence","values":[4.0]},{"label":"Provenance divergence","values":[null]},{"label":"Client compatibility: ChatGPT","values":["unknown"]},{"label":"Client compatibility: Claude","values":["unknown"]},{"label":"Write-action publishing","values":["unknown"]},{"label":"Snapshot churn risk","values":["unknown"]},{"label":"Transport","values":["streamable-http"]},{"label":"Auth","values":["Unauthenticated / none"]},{"label":"Tools","values":[26]},{"label":"Prompts","values":[0]},{"label":"Resources","values":[0]},{"label":"OAuth","values":[false]},{"label":"DCR","values":[false]},{"label":"Taxonomy","values":[""]},{"label":"Recommended for","values":["none"]},{"label":"Top alerts","values":["Server instructions name unavailable tools"]}],"partial":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"cache_note":"Compact compare fallback response; deep compare evidence is deferred to protect web capacity.","trust_evaluated_at":"2026-08-15T00:27:51.642242+00:00","materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-08-15T00:27:51.688995+00:00"}}