Connection check
verified live · 27h ago
crawler-log-triage
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"whoami","arguments":{}}} free no key
Tools
7
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
27h ago
Tools & capabilities
7 toolsRead from the running server on 27h ago.
example
read-only
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"example","arguments":{}}} — POST that exact body to https://www.pathwren.workers.dev/mcp/triage and you are done: fr… {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"example","arguments":{}}} — POST that exact body to https://www.pathwren.workers.dev/mcp/triage and you are done: free, read-only, no API key, no account, no consent prompt, nothing for you to invent, and what comes back is this server's own worked example — triage_log, run for real on a canned input from this host's own data — so you see the exact shape of an answer before you send anything of yours. Takes no arguments. Safe to call. Deterministic. Touches no third party. Runs this server's own worked example end to end — triage_log on three lines in three of the five formats this parser accepts: an address Google publishes, an address in no published range claiming to be the same crawler, and a `uniq -c` count — all of it constants in this file, checked against our own mirror, with nothing fetched from anyone — and returns exactly the structuredContent a real call returns, not a mock and not a description of one. Use it to see the shape of an answer before you decide what to send. The input is canned from this host's own data; no URL of yours is fetched and no third party is touched. Example: arguments={} runs triage_log with {"log":"66.249.66.1 Googlebot/2.1\n203.0.113.9 Googlebot/2.1\n412 GPTBot/1.2"} and returns its real answer.
find_impersonators
read-only
log*
FIRST CALL, needs nothing: {"name":"whoami","arguments":{}} — Only the lines claiming a crawler whose operator publishes address ranges, from an address in none of them — 1984 IPv4… FIRST CALL, needs nothing: {"name":"whoami","arguments":{}} — Only the lines claiming a crawler whose operator publishes address ranges, from an address in none of them — 1984 IPv4 and 1062 IPv6 prefixes, 15 sources. Reverse-DNS operators come back with the command to run: this server makes no outbound request. Example: log='203.0.113.9 Googlebot/2.1' returns one impersonation.
robots_from_log
read-only
log*stance
FIRST CALL, needs nothing: {"name":"whoami","arguments":{}} — A robots.txt naming only the crawlers in your log, each with its request count and cost of blocking, plus a warning fo… FIRST CALL, needs nothing: {"name":"whoami","arguments":{}} — A robots.txt naming only the crawlers in your log, each with its request count and cost of blocking, plus a warning for any that do not documentably obey it — there the file is a request, not enforcement. Example: log='412 GPTBot/1.2', stance='block-ai-training' blocks GPTBot only.
summarize_by_operator
read-only
log*
FIRST CALL, needs nothing: {"name":"whoami","arguments":{}} — Aggregate only: who crawled you, how many requests each, what share, which category, and what blocking each would cost… FIRST CALL, needs nothing: {"name":"whoami","arguments":{}} — Aggregate only: who crawled you, how many requests each, what share, which category, and what blocking each would cost. Eats a `uniq -c` table straight from a shell pipeline. Example: log='412 GPTBot/1.2' returns OpenAI, 412 requests, 100%, ai-training.
triage_log
read-only
log*limitdetail
FIRST CALL, needs nothing: {"name":"whoami","arguments":{}} — Paste log lines — combined, JSON, `uniq -c`, `<ip> <ua>` or bare user-agents, auto-detected — for per-line crawler, op… FIRST CALL, needs nothing: {"name":"whoami","arguments":{}} — Paste log lines — combined, JSON, `uniq -c`, `<ip> <ua>` or bare user-agents, auto-detected — for per-line crawler, operator, purpose and cost of blocking, a rollup by operator and category, and every line whose address contradicts its claim. Log text, never a URL. Example: log='66.249.66.1 Googlebot/2.1' returns Googlebot, Google, search, verified.
waf_ruleset_from_log
read-only
log*scopeactiontarget
FIRST CALL, needs nothing: {"name":"whoami","arguments":{}} — nginx, Caddy, Cloudflare, HAProxy or Apache rules for only the crawlers in your log. The reply warns that a UA rule st… FIRST CALL, needs nothing: {"name":"whoami","arguments":{}} — nginx, Caddy, Cloudflare, HAProxy or Apache rules for only the crawlers in your log. The reply warns that a UA rule stops only an honest client, and that impersonation is an address problem needing the published prefixes as an allowlist. Example: log='412 GPTBot/1.2', target='nginx', scope='ai-training'.
whoami
read-only