{
  "schema_version": "1.0",
  "spec": "WebMCP (Web Model Context Protocol) draft",
  "name": "ProServer SourceBans",
  "description": "WebMCP tool manifest for the ProServer shared NMRiH banlist. Read-only — agents can query bans, servers, and stats, nothing else.",
  "url": "https://proserver.sk",
  "version": "2.0",
  "tools": [
    {
      "name": "proserver.search_bans",
      "description": "Search the ProServer NMRiH banlist by Steam ID, player name, IP or reason keyword.",
      "input_schema": {
        "type": "object",
        "properties": {
          "query": { "type": "string", "description": "Search term" },
          "type":  { "type": "string", "enum": ["steamid", "name", "ip", "reason"], "default": "steamid" }
        },
        "required": ["query"]
      },
      "endpoint": "https://proserver.sk/index.php?p=banlist",
      "method": "GET",
      "params_mapping": { "query": "advSearch", "type": "advType" },
      "response_type": "text/html"
    },
    {
      "name": "proserver.get_stats",
      "description": "Retrieve current ban / server / activity statistics.",
      "input_schema": { "type": "object", "properties": {} },
      "endpoint": "https://proserver.sk/ai/stats.json",
      "method": "GET",
      "response_type": "application/json"
    },
    {
      "name": "proserver.get_servers",
      "description": "List NMRiH game servers connected to the ProServer network.",
      "input_schema": { "type": "object", "properties": {} },
      "endpoint": "https://proserver.sk/ai/servers.json",
      "method": "GET",
      "response_type": "application/json"
    },
    {
      "name": "proserver.get_recent_activity",
      "description": "Aggregated recent ban activity (no PII) over the last 30 days.",
      "input_schema": { "type": "object", "properties": {} },
      "endpoint": "https://proserver.sk/ai/bans-recent.json",
      "method": "GET",
      "response_type": "application/json"
    },
    {
      "name": "proserver.get_faq",
      "description": "Frequently asked questions in structured form.",
      "input_schema": { "type": "object", "properties": {} },
      "endpoint": "https://proserver.sk/ai/faq.json",
      "method": "GET",
      "response_type": "application/json"
    }
  ],
  "authentication": {
    "type": "none",
    "public": true
  },
  "rate_limits": {
    "requests_per_minute": 60,
    "requests_per_hour": 1000
  },
  "safety": {
    "exposes_pii": false,
    "exposes_write_actions": false,
    "content_license": "CC-BY-NC-SA-3.0"
  },
  "discovery": {
    "agent_manifest": "https://proserver.sk/.well-known/agent.json",
    "ai_actions": "https://proserver.sk/.well-known/ai-actions.json",
    "llms_manifest": "https://proserver.sk/.well-known/llms.json"
  },
  "last_modified": "2026-04-22"
}
