{
  "server": "kerne-mcp",
  "endpoint": "https://kerne.fi/api/mcp",
  "generated_at": "2026-11-15T23:42:24.600Z",
  "counting_since": "2026-11-13T19:30:28.000Z",
  "window": "the last 30 UTC days, newest first",
  "how_to_read": [
    "requests counts every JSON-RPC message and every plain GET this endpoint answered. It is mostly uptime monitors and MCP directory crawlers, which every public MCP endpoint receives.",
    "tool_calls counts tools/call only. That is the number that says something used the data. tool_calls_by_client_class shows who made them.",
    "by_client_class is a label taken from the user agent string, which the caller chooses. It is not an identification.",
    "Requests made by Kerne to test this endpoint are tagged and left out of every count except kerne_selftest_requests.",
    "Requests refused by the rate limit are not counted.",
    "No IP address is stored."
  ],
  "totals": {
    "requests": 7384,
    "tool_calls": 15,
    "tool_calls_not_from_monitors_or_directory_probes": 9
  },
  "days": [
    {
      "day": "2026-11-15",
      "requests": 3501,
      "by_method": {
        "http:GET": 101,
        "http:HEAD": 1,
        "initialize": 1444,
        "notifications/initialized": 1259,
        "other": 77,
        "ping": 2,
        "prompts/list": 8,
        "resources/list": 7,
        "resources/templates/list": 2,
        "tools/call": 5,
        "tools/list": 595
      },
      "by_client_class": {
        "http_library_or_blank": 258,
        "monitor_or_directory_probe": 3101,
        "named_client": 124,
        "browser": 18
      },
      "tool_calls": 5,
      "tool_calls_by_tool": {
        "get_vault_state": {
          "ok": 2,
          "error": 0
        },
        "unknown": {
          "ok": 0,
          "error": 2
        },
        "verify_stock_quote": {
          "ok": 0,
          "error": 1
        }
      },
      "tool_calls_by_client_class": {
        "http_library_or_blank": 3,
        "monitor_or_directory_probe": 2
      },
      "kerne_selftest_requests": 18,
      "distinct_user_agents": 142,
      "distinct_networks": 56
    },
    {
      "day": "2026-11-14",
      "requests": 3429,
      "by_method": {
        "http:GET": 115,
        "http:HEAD": 7,
        "initialize": 1411,
        "notifications/initialized": 1247,
        "other": 75,
        "ping": 2,
        "prompts/list": 5,
        "resources/list": 4,
        "tools/call": 9,
        "tools/list": 554
      },
      "by_client_class": {
        "http_library_or_blank": 250,
        "monitor_or_directory_probe": 3053,
        "named_client": 99,
        "browser": 27
      },
      "tool_calls": 9,
      "tool_calls_by_tool": {
        "get_signed_reserves": {
          "ok": 2,
          "error": 0
        },
        "get_stock_quote": {
          "ok": 1,
          "error": 0
        },
        "get_vault_state": {
          "ok": 2,
          "error": 0
        },
        "unknown": {
          "ok": 0,
          "error": 3
        },
        "verify_stock_quote": {
          "ok": 1,
          "error": 0
        }
      },
      "tool_calls_by_client_class": {
        "http_library_or_blank": 6,
        "monitor_or_directory_probe": 3
      },
      "kerne_selftest_requests": 60,
      "distinct_user_agents": 132,
      "distinct_networks": 48
    },
    {
      "day": "2026-11-13",
      "requests": 454,
      "by_method": {
        "http:GET": 14,
        "initialize": 201,
        "notifications/initialized": 176,
        "other": 11,
        "tools/call": 1,
        "tools/list": 51
      },
      "by_client_class": {
        "http_library_or_blank": 29,
        "monitor_or_directory_probe": 409,
        "named_client": 16
      },
      "tool_calls": 1,
      "tool_calls_by_tool": {
        "get_signed_reserves": {
          "ok": 1,
          "error": 0
        }
      },
      "tool_calls_by_client_class": {
        "monitor_or_directory_probe": 1
      },
      "kerne_selftest_requests": 40,
      "distinct_user_agents": 34,
      "distinct_networks": 19
    }
  ]
}