{
  "service": "Bók Lífsins API + MCP",
  "version": "1.1.0",
  "status": "ok",
  "dependencies": {
    "d1": "ok",
    "kv": "ok"
  },
  "endpoints": {
    "api": "/api/* (REST — Gemini + web)",
    "mcp": "/mcp (Streamable HTTP)",
    "sse": "/sse (SSE transport)",
    "health": "/health"
  },
  "public_endpoints": {
    "random": "/api/random — seed data for story generation",
    "random_family": "/api/random/family?audience=kids&tone=warm — family-safe seeder payload",
    "random_adult": "/api/random/adult?intensity=medium&tone=reflective — mature seeder payload",
    "photos": "/api/photos — photos with descriptions for visual style seeds",
    "capabilities": "/api/capabilities — full API discovery + data stats",
    "stats": "/api/stats — quick overview",
    "story_pool": "GET /api/story/pool?genre=&location=&audience=&age_band= — claim pre-generated story starter",
    "story_pool_status": "GET /api/story/pool/status — pool monitoring"
  },
  "protected_endpoints": {
    "search": "POST /api/search",
    "stories": "GET/POST /api/stories",
    "story_get": "GET /api/stories/:id",
    "diary": "GET/POST /api/diary",
    "patterns": "GET/POST /api/patterns",
    "people": "GET /api/people",
    "people_describe": "GET /api/people/describe",
    "timeline": "GET /api/timeline",
    "context": "GET /api/context",
    "audio": "POST /api/audio",
    "session_create": "POST /api/session",
    "session_message": "POST /api/session/message",
    "slideshow_plan": "POST /api/slideshow/plan",
    "slideshow_project_create": "POST /api/slideshow/project",
    "slideshow_project_get": "GET /api/slideshow/project/:project_id",
    "slideshow_project_update": "PUT /api/slideshow/project/:project_id",
    "slideshow_render": "POST /api/slideshow/render",
    "slideshow_render_status": "GET /api/slideshow/render/:job_id",
    "slideshow_render_cancel": "POST /api/slideshow/render/:job_id/cancel",
    "health_reminders": "GET /api/health/reminders",
    "health_log_medication": "POST /api/health/log/medication",
    "health_log_bp": "POST /api/health/log/bp",
    "health_log_weight": "POST /api/health/log/weight",
    "health_trends": "GET /api/health/trends",
    "health_correlations": "GET /api/health/correlations",
    "health_diary": "POST /api/health/diary",
    "health_expense": "POST /api/health/expense",
    "story_pool_fill": "POST /api/story/pool/fill",
    "tool_bridge": "POST /tool"
  },
  "admin_endpoints": {
    "tech_tag": "POST /api/admin/tech-tag?batch=5 — AI-classify tech conversations",
    "extract_snippets": "POST /api/admin/extract-snippets?batch=3 — Extract code snippets",
    "build_skills": "POST /api/admin/build-skills — Build skill proficiency map",
    "tech_progress": "GET /api/admin/tech-progress — Pipeline status"
  },
  "discovery_endpoints": {
    "llms_txt": "GET /llms.txt — concise LLM-facing overview",
    "llms_full_txt": "GET /llms-full.txt — detailed LLM-facing reference",
    "openapi": "GET /.well-known/openapi.json — curated OpenAPI schema",
    "openapi_full": "GET /.well-known/openapi-full.json — full OpenAPI schema",
    "oauth_metadata": "GET /.well-known/oauth-authorization-server",
    "protected_resource_metadata": "GET /.well-known/oauth-protected-resource",
    "jwks": "GET /.well-known/jwks.json",
    "robots": "GET /robots.txt"
  },
  "universal_clients": {
    "chatgpt": {
      "transport": "https://mcp.2076.is/mcp",
      "auth": "OAuth 2.0 recommended"
    },
    "claude_desktop": {
      "transport": "https://mcp.2076.is/sse",
      "auth": "Bearer token recommended for /sse; OAuth 2.0 available on /mcp"
    },
    "gemini": {
      "transport": "https://mcp.2076.is/mcp or https://mcp.2076.is/tool",
      "auth": "Bearer token"
    },
    "mobile_or_web": {
      "transport": "https://mcp.2076.is/api/*",
      "auth": "Bearer token for protected routes"
    }
  },
  "timestamp": "2026-10-10T08:56:17.893Z"
}