orank Agent-Readiness — gap-fix playground

Companion to feat/orank-agent-readiness-b2a. Baseline: 80/100 (B). Try each fixed surface live against orchestkit.yonyon.ai after deploy.

What this PR changes

orank checkPts at stakeFix shipped
NLWeb /ask endpoint + streaming2NLWeb-canonical request contract: GET ?query= (aliases q/question), form-encoded POST, mode param, ?streaming=true SSE, query_id + name/site/score/description result fields
MCP well-known discovery2Server card now carries url + remotes (registry server.json shape) + registry entry link; llms.txt names NLWeb + absolute MCP URLs
Rate limit response headers2Real per-IP fixed-window limiter (120/min/endpoint) + IETF RateLimit-* headers + 429 with Retry-After
Idempotency-Key support2Formal header param in OpenAPI; echoed on /ask and /api/md/batch
REST pagination pattern1Opaque cursor pagination on /api/search (cursor param, X-Next-Cursor, Link rel=next)
REST batch endpoint1POST /api/md/batch — up to 20 pages of Markdown per request, formal OpenAPI definition
REST typed error model2Problem schema consistently $ref'd incl. 429s; spec matches served shapes
WebMCP support1Server-rendered homepage section names navigator.modelContext tools (visible without JS rendering)
Content E-E-A-T1/terms page (formal ToS), footer Contact/Privacy/Terms links
Listed in MCP registries (bi-directional)1Visible homepage links to official registry entry, Smithery, mcp.so
Content density / semantic indexability2Text-dense SSR "Built for AI agents" section with H2/H3 hierarchy

Deliberately NOT done (honest-posture rules)

Skipped: OAuth PRM / agent_auth stubs (API is anonymous-only), AggregateRating (no rating stubs), blocking CCBot/ByteSpider (we WANT training-corpus footprint), Web Bot Auth key directory (we operate no signing bots), fake async-job pattern (read-only API has no jobs).

Try the fixed surfaces (after deploy)

Click a probe to fetch the live endpoint…

Off-site follow-ups (need maintainer logins)

1. Glama server listing — Dockerfile now in repo root; submit at glama.ai/mcp/servers, then add badge + reopen awesome-mcp-servers PR #7611.
2. ChatGPT GPT Store submission (2 pts).
3. skills.sh self-publish via npx skills add (2 pts across two checks).
4. Re-publish MCP registry entry at current version (drift: 8.26.0 vs 8.34.x).