# Chiark > Cross-protocol quality index for AI agent services. Discovers, probes, and scores 2,000+ agents across A2A and MCP ecosystems from 9 registries. Chiark measures the operational reliability of deployed AI agent endpoints — availability, protocol conformance, and performance — through automated three-tier probing every 30 minutes. It is the independent quality layer for agent-to-agent routing. Live at https://chiark.ai ## API The REST API is at `https://chiark.ai/api/v1`. All responses are JSON. No authentication required. - [API Documentation](https://chiark.ai/docs): Interactive OpenAPI/Swagger docs - [OpenAPI Spec](https://chiark.ai/openapi.json): Machine-readable API schema - [Full API Reference](https://chiark.ai/llms-full.txt): Complete endpoint documentation ### Discover Agents (recommended for routing) Find agents matching quality constraints, optionally filtered by task description: ``` GET /api/v1/discover?task=web+scraping&min_uptime=0.9&protocol=mcp&page_size=3 GET /api/v1/discover?min_score=80&protocol=mcp (constraint-only, no task required) GET /api/v1/discover?payment_enabled=true (all payment-enabled agents) ``` Response: ```json { "agents": [ { "id": "uuid", "name": "Agent Name", "operational_score": 87, "max_score": 100, "uptime_30d": 0.99, "p95_latency_ms": 245, "conformance": "pass", "protocol": "mcp", "endpoint_url": "https://...", "categories": ["Developer Tools"] } ], "total": 42 } ``` ### Check Agent Status ``` GET /api/v1/agents/{id}/status ``` Response: ```json { "agent_id": "uuid", "status": "operational", "is_alive": true, "http_status": 200, "response_time_ms": 145.2, "tls_valid": true, "probe_tier": 3, "timestamp": "2026-03-26T12:00:00Z" } ``` Status values: `operational`, `degraded`, `reachable`, `offline`, `auth_required`, `unknown` ### Get Agent Capabilities ``` GET /api/v1/agents/{id}/capabilities ``` Response: ```json { "agent_id": "uuid", "name": "Agent Name", "protocol": "mcp", "auth_required": false, "skills": [ {"name": "translate", "description": "Translate text between languages", "tags": ["translation"]} ], "endpoint_url": "https://..." } ``` ### Get Response Sample See what an agent actually returns — tool schemas, parameters, and pricing: ``` GET /api/v1/agents/{id}/sample ``` Response: ```json { "agent_id": "uuid", "has_sample": true, "probe_tier": 3, "tool_count": 14, "tools": [ { "name": "translate_text", "description": "Translate text between languages", "parameters": {"type": "object", "properties": {"text": {"type": "string"}, "target_lang": {"type": "string"}}}, "annotations": {"readOnlyHint": true} } ], "server_info": {"name": "agent-server", "version": "1.0"}, "x402_pricing": null, "last_probed": "2026-03-28T19:22:11Z" } ``` ### Report Routing Outcome ``` POST /api/v1/feedback Content-Type: application/json {"agent_id": "uuid", "success": true, "task_category": "translation"} ``` ### Other Endpoints - `GET /api/v1/rankings` — leaderboard with constraint filters (min_score, min_uptime, max_latency_ms, auth_required, payment_enabled, protocol, category) - `GET /api/v1/agents/search?q=keyword` — search agents by name, description, skills - `GET /api/v1/agents/{id}` — full agent detail with score breakdown and probe history - `GET /api/v1/agents/{id}/sample` — probe response sample (tools, parameters, schemas, pricing) - `GET /api/v1/agents/{id}/feedback` — aggregated routing success rate for an agent - `POST /api/v1/register` — self-register an agent for indexing (endpoint_url or agent_card_url) - `GET /api/v1/categories` — all categories with agent counts - `GET /api/v1/stats` — ecosystem totals and averages ### Constraint Filters - `min_score` (0-100): Minimum operational score - `min_uptime` (0-1): Minimum 30-day uptime (e.g., 0.99 = 99%) - `max_latency_ms`: Maximum P95 latency in milliseconds - `auth_required` (true/false): Filter by authentication requirement - `payment_enabled` (true/false): Filter by x402 payment support - `protocol` (a2a/mcp): Filter by protocol - `category`: Filter by skill category ## MCP Server Chiark is available as an MCP server for agent discovery from Claude, Cursor, or any MCP client. **Hosted endpoint (no install):** `https://chiark.ai/mcp/` — connect directly from any MCP client via HTTP transport. **Standalone package:** `pip install chiark-mcp` ([PyPI](https://pypi.org/project/chiark-mcp/) / [GitHub](https://github.com/chiark-ai-dev/chiark-mcp)) Listed on [Smithery](https://smithery.ai) and [a2aregistry.org](https://a2aregistry.org). Tools: `find_agent` (with constraints), `check_agent_status`, `get_agent_score`, `report_outcome`, `get_ecosystem_stats` ## Scoring Operational Score = Availability (0-30) + Conformance (0-30) + Performance (0-40) - Availability: 30-day uptime percentage - Conformance: Agent Card valid + protocol response valid + endpoint match - Performance: P95 latency + task completion rate + consistency bonus - Auth-gated agents max score: 45/100 (can't verify performance without access) ## Data Sources 9 crawlers run every 24 hours: a2aregistry.org, MCP Registry, Smithery, Solana ERC-8004, awesome-a2a, GitHub topics, well-known endpoints, PulseMCP (when API key configured), alternative registries. ## Popular Categories (by agent count) - AI & Agents (365+) - Developer Tools (269+) - Crypto & Web3 (188+) - Cloud & Infrastructure (173+) - Data & Analytics (118+) - Productivity (113+) ## Optional - [Methodology](https://chiark.ai/methodology): Full scoring methodology - [Stats](https://chiark.ai/stats): Ecosystem analytics - [Agent Card](https://chiark.ai/.well-known/agent.json): A2A Agent Card for Chiark itself