{
  "mcp": {
    "protocol": "mcp",
    "protocolVersion": "2024-11-05",
    "transport": "http+json-rpc",
    "endpoint": "https://quake.platphormnews.com/api/mcp",
    "server": {
      "name": "quakejs",
      "version": "1.0.0",
      "displayName": "QuakeJS MCP Server",
      "description": "Model Context Protocol server for QuakeJS — Browser FPS Arena. Provides tools to query game servers, leaderboards, player stats, and match history."
    },
    "capabilities": {
      "tools": {
        "listChanged": false
      }
    },
    "tools": [
      {
        "name": "list_servers",
        "description": "List real active Quake browser sessions and protected registered servers. Returns empty/degraded state when no live rooms exist."
      },
      {
        "name": "get_server",
        "description": "Get one server or session by id with real roster when available."
      },
      {
        "name": "register_server",
        "description": "Protected server registration. Requires PLATPHORM_API_KEY via MCP request headers in production clients."
      },
      {
        "name": "update_server",
        "description": "Protected server status or heartbeat update."
      },
      {
        "name": "deregister_server",
        "description": "Protected server deregistration."
      },
      {
        "name": "list_matches",
        "description": "List protected recorded match history. Does not synthesize fake matches."
      },
      {
        "name": "list_active_matches",
        "description": "List current human-backed multiplayer matches with host, arena, match rules, elapsed time, bot configuration, kills, deaths, and live leaderboard."
      },
      {
        "name": "get_active_match",
        "description": "Get one current multiplayer match and its public-safe live roster and rules."
      },
      {
        "name": "get_match",
        "description": "Get one match record by id."
      },
      {
        "name": "create_match",
        "description": "Create a protected match draft with a browser play URL."
      },
      {
        "name": "join_match",
        "description": "Return the browser join URL for a match."
      },
      {
        "name": "record_match",
        "description": "Protected match result recording. Results are official only when durable persistence is configured."
      },
      {
        "name": "get_leaderboard",
        "description": "Get leaderboard entries derived from real recorded matches."
      },
      {
        "name": "get_global_stats",
        "description": "Get global Quake stats derived from active sessions and recorded matches."
      },
      {
        "name": "list_maps",
        "description": "List playable and honestly degraded Quake map catalog entries."
      },
      {
        "name": "get_map",
        "description": "Get one map catalog entry, including playable/degraded state."
      },
      {
        "name": "list_modes",
        "description": "List Quake modes with playable/local/degraded truth labels."
      },
      {
        "name": "list_weapons",
        "description": "List shipped weapon behavior, ammo, damage, and telemetry metadata."
      },
      {
        "name": "get_game_manifest",
        "description": "Return the public Quake game manifest and exact capability counts."
      },
      {
        "name": "get_performance_status",
        "description": "Return public performance capability state and client-measured FPS policy."
      },
      {
        "name": "get_lan_status",
        "description": "Return LAN launcher and WebRTC DataChannel capability state without claiming authoritative LAN matchmaking."
      },
      {
        "name": "validate_game_routes",
        "description": "Return the public route inventory used for sitemap/dead-link validation."
      },
      {
        "name": "validate_playable_arena",
        "description": "Report playable maps, local bot support, restoration state, and honest mode capability truth."
      },
      {
        "name": "get_health",
        "description": "Return the public Quake health summary payload."
      },
      {
        "name": "get_info",
        "description": "Return public Quake service identity, auth policy, and discovery links."
      },
      {
        "name": "list_bots",
        "description": "List local AI bot profiles available for browser practice."
      },
      {
        "name": "start_bot_practice",
        "description": "Start a local bot practice session and return the play URL."
      },
      {
        "name": "record_practice_result",
        "description": "Record local-only practice result state."
      },
      {
        "name": "list_game_events",
        "description": "List public-safe Quake event outbox entries."
      },
      {
        "name": "receive_game_webhook",
        "description": "Receive a game webhook event into protected event state."
      },
      {
        "name": "get_route_compliance",
        "description": "Return Quake route compliance and degraded capability summary."
      },
      {
        "name": "get_discovery_compliance",
        "description": "Return discovery file and sitemap compliance state."
      },
      {
        "name": "create_docs_report",
        "description": "Return a docs report payload for docs.platphormnews.com. External publishing is degraded unless invoked by a protected platform job."
      },
      {
        "name": "create_sheet_report",
        "description": "Return a Sheets-ready structured report payload. External sheet creation is degraded unless invoked by a protected platform job."
      },
      {
        "name": "create_deck_summary",
        "description": "Return a Decks-ready executive summary payload. External deck creation is degraded unless invoked by a protected platform job."
      }
    ],
    "resources": [
      {
        "uri": "quake://servers",
        "name": "servers",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://server/{id}",
        "name": "server/{id}",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://matches",
        "name": "matches",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://active-matches",
        "name": "active-matches",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://match/{id}",
        "name": "match/{id}",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://leaderboard",
        "name": "leaderboard",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://stats",
        "name": "stats",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://maps",
        "name": "maps",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://map/{id}",
        "name": "map/{id}",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://modes",
        "name": "modes",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://weapons",
        "name": "weapons",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://game-manifest",
        "name": "game-manifest",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://performance",
        "name": "performance",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://lan-status",
        "name": "lan-status",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://faq",
        "name": "faq",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://bots",
        "name": "bots",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://events",
        "name": "events",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://settings",
        "name": "settings",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://openapi",
        "name": "openapi",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://llms",
        "name": "llms",
        "mimeType": "application/json"
      },
      {
        "uri": "quake://trust-policy",
        "name": "trust-policy",
        "mimeType": "application/json"
      }
    ],
    "prompts": [
      {
        "name": "recommend_quake_server",
        "description": "Quake prompt: recommend quake server"
      },
      {
        "name": "explain_quake_mode",
        "description": "Quake prompt: explain quake mode"
      },
      {
        "name": "explain_quake_weapon",
        "description": "Quake prompt: explain quake weapon"
      },
      {
        "name": "summarize_match",
        "description": "Quake prompt: summarize match"
      },
      {
        "name": "generate_bot_tuning_notes",
        "description": "Quake prompt: generate bot tuning notes"
      },
      {
        "name": "create_game_testing_plan",
        "description": "Quake prompt: create game testing plan"
      },
      {
        "name": "create_quake_report",
        "description": "Quake prompt: create quake report"
      },
      {
        "name": "human_machine_quake_handoff",
        "description": "Quake prompt: human machine quake handoff"
      }
    ]
  },
  "network": {
    "name": "PlatphormNews",
    "hub": "https://platphormnews.com",
    "registry": "https://mcp.platphormnews.com",
    "graph": "https://platphormnews.com/api/network/graph",
    "platformDocs": "https://platphormnews.com/api/docs",
    "claws": "https://claws.platphormnews.com",
    "peers": [
      {
        "name": "PlatphormNews MCP Hub",
        "url": "https://mcp.platphormnews.com/api/mcp",
        "description": "Central MCP tool registry and discovery hub"
      },
      {
        "name": "PlatphormNews Games",
        "url": "https://games.platphormnews.com",
        "description": "Games directory and discovery"
      },
      {
        "name": "PlatphormNews Calendar",
        "url": "https://calendar.platphormnews.com/api/mcp",
        "description": "Calendar events and scheduling tools"
      },
      {
        "name": "PlatphormNews Jobs",
        "url": "https://jobs.platphormnews.com/api/mcp",
        "description": "Job listings and career tools"
      }
    ]
  },
  "discovery": {
    "llms": "https://quake.platphormnews.com/llms.txt",
    "llmsFull": "https://quake.platphormnews.com/llms-full.txt",
    "llmsIndex": "https://quake.platphormnews.com/llms-index.json",
    "openapi": "https://quake.platphormnews.com/api/docs",
    "sitemap": "https://quake.platphormnews.com/sitemap.xml",
    "robots": "https://quake.platphormnews.com/robots.txt",
    "rss": "https://quake.platphormnews.com/rss.xml",
    "atom": "https://quake.platphormnews.com/feed.xml",
    "manifest": "https://quake.platphormnews.com/manifest.webmanifest",
    "faq": "https://quake.platphormnews.com/faq",
    "xrStatus": "https://quake.platphormnews.com/api/v1/xr/status",
    "trust": "https://quake.platphormnews.com/.well-known/trust.json",
    "agents": "https://quake.platphormnews.com/.well-known/agents.json"
  },
  "tags": [
    "mcp",
    "game-server",
    "fps",
    "quake",
    "arena-shooter",
    "browser-game",
    "webgl",
    "webxr",
    "meta-quest",
    "augmented-reality",
    "multiplayer",
    "leaderboard",
    "real-time",
    "ai-tools",
    "json-rpc"
  ]
}