addrbookFor publishers
← The evidence ledger

Evidence row 23576

Observed , by baseline/1.

Kind
listing
About
source_record mcp_registry:dev.workers.pathwren.www/crawler-log-triage
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
827be5ae658dc85ec76b00eb382db731e1a5a9273db89d0118e1f3461677733a
Leaf
0x1a08407ed38fc93bb6bd70055b6d61efc27a605c98aff6f92384e08cdc74e7c3

What was observed

{
  "endpoints": [
    [
      "mcp",
      "https://www.pathwren.workers.dev/c/mcp-registry-official/mcp/triage"
    ],
    [
      "web",
      "https://www.pathwren.workers.dev/c/mcp-registry-official/mcp-triage.html"
    ]
  ],
  "name": "Crawler Log Triage",
  "owner_address": null,
  "raw": {
    "_meta": {
      "io.modelcontextprotocol.registry/official": {
        "isLatest": true,
        "publishedAt": "2026-09-13T00:56:06.40031Z",
        "status": "active",
        "statusChangedAt": "2026-09-13T00:56:06.40031Z",
        "updatedAt": "2026-09-13T00:56:06.40031Z"
      }
    },
    "server": {
      "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
      "_meta": {
        "io.modelcontextprotocol.registry/publisher-provided": {
          "auth": "none",
          "authentication": "none — no key, no account, no OAuth, no rate limit",
          "dataLicense": "CC0-1.0",
          "docs": "https://www.pathwren.workers.dev/c/mcp-registry-official/mcp.html",
          "example": {
            "curl": "curl -s -X POST https://www.pathwren.workers.dev/c/mcp-registry-official/mcp/triage -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"whoami\",\"arguments\":{}}}'",
            "endpoint": "https://www.pathwren.workers.dev/c/mcp-registry-official/mcp/triage",
            "note": "whoami takes no arguments at all and answers about the request you just sent - user-agent, address, what our classifier makes of it. Every tool here accepts {} and answers with its own documented worked example — nothing of yours is read, nothing is fetched from a third party. Send the request below verbatim.",
            "request": {
              "id": 1,
              "jsonrpc": "2.0",
              "method": "tools/call",
              "params": {
                "arguments": {},
                "name": "whoami"
              }
            },
            "transport": "streamable-http",
            "verified_live_at": "2026-09-02T08:49:08Z"
          },
          "keywords": [
            "access log",
            "log analysis",
            "nginx log",
            "apache log",
            "bot traffic",
            "fake googlebot",
            "waf rules",
            "robots.txt generator",
            "who is crawling me",
            "markdown",
            "markdown docs",
            "free",
            "no api key",
            "no auth"
          ],
          "markdown": {
            "canonical": "the HTML page; each mirror carries Link: rel=\"canonical\" back to it",
            "example": "curl -s https://www.pathwren.workers.dev/c/mcp-registry-official/mcp-triage.md",
            "index": "https://www.pathwren.workers.dev/c/mcp-registry-official/sitemap.md",
            "note": "Everything this server answers from is also readable without JSON-RPC and without an MCP client: every page of the host is a plain markdown file at the same address with .md — also .mdx, <page>.html.md, <page>.html.mdx, or send Accept: text/markdown to the .html page. No key, no JavaScript, CC0. The registry caps `description` at 100 characters, which is why this sentence lives here."
          },
          "pricing": "free",
          "publisher": "Pathwren — an independent, non-commercial automated project",
          "tools": [
            {
              "name": "whoami",
              "search": "who is calling: user-agent, address, our verdict - no arguments"
            },
            {
              "name": "triage_log",
              "search": "paste an access log and see which bots hit you"
            },
            {
              "name": "find_impersonators",
              "search": "find the lines faking Googlebot or GPTBot"
            },
            {
              "name": "summarize_by_operator",
              "search": "roll a log up by operator: who crawled you, how much"
            },
            {
              "name": "robots_from_log",
              "search": "generate a robots.txt for the bots actually in your log"
            },
            {
              "name": "waf_ruleset_from_log",
              "search": "generate nginx, Caddy, Cloudflare, HAProxy or Apache rules"
            },
            {
              "name": "example",
              "search": "run the worked example — no arguments"
            }
          ]
        }
      },
      "description": "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"whoami\",\"arguments\":{}}} free no key",
      "icons": [
        {
          "mimeType": "image/png",
          "sizes": [
            "256x256"
          ],
          "src": "https://www.pathwren.workers.dev/c/mcp-registry-official/icon.png"
        }
      ],
      "name": "dev.workers.pathwren.www/crawler-log-triage",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://www.pathwren.workers.dev/c/mcp-registry-official/mcp/triage"
        }
      ],
      "title": "Crawler Log Triage",
      "version": "1.7.0",
      "websiteUrl": "https://www.pathwren.workers.dev/c/mcp-registry-official/mcp-triage.html"
    }
  },
  "source": "mcp_registry",
  "summary": "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"whoami\",\"arguments\":{}}} free no key"
}

What the leaf hashes

{"body":"827be5ae658dc85ec76b00eb382db731e1a5a9273db89d0118e1f3461677733a","id":23576,"kind":"listing","method":"baseline/1","observed_us":1793025351225188,"prev":null,"subject":"mcp_registry:dev.workers.pathwren.www/crawler-log-triage","subject_kind":"source_record"}

Proof

Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.

How to check it · This row as JSON