{"name":"Arclan Registry API","version":"1.0","baseUrl":"https://arclan.ai","description":"Machine-evaluated registry of MCP servers. Every server is validated, scored, and monitored continuously.","endpoints":[{"method":"GET","path":"/api/registry","description":"List MCP servers. Defaults to connectable states (active, auth_gated, mcp_partial).","params":{"status":"Filter by state. Values: active | auth_gated | mcp_partial | degraded | stdio | unreachable | invalid | zombie | all. Default: connectable.","capability":"Filter by tool name or description keyword.","min_score":"Minimum score (0–100). Default: 0.","transport":"Filter by transport type (http, stdio).","include":"Comma-separated extra blocks: trust, auth, capabilities, flags.","production_safe":"true = uptime_7d > 0.97 AND handshake_success_rate > 0.95 AND status active.","min_uptime":"Minimum 7-day uptime fraction (0.0–1.0).","max_latency_p95":"Maximum p95 latency in ms.","auth_type":"Filter by auth type: none | bearer | api_key | oauth.","read_only":"true = only servers with no write-classified tools.","limit":"Results per page. Max 200. Default 50.","offset":"Pagination offset. Default 0."},"example":"/api/registry?status=active&limit=10"},{"method":"GET","path":"/api/registry/:id","description":"Get a single server by ID.","example":"/api/registry/123"},{"method":"GET","path":"/api/stats","description":"Registry-wide counts by state, total tools, average score, and pending candidates.","example":"/api/stats"},{"method":"POST","path":"/api/submit","description":"Submit an MCP server URL for validation.","body":{"url":"string (required)","transport":"http | stdio (optional, default: http)"},"example":"POST /api/submit  { \"url\": \"https://example.com/mcp\" }"},{"method":"POST","path":"/mcp","description":"Arclan itself as an MCP server (Streamable HTTP, JSON-RPC 2.0). Use this to query the registry from inside an agent.","tools":["query_registry","get_server","submit_server","report_server"],"example":"POST /mcp  { \"jsonrpc\": \"2.0\", \"method\": \"initialize\", ... }"}],"states":{"active":"Full MCP handshake passed. Connectable.","auth_gated":"Reachable but requires credentials.","degraded":"Was active, now intermittently failing.","mcp_partial":"Responds to HTTP but fails full MCP compliance.","stdio":"Local-only transport. Not network callable.","unreachable":"No HTTP response. May recover.","invalid":"HTTP works but not an MCP server.","zombie":"Was validated, now permanently dark."}}