Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": false,
"confirmation_signals": [
"submit_agent",
"subscribe"
],
"safeguard_count": 2,
"summary": {
"bulk_access_tools": 2,
"capability_distribution": {
"exec": 4,
"export": 2,
"filesystem": 4,
"network": 12,
"read": 16,
"secrets": 2,
"write": 4
},
"destructive_tools": 0,
"egress_tools": 6,
"exec_tools": 4,
"high_risk_tools": 3,
"risk_distribution": {
"critical": 1,
"high": 2,
"low": 3,
"medium": 11
},
"secret_tools": 2,
"tool_count": 17
}
},
"latency_ms": null,
"status": "error"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": false,
"resource_links": false,
"resources": false,
"roots": false,
"sampling": false,
"structured_outputs": false
},
"enabled": [],
"enabled_count": 0,
"initialize_capability_keys": [
"tools"
]
},
"latency_ms": null,
"status": "missing"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"transport_compliance",
"action_safety"
],
"criteria": {
"action_safety": false,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": true,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": false
},
"high_risk_tools": 3,
"tool_count": 17,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"reason": "no_historical_snapshot"
},
"latency_ms": null,
"status": "missing"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "36f7b162f3d5586171852d1535b45533eb79f84e9fefba50052aaea73319a6a5",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 9.81,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"tools": {}
},
"protocolVersion": "2024-11-05",
"serverInfo": {
"name": "hlido-agent-reviews",
"version": "3.3.0-workers"
}
}
},
"url": "https://hlido.eu/mcp"
},
"latency_ms": 76.11,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": false,
"prompt_available": false,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "missing"
},
"oauth_authorization_server": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"oauth_protected_resource": {
"details": {
"error": "Client error '404 Not Found' for url 'https://hlido.eu/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://hlido.eu/.well-known/oauth-protected-resource"
},
"latency_ms": 43.71,
"status": "error"
},
"official_registry_probe": {
"details": {
"direct_match": false,
"official_identifiers": [
"ai.agentutility/mcp-bestiary",
"ai.ai-akari/one-minute-akari",
"ai.artidrop/artidrop",
"ai.agentutility/mcp-browser-workflow",
"ai.adramp/google-ads",
"ai.adweave/meta-ads-mcp",
"ai.agentutility/mcp-edge-finance",
"ai.aetherwealth/mcp",
"ai.afmr/discovery",
"ai.agentberg/agentberg"
],
"official_peer_count": 10,
"registry_source": "glama_registry"
},
"latency_ms": null,
"status": "warning"
},
"openid_configuration": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "text/plain; charset=utf-8"
},
"http_status": 200,
"url": "https://hlido.eu/robots.txt"
},
"latency_ms": 84.11,
"status": "ok"
},
"prompt_get": {
"details": {
"reason": "no_prompt_name"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found: prompts/list"
},
"id": 3,
"jsonrpc": "2.0"
},
"url": "https://hlido.eu/mcp"
},
"latency_ms": 7.43,
"status": "error"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2024-11-05",
"lag_days": 385,
"latest_known_version": "2025-11-25",
"releases_behind": 3,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"direct_official_match": false,
"drift_fields": [],
"metadata_document_count": 2,
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": "hlido-agent-reviews",
"server_card_version": "3.2.0"
},
"latency_ms": null,
"status": "ok"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"reason": "no_resource_uri"
},
"latency_ms": null,
"status": "missing"
},
"resources_list": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found: resources/list"
},
"id": 5,
"jsonrpc": "2.0"
},
"url": "https://hlido.eu/mcp"
},
"latency_ms": 7.3,
"status": "error"
},
"server_card": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"capabilities": {
"prompts": false,
"resources": false,
"tools": true
},
"contact": "ankit@hlido.eu",
"description": "The independent trust layer for AI agents \u2014 each agent hands-on tested for one evidence-backed Laddoo Score (0-100). Query trust checks, scorecards, incidents, and recommendations over MCP.",
"documentation": "https://hlido.eu/llms.txt",
"endpoint": "https://hlido.eu/mcp",
"publisher": "hlido.eu",
"serverInfo": {
"name": "hlido-agent-reviews",
"version": "3.2.0"
},
"tools": [
{
"description": "The core Hlido trust query: is a specific AI agent trustworthy? Given one agent (by Hlido slug or product/homepage URL) it returns the independent Laddoo trust score (0-100), tier (VITAL/STEADY/FADING/FLATLINE), a one-line verdict, a claim-verification summary, and any known incidents. Call this FIRST \u2014 before delegating to, installing, or relying on another agent \u2014 to get a fast trust read. Returns no_review_found if the agent isn't in Hlido's corpus (then call request_quick_audit). For the full claim-by-claim evidence, follow up with get_scorecard.",
"name": "trust_check"
},
{
"description": "Discover Hlido-reviewed agents that match a free-text need, ranked by trust. Returns reviewed agents at or above a minimum tier, each with its Laddoo score, tier, and review URL. Use this for keyword/need-based discovery; for semantic task-matching prefer find_similar_agents, and for structured constraint filters (category/score/tier) prefer recommend.",
"name": "find_trusted"
},
{
"description": "Fact-check one specific marketing or capability claim about an agent against Hlido's independent testing. Returns Hlido's verdict (PASS/FAIL/PARTIAL/UNKNOWN) with a quoted evidence snippet and its source surface \u2014 or an honest null when that exact claim wasn't tested (absence of evidence, not proof). Use this to validate a vendor's specific promise before you rely on it.",
"name": "verify_claim"
},
{
"description": "Head-to-head trust comparison of 2-5 Hlido-reviewed agents. Returns each agent's Laddoo score, tier, dimension scores, and key claim verdicts side by side so you can pick the most trustworthy option for a task. Use this once you've shortlisted candidates (via find_trusted, find_similar_agents, or recommend) and need a direct comparison.",
"name": "compare_agents"
},
{
"description": "Nominate a new AI agent for Hlido to review. Use this when an agent isn't in Hlido's corpus yet (trust_check returned no_review_found) and you want it added. Returns a confirmation with a tracking reference; the review is queued and produces a public scorecard. If you need a verdict right now rather than a queued review, use request_quick_audit (faster, rate-limited) instead.",
"name": "submit_agent"
},
{
"description": "Check any AI agent's EU AI Act Article-50 transparency posture \u2014 including agents Hlido has NOT reviewed yet. Returns two clearly separated layers: (1) Hlido's independent register verdict when the agent is in our reviewed corpus, and (2) a live public-surface probe of the Article-50 signals (AI-interaction disclosure, machine-readable marking/provenance, deepfake/synthetic labelling, detection tool). Use before adopting or delegating to a tool ahead of the 2026-08-02 transparency obligations. The live probe is a first-pass surface read, NOT a compliance determination and NOT legal advice; an undetected signal means 'not discoverable on the public surface', not 'non-compliant'. Unreviewed agents are automatically queued for a full independent review.",
"name": "verify_transparency"
},
{
"description": "Fetch the full sanitized claim-vs-evidence scorecard for one Hlido-reviewed agent. Returns every claim, verdict, evidence quote, source surface, and (for CLI/API tests) the captured command + exit_code + duration. Schema v1.0. Use this for agent-to-agent pre-flight evaluation.",
"name": "get_scorecard"
},
{
"description": "Fetch published incidents from Hlido's NTSB-style failure registry \u2014 real observed agent failures (availability outages, regressions, hallucinations, safety issues) plus Hlido self-reported process incidents, each with severity, evidence, and vendor-response status. Filter by agent slug, severity, or category. Use this before delegating to an agent to check for known recent failures; an empty list means no published incidents, not a guarantee of reliability.",
"name": "get_incidents"
},
{
"description": "Report an issue with a Hlido review (stale info, wrong verdict, missing claim, broken link). Use when calling get_scorecard or trust_check returns data you can prove is incorrect. Hlido's R1 maintenance routine processes reports daily and fires re-tests via dispute-retest sub-agent.",
"name": "report_review_issue"
},
{
"description": "Request that Hlido audit a NEW AI agent that has no review yet. Use this when trust_check or get_scorecard returns no_review_found and you need a verdict before delegating to the unknown agent. Returns a future scorecard URL + ETA. Free-tier rate-limited (5/day per anonymous, 50/day per identified). The audit produces signed evidence + claim verification within ~24h (sooner if founder triggers manually).",
"name": "request_quick_audit"
},
{
"description": "Semantic search over Hlido's review corpus. Given a task description (e.g. 'I need an agent that can refactor TypeScript and edit multiple files at once'), returns the top-N reviewed agents ranked by embedding similarity, each with their Laddoo score, evidence_tier, and review URL. Use this when you have a task in mind and want Hlido's recommendation \u2014 much better than substring matching via find_trusted.",
"name": "find_similar_agents"
},
{
"description": "Preview \u2014 Wave 3 will add persistent webhook + RSS subscriptions. For now this returns the agent's current state plus advisory polling instructions (RSS at /changelog/feed.xml or polling /data/attestations/{slug}.json). Use this to register interest in being notified when a slug's verdict changes.",
"name": "subscribe"
},
{
"description": "Structured natural-language explanation of why a Hlido-reviewed agent has its current score. Pulls claim-by-claim evidence from the published scorecard. Pass an optional dimension (one of: reliability, transparency, integration, security, evidence) to filter; omit for the full picture. Returns each claim with verdict (PASS|FAIL|PARTIAL|UNKNOWN), a quoted evidence snippet, plus a top-line synthesis.",
"name": "explain"
},
{
"description": "Constraint-driven recommendation across Hlido's reviewed agents. Pass any combination of: category, min_score, tier, use_case, max_results. Returns ranked candidates each with a why_match line. Use this when you have buyer constraints (budget, category, capability) and want Hlido's filtered shortlist instead of one-by-one trust_check calls.",
"name": "recommend"
},
{
"description": "Fetch the behavioral evaluation trace for a Hlido-reviewed agent \u2014 per-task pass/fail, adapter used, behavioral tier, and signed trace link. Returns status 'not_yet_bench_tested' if the slug hasn't been evaluated yet, or 'not_testable' if the agent's interface doesn't support automated bench runs. Use this when you need evidence that an agent's coding/task behaviour has been independently verified beyond marketing claims.",
"name": "get_behavioral_trace"
},
{
"description": "Check whether a Hlido-reviewed agent is ready to be delegated to / transacted with in the agentic-commerce world (MCP/ACP/AP2). Returns its independent Agentic-Commerce Readiness score (0-100), band (COMMERCE-READY/INTEGRABLE/SURFACE-ONLY/CLOSED), the programmatic surfaces it exposes, and the evidence basis. Call this before an orchestrator delegates a paid/identity-bearing task to another agent.",
"name": "commerce_check"
},
{
"description": "On-demand independent SAFETY scan of an MCP server \u2014 call this BEFORE installing or connecting to one. Give it an HTTP(S) MCP endpoint URL (scanned live in seconds), or an npm/PyPI package name or GitHub repo (queued for an isolated sandbox scan \u2014 local stdio servers execute code, so Hlido never runs them inline). Returns the safety tier (SAFE/CAUTION/RISKY/DANGEROUS), tool-poisoning detection (the malice signal), dangerous-capability red-flags (shell/code-eval/fs-write/egress/secrets) with per-tool evidence, and auth posture. Tier = blast radius if hijacked, not maintainer trustworthiness. A server Hlido hasn't scanned returns not_scanned \u2014 never assumed safe. Register of already-scanned servers: https://hlido.eu/mcp/",
"name": "scan_mcp"
}
],
"transport": {
"type": "streamable-http"
},
"transports": [
"streamable-http",
"http"
],
"url": "https://hlido.eu/mcp"
},
"url": "https://hlido.eu/.well-known/mcp/server-card.json"
},
"latency_ms": 168.65,
"status": "ok"
},
"session_resume_probe": {
"details": {
"protocol_version": "2024-11-05",
"reason": "no_session_id",
"resume_expected": true,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": false,
"oauth_present": false,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "missing"
},
"tool_snapshot_probe": {
"details": {
"current_tool_count": 17,
"reason": "no_historical_snapshot"
},
"latency_ms": null,
"status": "missing"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "The core Hlido trust query: is a specific AI agent trustworthy? Given one agent (by Hlido slug or product/homepage URL) it returns the independent Laddoo trust score (0-100), tier (VITAL/STEADY/FADING/FLATLINE), a one-line verdict, a claim-verification summary, and any known incidents. Call this FIRST \u2014 before delegating to, installing, or relying on another agent \u2014 to get a fast trust read. Returns no_review_found if the agent isn't in Hlido's corpus (then call request_quick_audit). For the full claim-by-claim evidence, follow up with get_scorecard.",
"inputSchema": {
"properties": {
"agent_or_url": {
"description": "The agent to check: either its Hlido slug (e.g. 'aider', 'cursor') or its product/homepage URL (e.g. 'https://cursor.com'). A URL is matched to the closest reviewed agent.",
"type": "string"
},
"use_case": {
"description": "Optional. The task you're considering this agent for (e.g. 'multi-file TypeScript refactor'); tailors the verdict to that use case when provided.",
"type": "string"
}
},
"required": [
"agent_or_url"
],
"type": "object"
},
"name": "trust_check"
},
{
"description": "Discover Hlido-reviewed agents that match a free-text need, ranked by trust. Returns reviewed agents at or above a minimum tier, each with its Laddoo score, tier, and review URL. Use this for keyword/need-based discovery; for semantic task-matching prefer find_similar_agents, and for structured constraint filters (category/score/tier) prefer recommend.",
"inputSchema": {
"properties": {
"limit": {
"default": 10,
"description": "Maximum number of agents to return (default 10).",
"type": "integer"
},
"min_tier": {
"default": "STEADY",
"description": "Minimum trust tier to include (VITAL is strictest, FLATLINE allows all). Defaults to STEADY.",
"enum": [
"VITAL",
"STEADY",
"FADING",
"FLATLINE"
],
"type": "string"
},
"need": {
"description": "Free-text description of the capability you need (e.g. 'CLI coding agent that edits multiple files at once').",
"type": "string"
}
},
"required": [
"need"
],
"type": "object"
},
"name": "find_trusted"
},
{
"description": "Fact-check one specific marketing or capability claim about an agent against Hlido's independent testing. Returns Hlido's verdict (PASS/FAIL/PARTIAL/UNKNOWN) with a quoted evidence snippet and its source surface \u2014 or an honest null when that exact claim wasn't tested (absence of evidence, not proof). Use this to validate a vendor's specific promise before you rely on it.",
"inputSchema": {
"properties": {
"agent": {
"description": "The agent's Hlido slug or product URL (e.g. 'cursor').",
"type": "string"
},
"claim": {
"description": "The specific claim to verify, in plain language (e.g. 'works offline' or 'SOC 2 compliant').",
"type": "string"
}
},
"required": [
"agent",
"claim"
],
"type": "object"
},
"name": "verify_claim"
},
{
"description": "Head-to-head trust comparison of 2-5 Hlido-reviewed agents. Returns each agent's Laddoo score, tier, dimension scores, and key claim verdicts side by side so you can pick the most trustworthy option for a task. Use this once you've shortlisted candidates (via find_trusted, find_similar_agents, or recommend) and need a direct comparison.",
"inputSchema": {
"properties": {
"slugs": {
"description": "List of 2 to 5 Hlido agent slugs to compare side by side (e.g. ['aider','cursor','opencode']).",
"items": {
"description": "A Hlido agent slug (e.g. 'aider').",
"type": "string"
},
"maxItems": 5,
"minItems": 2,
"type": "array"
}
},
"required": [
"slugs"
],
"type": "object"
},
"name": "compare_agents"
},
{
"description": "Nominate a new AI agent for Hlido to review. Use this when an agent isn't in Hlido's corpus yet (trust_check returned no_review_found) and you want it added. Returns a confirmation with a tracking reference; the review is queued and produces a public scorecard. If you need a verdict right now rather than a queued review, use request_quick_audit (faster, rate-limited) instead.",
"inputSchema": {
"properties": {
"email": {
"description": "Optional contact email for the submitter \u2014 if you want a reply or a heads-up when the review publishes. Providing it always flags the submission to the Hlido team.",
"type": "string"
},
"name": {
"description": "Human-readable agent name (e.g. 'Example Coder').",
"type": "string"
},
"note": {
"description": "Optional context: what the agent does, or why it's worth reviewing.",
"type": "string"
},
"url": {
"description": "The agent's product or homepage URL (e.g. 'https://example.com').",
"type": "string"
}
},
"required": [
"url",
"name"
],
"type": "object"
},
"name": "submit_agent"
},
{
"description": "Check any AI agent's EU AI Act Article-50 transparency posture \u2014 including agents Hlido has NOT reviewed yet. Returns two clearly separated layers: (1) Hlido's independent register verdict when the agent is in our reviewed corpus, and (2) a live public-surface probe of the Article-50 signals (AI-interaction disclosure, machine-readable marking/provenance, deepfake/synthetic labelling, detection tool). Use before adopting or delegating to a tool ahead of the 2026-08-02 transparency obligations. The live probe is a first-pass surface read, NOT a compliance determination and NOT legal advice; an undetected signal means 'not discoverable on the public surface', not 'non-compliant'. Unreviewed agents are automatically queued for a full independent review.",
"inputSchema": {
"properties": {
"url": {
"description": "The agent's product or homepage URL (e.g. 'https://example.com'), or its Hlido slug.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "verify_transparency"
},
{
"description": "Fetch the full sanitized claim-vs-evidence scorecard for one Hlido-reviewed agent. Returns every claim, verdict, evidence quote, source surface, and (for CLI/API tests) the captured command + exit_code + duration. Schema v1.0. Use this for agent-to-agent pre-flight evaluation.",
"inputSchema": {
"properties": {
"slug": {
"description": "The agent's Hlido slug (e.g. 'aider', 'gumloop')",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_scorecard"
},
{
"description": "Fetch published incidents from Hlido's NTSB-style failure registry \u2014 real observed agent failures (availability outages, regressions, hallucinations, safety issues) plus Hlido self-reported process incidents, each with severity, evidence, and vendor-response status. Filter by agent slug, severity, or category. Use this before delegating to an agent to check for known recent failures; an empty list means no published incidents, not a guarantee of reliability.",
"inputSchema": {
"properties": {
"category": {
"description": "Optional category filter",
"enum": [
"hallucination",
"regression",
"safety",
"availability",
"cost",
"other"
],
"type": "string"
},
"limit": {
"default": 20,
"description": "Max results (default 20, max 100)",
"type": "integer"
},
"severity": {
"description": "Optional minimum-interest filter (exact match)",
"enum": [
"low",
"medium",
"high",
"critical"
],
"type": "string"
},
"slug": {
"description": "Optional: only incidents for this agent slug",
"type": "string"
}
},
"type": "object"
},
"name": "get_incidents"
},
{
"description": "Report an issue with a Hlido review (stale info, wrong verdict, missing claim, broken link). Use when calling get_scorecard or trust_check returns data you can prove is incorrect. Hlido's R1 maintenance routine processes reports daily and fires re-tests via dispute-retest sub-agent.",
"inputSchema": {
"properties": {
"detail": {
"description": "What's wrong, with a concrete reference (URL, claim id, etc) if possible",
"type": "string"
},
"issue_type": {
"description": "Category of the report",
"enum": [
"stale",
"wrong_verdict",
"missing_claim",
"broken_link",
"other"
],
"type": "string"
},
"reporter": {
"description": "Optional self-identifier \u2014 agent name or email \u2014 purely informational",
"type": "string"
},
"slug": {
"description": "The slug whose review has the issue",
"type": "string"
}
},
"required": [
"slug",
"issue_type",
"detail"
],
"type": "object"
},
"name": "report_review_issue"
},
{
"description": "Request that Hlido audit a NEW AI agent that has no review yet. Use this when trust_check or get_scorecard returns no_review_found and you need a verdict before delegating to the unknown agent. Returns a future scorecard URL + ETA. Free-tier rate-limited (5/day per anonymous, 50/day per identified). The audit produces signed evidence + claim verification within ~24h (sooner if founder triggers manually).",
"inputSchema": {
"properties": {
"name": {
"description": "Optional human-readable name (we'll derive from URL if missing)",
"type": "string"
},
"requester": {
"description": "Optional self-identifier \u2014 agent name, email, or session id \u2014 for rate-limiting + follow-up",
"type": "string"
},
"url": {
"description": "Homepage or product URL of the agent to audit",
"type": "string"
},
"why": {
"description": "Optional one-liner: why are you considering this agent? helps us prioritize",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "request_quick_audit"
},
{
"description": "Semantic search over Hlido's review corpus. Given a task description (e.g. 'I need an agent that can refactor TypeScript and edit multiple files at once'), returns the top-N reviewed agents ranked by embedding similarity, each with their Laddoo score, evidence_tier, and review URL. Use this when you have a task in mind and want Hlido's recommendation \u2014 much better than substring matching via find_trusted.",
"inputSchema": {
"properties": {
"description": {
"description": "Free-text description of the task or capability you need",
"type": "string"
},
"min_score": {
"default": 0,
"description": "Minimum Laddoo score filter (default 0)",
"type": "integer"
},
"top_k": {
"default": 5,
"description": "Number of matches to return (default 5, max 20)",
"type": "integer"
}
},
"required": [
"description"
],
"type": "object"
},
"name": "find_similar_agents"
},
{
"description": "Preview \u2014 Wave 3 will add persistent webhook + RSS subscriptions. For now this returns the agent's current state plus advisory polling instructions (RSS at /changelog/feed.xml or polling /data/attestations/{slug}.json). Use this to register interest in being notified when a slug's verdict changes.",
"inputSchema": {
"properties": {
"channel": {
"description": "Preferred notification channel. webhook is advisory only until Wave 3 ships.",
"enum": [
"rss",
"json",
"webhook"
],
"type": "string"
},
"slug": {
"description": "The Hlido slug to subscribe to (e.g. 'cursor', 'aider')",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "subscribe"
},
{
"description": "Structured natural-language explanation of why a Hlido-reviewed agent has its current score. Pulls claim-by-claim evidence from the published scorecard. Pass an optional dimension (one of: reliability, transparency, integration, security, evidence) to filter; omit for the full picture. Returns each claim with verdict (PASS|FAIL|PARTIAL|UNKNOWN), a quoted evidence snippet, plus a top-line synthesis.",
"inputSchema": {
"properties": {
"dimension": {
"description": "Optional dimension filter. Run without and check supported_dimensions in response if unsure.",
"type": "string"
},
"slug": {
"description": "The agent's Hlido slug",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "explain"
},
{
"description": "Constraint-driven recommendation across Hlido's reviewed agents. Pass any combination of: category, min_score, tier, use_case, max_results. Returns ranked candidates each with a why_match line. Use this when you have buyer constraints (budget, category, capability) and want Hlido's filtered shortlist instead of one-by-one trust_check calls.",
"inputSchema": {
"properties": {
"constraints": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Filter by category (e.g. 'Coding', 'Voice', 'Productivity')",
"type": "string"
},
"max_results": {
"default": 5,
"description": "Cap on results (default 5, max 25)",
"type": "integer"
},
"min_score": {
"default": 0,
"description": "Minimum Laddoo score (0-100)",
"type": "integer"
},
"tier": {
"description": "Minimum tier filter (VITAL strictest, FLATLINE allows all)",
"enum": [
"VITAL",
"STEADY",
"FADING",
"FLATLINE"
],
"type": "string"
},
"use_case": {
"description": "Free-text capability description for ranking (e.g. 'multi-file refactor in TypeScript')",
"type": "string"
}
},
"type": "object"
}
},
"required": [
"constraints"
],
"type": "object"
},
"name": "recommend"
},
{
"description": "Fetch the behavioral evaluation trace for a Hlido-reviewed agent \u2014 per-task pass/fail, adapter used, behavioral tier, and signed trace link. Returns status 'not_yet_bench_tested' if the slug hasn't been evaluated yet, or 'not_testable' if the agent's interface doesn't support automated bench runs. Use this when you need evidence that an agent's coding/task behaviour has been independently verified beyond marketing claims.",
"inputSchema": {
"properties": {
"slug": {
"description": "The Hlido slug to fetch behavioral trace for (e.g. 'aider', 'opencode')",
"type": "string"
},
"spec_version": {
"default": "v0.1",
"description": "Behavioral spec version (default 'v0.1'). Omit to get the latest available.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_behavioral_trace"
},
{
"description": "Check whether a Hlido-reviewed agent is ready to be delegated to / transacted with in the agentic-commerce world (MCP/ACP/AP2). Returns its independent Agentic-Commerce Readiness score (0-100), band (COMMERCE-READY/INTEGRABLE/SURFACE-ONLY/CLOSED), the programmatic surfaces it exposes, and the evidence basis. Call this before an orchestrator delegates a paid/identity-bearing task to another agent.",
"inputSchema": {
"properties": {
"agent_or_url": {
"description": "The agent to check: either its Hlido slug (e.g. 'voltagent', 'aider') or its product/homepage URL. A URL is matched to the closest reviewed agent.",
"type": "string"
}
},
"required": [
"agent_or_url"
],
"type": "object"
},
"name": "commerce_check"
},
{
"description": "On-demand independent SAFETY scan of an MCP server \u2014 call this BEFORE installing or connecting to one. Give it an HTTP(S) MCP endpoint URL (scanned live in seconds), or an npm/PyPI package name or GitHub repo (queued for an isolated sandbox scan \u2014 local stdio servers execute code, so Hlido never runs them inline). Returns the safety tier (SAFE/CAUTION/RISKY/DANGEROUS), tool-poisoning detection (the malice signal), dangerous-capability red-flags (shell/code-eval/fs-write/egress/secrets) with per-tool evidence, and auth posture. Tier = blast radius if hijacked, not maintainer trustworthiness. A server Hlido hasn't scanned returns not_scanned \u2014 never assumed safe. Register of already-scanned servers: https://hlido.eu/mcp/",
"inputSchema": {
"properties": {
"requester": {
"description": "Optional self-identifier \u2014 agent name or email \u2014 for follow-up when a queued scan completes.",
"type": "string"
},
"server": {
"description": "The MCP server to scan: an HTTP(S) MCP endpoint URL (e.g. 'https://mcp.example.com/mcp' \u2014 scanned live), OR an npm package (e.g. '@modelcontextprotocol/server-filesystem'), PyPI package, or GitHub repo URL (queued for sandbox scan).",
"type": "string"
}
},
"required": [
"server"
],
"type": "object"
},
"name": "scan_mcp"
}
]
}
},
"url": "https://hlido.eu/mcp"
},
"latency_ms": 8.92,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json; charset=utf-8"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "The core Hlido trust query: is a specific AI agent trustworthy? Given one agent (by Hlido slug or product/homepage URL) it returns the independent Laddoo trust score (0-100), tier (VITAL/STEADY/FADING/FLATLINE), a one-line verdict, a claim-verification summary, and any known incidents. Call this FIRST \u2014 before delegating to, installing, or relying on another agent \u2014 to get a fast trust read. Returns no_review_found if the agent isn't in Hlido's corpus (then call request_quick_audit). For the full claim-by-claim evidence, follow up with get_scorecard.",
"inputSchema": {
"properties": {
"agent_or_url": {
"description": "The agent to check: either its Hlido slug (e.g. 'aider', 'cursor') or its product/homepage URL (e.g. 'https://cursor.com'). A URL is matched to the closest reviewed agent.",
"type": "string"
},
"use_case": {
"description": "Optional. The task you're considering this agent for (e.g. 'multi-file TypeScript refactor'); tailors the verdict to that use case when provided.",
"type": "string"
}
},
"required": [
"agent_or_url"
],
"type": "object"
},
"name": "trust_check"
},
{
"description": "Discover Hlido-reviewed agents that match a free-text need, ranked by trust. Returns reviewed agents at or above a minimum tier, each with its Laddoo score, tier, and review URL. Use this for keyword/need-based discovery; for semantic task-matching prefer find_similar_agents, and for structured constraint filters (category/score/tier) prefer recommend.",
"inputSchema": {
"properties": {
"limit": {
"default": 10,
"description": "Maximum number of agents to return (default 10).",
"type": "integer"
},
"min_tier": {
"default": "STEADY",
"description": "Minimum trust tier to include (VITAL is strictest, FLATLINE allows all). Defaults to STEADY.",
"enum": [
"VITAL",
"STEADY",
"FADING",
"FLATLINE"
],
"type": "string"
},
"need": {
"description": "Free-text description of the capability you need (e.g. 'CLI coding agent that edits multiple files at once').",
"type": "string"
}
},
"required": [
"need"
],
"type": "object"
},
"name": "find_trusted"
},
{
"description": "Fact-check one specific marketing or capability claim about an agent against Hlido's independent testing. Returns Hlido's verdict (PASS/FAIL/PARTIAL/UNKNOWN) with a quoted evidence snippet and its source surface \u2014 or an honest null when that exact claim wasn't tested (absence of evidence, not proof). Use this to validate a vendor's specific promise before you rely on it.",
"inputSchema": {
"properties": {
"agent": {
"description": "The agent's Hlido slug or product URL (e.g. 'cursor').",
"type": "string"
},
"claim": {
"description": "The specific claim to verify, in plain language (e.g. 'works offline' or 'SOC 2 compliant').",
"type": "string"
}
},
"required": [
"agent",
"claim"
],
"type": "object"
},
"name": "verify_claim"
},
{
"description": "Head-to-head trust comparison of 2-5 Hlido-reviewed agents. Returns each agent's Laddoo score, tier, dimension scores, and key claim verdicts side by side so you can pick the most trustworthy option for a task. Use this once you've shortlisted candidates (via find_trusted, find_similar_agents, or recommend) and need a direct comparison.",
"inputSchema": {
"properties": {
"slugs": {
"description": "List of 2 to 5 Hlido agent slugs to compare side by side (e.g. ['aider','cursor','opencode']).",
"items": {
"description": "A Hlido agent slug (e.g. 'aider').",
"type": "string"
},
"maxItems": 5,
"minItems": 2,
"type": "array"
}
},
"required": [
"slugs"
],
"type": "object"
},
"name": "compare_agents"
},
{
"description": "Nominate a new AI agent for Hlido to review. Use this when an agent isn't in Hlido's corpus yet (trust_check returned no_review_found) and you want it added. Returns a confirmation with a tracking reference; the review is queued and produces a public scorecard. If you need a verdict right now rather than a queued review, use request_quick_audit (faster, rate-limited) instead.",
"inputSchema": {
"properties": {
"email": {
"description": "Optional contact email for the submitter \u2014 if you want a reply or a heads-up when the review publishes. Providing it always flags the submission to the Hlido team.",
"type": "string"
},
"name": {
"description": "Human-readable agent name (e.g. 'Example Coder').",
"type": "string"
},
"note": {
"description": "Optional context: what the agent does, or why it's worth reviewing.",
"type": "string"
},
"url": {
"description": "The agent's product or homepage URL (e.g. 'https://example.com').",
"type": "string"
}
},
"required": [
"url",
"name"
],
"type": "object"
},
"name": "submit_agent"
},
{
"description": "Check any AI agent's EU AI Act Article-50 transparency posture \u2014 including agents Hlido has NOT reviewed yet. Returns two clearly separated layers: (1) Hlido's independent register verdict when the agent is in our reviewed corpus, and (2) a live public-surface probe of the Article-50 signals (AI-interaction disclosure, machine-readable marking/provenance, deepfake/synthetic labelling, detection tool). Use before adopting or delegating to a tool ahead of the 2026-08-02 transparency obligations. The live probe is a first-pass surface read, NOT a compliance determination and NOT legal advice; an undetected signal means 'not discoverable on the public surface', not 'non-compliant'. Unreviewed agents are automatically queued for a full independent review.",
"inputSchema": {
"properties": {
"url": {
"description": "The agent's product or homepage URL (e.g. 'https://example.com'), or its Hlido slug.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "verify_transparency"
},
{
"description": "Fetch the full sanitized claim-vs-evidence scorecard for one Hlido-reviewed agent. Returns every claim, verdict, evidence quote, source surface, and (for CLI/API tests) the captured command + exit_code + duration. Schema v1.0. Use this for agent-to-agent pre-flight evaluation.",
"inputSchema": {
"properties": {
"slug": {
"description": "The agent's Hlido slug (e.g. 'aider', 'gumloop')",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_scorecard"
},
{
"description": "Fetch published incidents from Hlido's NTSB-style failure registry \u2014 real observed agent failures (availability outages, regressions, hallucinations, safety issues) plus Hlido self-reported process incidents, each with severity, evidence, and vendor-response status. Filter by agent slug, severity, or category. Use this before delegating to an agent to check for known recent failures; an empty list means no published incidents, not a guarantee of reliability.",
"inputSchema": {
"properties": {
"category": {
"description": "Optional category filter",
"enum": [
"hallucination",
"regression",
"safety",
"availability",
"cost",
"other"
],
"type": "string"
},
"limit": {
"default": 20,
"description": "Max results (default 20, max 100)",
"type": "integer"
},
"severity": {
"description": "Optional minimum-interest filter (exact match)",
"enum": [
"low",
"medium",
"high",
"critical"
],
"type": "string"
},
"slug": {
"description": "Optional: only incidents for this agent slug",
"type": "string"
}
},
"type": "object"
},
"name": "get_incidents"
},
{
"description": "Report an issue with a Hlido review (stale info, wrong verdict, missing claim, broken link). Use when calling get_scorecard or trust_check returns data you can prove is incorrect. Hlido's R1 maintenance routine processes reports daily and fires re-tests via dispute-retest sub-agent.",
"inputSchema": {
"properties": {
"detail": {
"description": "What's wrong, with a concrete reference (URL, claim id, etc) if possible",
"type": "string"
},
"issue_type": {
"description": "Category of the report",
"enum": [
"stale",
"wrong_verdict",
"missing_claim",
"broken_link",
"other"
],
"type": "string"
},
"reporter": {
"description": "Optional self-identifier \u2014 agent name or email \u2014 purely informational",
"type": "string"
},
"slug": {
"description": "The slug whose review has the issue",
"type": "string"
}
},
"required": [
"slug",
"issue_type",
"detail"
],
"type": "object"
},
"name": "report_review_issue"
},
{
"description": "Request that Hlido audit a NEW AI agent that has no review yet. Use this when trust_check or get_scorecard returns no_review_found and you need a verdict before delegating to the unknown agent. Returns a future scorecard URL + ETA. Free-tier rate-limited (5/day per anonymous, 50/day per identified). The audit produces signed evidence + claim verification within ~24h (sooner if founder triggers manually).",
"inputSchema": {
"properties": {
"name": {
"description": "Optional human-readable name (we'll derive from URL if missing)",
"type": "string"
},
"requester": {
"description": "Optional self-identifier \u2014 agent name, email, or session id \u2014 for rate-limiting + follow-up",
"type": "string"
},
"url": {
"description": "Homepage or product URL of the agent to audit",
"type": "string"
},
"why": {
"description": "Optional one-liner: why are you considering this agent? helps us prioritize",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "request_quick_audit"
},
{
"description": "Semantic search over Hlido's review corpus. Given a task description (e.g. 'I need an agent that can refactor TypeScript and edit multiple files at once'), returns the top-N reviewed agents ranked by embedding similarity, each with their Laddoo score, evidence_tier, and review URL. Use this when you have a task in mind and want Hlido's recommendation \u2014 much better than substring matching via find_trusted.",
"inputSchema": {
"properties": {
"description": {
"description": "Free-text description of the task or capability you need",
"type": "string"
},
"min_score": {
"default": 0,
"description": "Minimum Laddoo score filter (default 0)",
"type": "integer"
},
"top_k": {
"default": 5,
"description": "Number of matches to return (default 5, max 20)",
"type": "integer"
}
},
"required": [
"description"
],
"type": "object"
},
"name": "find_similar_agents"
},
{
"description": "Preview \u2014 Wave 3 will add persistent webhook + RSS subscriptions. For now this returns the agent's current state plus advisory polling instructions (RSS at /changelog/feed.xml or polling /data/attestations/{slug}.json). Use this to register interest in being notified when a slug's verdict changes.",
"inputSchema": {
"properties": {
"channel": {
"description": "Preferred notification channel. webhook is advisory only until Wave 3 ships.",
"enum": [
"rss",
"json",
"webhook"
],
"type": "string"
},
"slug": {
"description": "The Hlido slug to subscribe to (e.g. 'cursor', 'aider')",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "subscribe"
},
{
"description": "Structured natural-language explanation of why a Hlido-reviewed agent has its current score. Pulls claim-by-claim evidence from the published scorecard. Pass an optional dimension (one of: reliability, transparency, integration, security, evidence) to filter; omit for the full picture. Returns each claim with verdict (PASS|FAIL|PARTIAL|UNKNOWN), a quoted evidence snippet, plus a top-line synthesis.",
"inputSchema": {
"properties": {
"dimension": {
"description": "Optional dimension filter. Run without and check supported_dimensions in response if unsure.",
"type": "string"
},
"slug": {
"description": "The agent's Hlido slug",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "explain"
},
{
"description": "Constraint-driven recommendation across Hlido's reviewed agents. Pass any combination of: category, min_score, tier, use_case, max_results. Returns ranked candidates each with a why_match line. Use this when you have buyer constraints (budget, category, capability) and want Hlido's filtered shortlist instead of one-by-one trust_check calls.",
"inputSchema": {
"properties": {
"constraints": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Filter by category (e.g. 'Coding', 'Voice', 'Productivity')",
"type": "string"
},
"max_results": {
"default": 5,
"description": "Cap on results (default 5, max 25)",
"type": "integer"
},
"min_score": {
"default": 0,
"description": "Minimum Laddoo score (0-100)",
"type": "integer"
},
"tier": {
"description": "Minimum tier filter (VITAL strictest, FLATLINE allows all)",
"enum": [
"VITAL",
"STEADY",
"FADING",
"FLATLINE"
],
"type": "string"
},
"use_case": {
"description": "Free-text capability description for ranking (e.g. 'multi-file refactor in TypeScript')",
"type": "string"
}
},
"type": "object"
}
},
"required": [
"constraints"
],
"type": "object"
},
"name": "recommend"
},
{
"description": "Fetch the behavioral evaluation trace for a Hlido-reviewed agent \u2014 per-task pass/fail, adapter used, behavioral tier, and signed trace link. Returns status 'not_yet_bench_tested' if the slug hasn't been evaluated yet, or 'not_testable' if the agent's interface doesn't support automated bench runs. Use this when you need evidence that an agent's coding/task behaviour has been independently verified beyond marketing claims.",
"inputSchema": {
"properties": {
"slug": {
"description": "The Hlido slug to fetch behavioral trace for (e.g. 'aider', 'opencode')",
"type": "string"
},
"spec_version": {
"default": "v0.1",
"description": "Behavioral spec version (default 'v0.1'). Omit to get the latest available.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_behavioral_trace"
},
{
"description": "Check whether a Hlido-reviewed agent is ready to be delegated to / transacted with in the agentic-commerce world (MCP/ACP/AP2). Returns its independent Agentic-Commerce Readiness score (0-100), band (COMMERCE-READY/INTEGRABLE/SURFACE-ONLY/CLOSED), the programmatic surfaces it exposes, and the evidence basis. Call this before an orchestrator delegates a paid/identity-bearing task to another agent.",
"inputSchema": {
"properties": {
"agent_or_url": {
"description": "The agent to check: either its Hlido slug (e.g. 'voltagent', 'aider') or its product/homepage URL. A URL is matched to the closest reviewed agent.",
"type": "string"
}
},
"required": [
"agent_or_url"
],
"type": "object"
},
"name": "commerce_check"
},
{
"description": "On-demand independent SAFETY scan of an MCP server \u2014 call this BEFORE installing or connecting to one. Give it an HTTP(S) MCP endpoint URL (scanned live in seconds), or an npm/PyPI package name or GitHub repo (queued for an isolated sandbox scan \u2014 local stdio servers execute code, so Hlido never runs them inline). Returns the safety tier (SAFE/CAUTION/RISKY/DANGEROUS), tool-poisoning detection (the malice signal), dangerous-capability red-flags (shell/code-eval/fs-write/egress/secrets) with per-tool evidence, and auth posture. Tier = blast radius if hijacked, not maintainer trustworthiness. A server Hlido hasn't scanned returns not_scanned \u2014 never assumed safe. Register of already-scanned servers: https://hlido.eu/mcp/",
"inputSchema": {
"properties": {
"requester": {
"description": "Optional self-identifier \u2014 agent name or email \u2014 for follow-up when a queued scan completes.",
"type": "string"
},
"server": {
"description": "The MCP server to scan: an HTTP(S) MCP endpoint URL (e.g. 'https://mcp.example.com/mcp' \u2014 scanned live), OR an npm package (e.g. '@modelcontextprotocol/server-filesystem'), PyPI package, or GitHub repo URL (queued for sandbox scan).",
"type": "string"
}
},
"required": [
"server"
],
"type": "object"
},
"name": "scan_mcp"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2024-11-05",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 9.48,
"status": "error"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": null
},
"initialize_capability_keys": [
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 200,
"probe_status": "missing"
}
},
"latency_ms": 8.72,
"status": "missing"
}
},
"failures": {
"oauth_authorization_server": {
"reason": "no_authorization_server"
},
"oauth_protected_resource": {
"error": "Client error '404 Not Found' for url 'https://hlido.eu/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://hlido.eu/.well-known/oauth-protected-resource"
},
"openid_configuration": {
"reason": "no_authorization_server"
},
"prompts_list": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found: prompts/list"
},
"id": 3,
"jsonrpc": "2.0"
},
"url": "https://hlido.eu/mcp"
},
"resources_list": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found: resources/list"
},
"id": 5,
"jsonrpc": "2.0"
},
"url": "https://hlido.eu/mcp"
},
"transport_compliance_probe": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json; charset=utf-8"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "The core Hlido trust query: is a specific AI agent trustworthy? Given one agent (by Hlido slug or product/homepage URL) it returns the independent Laddoo trust score (0-100), tier (VITAL/STEADY/FADING/FLATLINE), a one-line verdict, a claim-verification summary, and any known incidents. Call this FIRST \u2014 before delegating to, installing, or relying on another agent \u2014 to get a fast trust read. Returns no_review_found if the agent isn't in Hlido's corpus (then call request_quick_audit). For the full claim-by-claim evidence, follow up with get_scorecard.",
"inputSchema": {
"properties": {
"agent_or_url": {
"description": "The agent to check: either its Hlido slug (e.g. 'aider', 'cursor') or its product/homepage URL (e.g. 'https://cursor.com'). A URL is matched to the closest reviewed agent.",
"type": "string"
},
"use_case": {
"description": "Optional. The task you're considering this agent for (e.g. 'multi-file TypeScript refactor'); tailors the verdict to that use case when provided.",
"type": "string"
}
},
"required": [
"agent_or_url"
],
"type": "object"
},
"name": "trust_check"
},
{
"description": "Discover Hlido-reviewed agents that match a free-text need, ranked by trust. Returns reviewed agents at or above a minimum tier, each with its Laddoo score, tier, and review URL. Use this for keyword/need-based discovery; for semantic task-matching prefer find_similar_agents, and for structured constraint filters (category/score/tier) prefer recommend.",
"inputSchema": {
"properties": {
"limit": {
"default": 10,
"description": "Maximum number of agents to return (default 10).",
"type": "integer"
},
"min_tier": {
"default": "STEADY",
"description": "Minimum trust tier to include (VITAL is strictest, FLATLINE allows all). Defaults to STEADY.",
"enum": [
"VITAL",
"STEADY",
"FADING",
"FLATLINE"
],
"type": "string"
},
"need": {
"description": "Free-text description of the capability you need (e.g. 'CLI coding agent that edits multiple files at once').",
"type": "string"
}
},
"required": [
"need"
],
"type": "object"
},
"name": "find_trusted"
},
{
"description": "Fact-check one specific marketing or capability claim about an agent against Hlido's independent testing. Returns Hlido's verdict (PASS/FAIL/PARTIAL/UNKNOWN) with a quoted evidence snippet and its source surface \u2014 or an honest null when that exact claim wasn't tested (absence of evidence, not proof). Use this to validate a vendor's specific promise before you rely on it.",
"inputSchema": {
"properties": {
"agent": {
"description": "The agent's Hlido slug or product URL (e.g. 'cursor').",
"type": "string"
},
"claim": {
"description": "The specific claim to verify, in plain language (e.g. 'works offline' or 'SOC 2 compliant').",
"type": "string"
}
},
"required": [
"agent",
"claim"
],
"type": "object"
},
"name": "verify_claim"
},
{
"description": "Head-to-head trust comparison of 2-5 Hlido-reviewed agents. Returns each agent's Laddoo score, tier, dimension scores, and key claim verdicts side by side so you can pick the most trustworthy option for a task. Use this once you've shortlisted candidates (via find_trusted, find_similar_agents, or recommend) and need a direct comparison.",
"inputSchema": {
"properties": {
"slugs": {
"description": "List of 2 to 5 Hlido agent slugs to compare side by side (e.g. ['aider','cursor','opencode']).",
"items": {
"description": "A Hlido agent slug (e.g. 'aider').",
"type": "string"
},
"maxItems": 5,
"minItems": 2,
"type": "array"
}
},
"required": [
"slugs"
],
"type": "object"
},
"name": "compare_agents"
},
{
"description": "Nominate a new AI agent for Hlido to review. Use this when an agent isn't in Hlido's corpus yet (trust_check returned no_review_found) and you want it added. Returns a confirmation with a tracking reference; the review is queued and produces a public scorecard. If you need a verdict right now rather than a queued review, use request_quick_audit (faster, rate-limited) instead.",
"inputSchema": {
"properties": {
"email": {
"description": "Optional contact email for the submitter \u2014 if you want a reply or a heads-up when the review publishes. Providing it always flags the submission to the Hlido team.",
"type": "string"
},
"name": {
"description": "Human-readable agent name (e.g. 'Example Coder').",
"type": "string"
},
"note": {
"description": "Optional context: what the agent does, or why it's worth reviewing.",
"type": "string"
},
"url": {
"description": "The agent's product or homepage URL (e.g. 'https://example.com').",
"type": "string"
}
},
"required": [
"url",
"name"
],
"type": "object"
},
"name": "submit_agent"
},
{
"description": "Check any AI agent's EU AI Act Article-50 transparency posture \u2014 including agents Hlido has NOT reviewed yet. Returns two clearly separated layers: (1) Hlido's independent register verdict when the agent is in our reviewed corpus, and (2) a live public-surface probe of the Article-50 signals (AI-interaction disclosure, machine-readable marking/provenance, deepfake/synthetic labelling, detection tool). Use before adopting or delegating to a tool ahead of the 2026-08-02 transparency obligations. The live probe is a first-pass surface read, NOT a compliance determination and NOT legal advice; an undetected signal means 'not discoverable on the public surface', not 'non-compliant'. Unreviewed agents are automatically queued for a full independent review.",
"inputSchema": {
"properties": {
"url": {
"description": "The agent's product or homepage URL (e.g. 'https://example.com'), or its Hlido slug.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "verify_transparency"
},
{
"description": "Fetch the full sanitized claim-vs-evidence scorecard for one Hlido-reviewed agent. Returns every claim, verdict, evidence quote, source surface, and (for CLI/API tests) the captured command + exit_code + duration. Schema v1.0. Use this for agent-to-agent pre-flight evaluation.",
"inputSchema": {
"properties": {
"slug": {
"description": "The agent's Hlido slug (e.g. 'aider', 'gumloop')",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_scorecard"
},
{
"description": "Fetch published incidents from Hlido's NTSB-style failure registry \u2014 real observed agent failures (availability outages, regressions, hallucinations, safety issues) plus Hlido self-reported process incidents, each with severity, evidence, and vendor-response status. Filter by agent slug, severity, or category. Use this before delegating to an agent to check for known recent failures; an empty list means no published incidents, not a guarantee of reliability.",
"inputSchema": {
"properties": {
"category": {
"description": "Optional category filter",
"enum": [
"hallucination",
"regression",
"safety",
"availability",
"cost",
"other"
],
"type": "string"
},
"limit": {
"default": 20,
"description": "Max results (default 20, max 100)",
"type": "integer"
},
"severity": {
"description": "Optional minimum-interest filter (exact match)",
"enum": [
"low",
"medium",
"high",
"critical"
],
"type": "string"
},
"slug": {
"description": "Optional: only incidents for this agent slug",
"type": "string"
}
},
"type": "object"
},
"name": "get_incidents"
},
{
"description": "Report an issue with a Hlido review (stale info, wrong verdict, missing claim, broken link). Use when calling get_scorecard or trust_check returns data you can prove is incorrect. Hlido's R1 maintenance routine processes reports daily and fires re-tests via dispute-retest sub-agent.",
"inputSchema": {
"properties": {
"detail": {
"description": "What's wrong, with a concrete reference (URL, claim id, etc) if possible",
"type": "string"
},
"issue_type": {
"description": "Category of the report",
"enum": [
"stale",
"wrong_verdict",
"missing_claim",
"broken_link",
"other"
],
"type": "string"
},
"reporter": {
"description": "Optional self-identifier \u2014 agent name or email \u2014 purely informational",
"type": "string"
},
"slug": {
"description": "The slug whose review has the issue",
"type": "string"
}
},
"required": [
"slug",
"issue_type",
"detail"
],
"type": "object"
},
"name": "report_review_issue"
},
{
"description": "Request that Hlido audit a NEW AI agent that has no review yet. Use this when trust_check or get_scorecard returns no_review_found and you need a verdict before delegating to the unknown agent. Returns a future scorecard URL + ETA. Free-tier rate-limited (5/day per anonymous, 50/day per identified). The audit produces signed evidence + claim verification within ~24h (sooner if founder triggers manually).",
"inputSchema": {
"properties": {
"name": {
"description": "Optional human-readable name (we'll derive from URL if missing)",
"type": "string"
},
"requester": {
"description": "Optional self-identifier \u2014 agent name, email, or session id \u2014 for rate-limiting + follow-up",
"type": "string"
},
"url": {
"description": "Homepage or product URL of the agent to audit",
"type": "string"
},
"why": {
"description": "Optional one-liner: why are you considering this agent? helps us prioritize",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "request_quick_audit"
},
{
"description": "Semantic search over Hlido's review corpus. Given a task description (e.g. 'I need an agent that can refactor TypeScript and edit multiple files at once'), returns the top-N reviewed agents ranked by embedding similarity, each with their Laddoo score, evidence_tier, and review URL. Use this when you have a task in mind and want Hlido's recommendation \u2014 much better than substring matching via find_trusted.",
"inputSchema": {
"properties": {
"description": {
"description": "Free-text description of the task or capability you need",
"type": "string"
},
"min_score": {
"default": 0,
"description": "Minimum Laddoo score filter (default 0)",
"type": "integer"
},
"top_k": {
"default": 5,
"description": "Number of matches to return (default 5, max 20)",
"type": "integer"
}
},
"required": [
"description"
],
"type": "object"
},
"name": "find_similar_agents"
},
{
"description": "Preview \u2014 Wave 3 will add persistent webhook + RSS subscriptions. For now this returns the agent's current state plus advisory polling instructions (RSS at /changelog/feed.xml or polling /data/attestations/{slug}.json). Use this to register interest in being notified when a slug's verdict changes.",
"inputSchema": {
"properties": {
"channel": {
"description": "Preferred notification channel. webhook is advisory only until Wave 3 ships.",
"enum": [
"rss",
"json",
"webhook"
],
"type": "string"
},
"slug": {
"description": "The Hlido slug to subscribe to (e.g. 'cursor', 'aider')",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "subscribe"
},
{
"description": "Structured natural-language explanation of why a Hlido-reviewed agent has its current score. Pulls claim-by-claim evidence from the published scorecard. Pass an optional dimension (one of: reliability, transparency, integration, security, evidence) to filter; omit for the full picture. Returns each claim with verdict (PASS|FAIL|PARTIAL|UNKNOWN), a quoted evidence snippet, plus a top-line synthesis.",
"inputSchema": {
"properties": {
"dimension": {
"description": "Optional dimension filter. Run without and check supported_dimensions in response if unsure.",
"type": "string"
},
"slug": {
"description": "The agent's Hlido slug",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "explain"
},
{
"description": "Constraint-driven recommendation across Hlido's reviewed agents. Pass any combination of: category, min_score, tier, use_case, max_results. Returns ranked candidates each with a why_match line. Use this when you have buyer constraints (budget, category, capability) and want Hlido's filtered shortlist instead of one-by-one trust_check calls.",
"inputSchema": {
"properties": {
"constraints": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Filter by category (e.g. 'Coding', 'Voice', 'Productivity')",
"type": "string"
},
"max_results": {
"default": 5,
"description": "Cap on results (default 5, max 25)",
"type": "integer"
},
"min_score": {
"default": 0,
"description": "Minimum Laddoo score (0-100)",
"type": "integer"
},
"tier": {
"description": "Minimum tier filter (VITAL strictest, FLATLINE allows all)",
"enum": [
"VITAL",
"STEADY",
"FADING",
"FLATLINE"
],
"type": "string"
},
"use_case": {
"description": "Free-text capability description for ranking (e.g. 'multi-file refactor in TypeScript')",
"type": "string"
}
},
"type": "object"
}
},
"required": [
"constraints"
],
"type": "object"
},
"name": "recommend"
},
{
"description": "Fetch the behavioral evaluation trace for a Hlido-reviewed agent \u2014 per-task pass/fail, adapter used, behavioral tier, and signed trace link. Returns status 'not_yet_bench_tested' if the slug hasn't been evaluated yet, or 'not_testable' if the agent's interface doesn't support automated bench runs. Use this when you need evidence that an agent's coding/task behaviour has been independently verified beyond marketing claims.",
"inputSchema": {
"properties": {
"slug": {
"description": "The Hlido slug to fetch behavioral trace for (e.g. 'aider', 'opencode')",
"type": "string"
},
"spec_version": {
"default": "v0.1",
"description": "Behavioral spec version (default 'v0.1'). Omit to get the latest available.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_behavioral_trace"
},
{
"description": "Check whether a Hlido-reviewed agent is ready to be delegated to / transacted with in the agentic-commerce world (MCP/ACP/AP2). Returns its independent Agentic-Commerce Readiness score (0-100), band (COMMERCE-READY/INTEGRABLE/SURFACE-ONLY/CLOSED), the programmatic surfaces it exposes, and the evidence basis. Call this before an orchestrator delegates a paid/identity-bearing task to another agent.",
"inputSchema": {
"properties": {
"agent_or_url": {
"description": "The agent to check: either its Hlido slug (e.g. 'voltagent', 'aider') or its product/homepage URL. A URL is matched to the closest reviewed agent.",
"type": "string"
}
},
"required": [
"agent_or_url"
],
"type": "object"
},
"name": "commerce_check"
},
{
"description": "On-demand independent SAFETY scan of an MCP server \u2014 call this BEFORE installing or connecting to one. Give it an HTTP(S) MCP endpoint URL (scanned live in seconds), or an npm/PyPI package name or GitHub repo (queued for an isolated sandbox scan \u2014 local stdio servers execute code, so Hlido never runs them inline). Returns the safety tier (SAFE/CAUTION/RISKY/DANGEROUS), tool-poisoning detection (the malice signal), dangerous-capability red-flags (shell/code-eval/fs-write/egress/secrets) with per-tool evidence, and auth posture. Tier = blast radius if hijacked, not maintainer trustworthiness. A server Hlido hasn't scanned returns not_scanned \u2014 never assumed safe. Register of already-scanned servers: https://hlido.eu/mcp/",
"inputSchema": {
"properties": {
"requester": {
"description": "Optional self-identifier \u2014 agent name or email \u2014 for follow-up when a queued scan completes.",
"type": "string"
},
"server": {
"description": "The MCP server to scan: an HTTP(S) MCP endpoint URL (e.g. 'https://mcp.example.com/mcp' \u2014 scanned live), OR an npm package (e.g. '@modelcontextprotocol/server-filesystem'), PyPI package, or GitHub repo URL (queued for sandbox scan).",
"type": "string"
}
},
"required": [
"server"
],
"type": "object"
},
"name": "scan_mcp"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2024-11-05",
"session_id_present": false,
"transport": "streamable-http"
}
},
"remote_url": "https://hlido.eu/mcp",
"server_card_payload": null,
"server_identifier": "ankitkapur1992-hlido/hlido-mcp"
}