Crawler Log Triage
What this MCP does
Parses crawler access logs to identify operators, purposes, impersonation attempts, request volumes, and generated robots or WAF rules.
Tools
Input schema
{'type': 'object', 'examples': [{}], 'required': [], 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['ran', 'input_came_from', 'what_it_shows', 'answer', 'reproduce', 'this_is_not_a_mock', 'answered_by', 'license'], 'properties': {'ran': {'type': 'object', 'description': 'The tool name and the exact arguments that were run.'}, 'answer': {'type': 'object', 'description': 'The real structuredContent of that call, not a mock.'}, 'license': {'type': 'string'}, 'reproduce': {'type': 'string', 'description': 'A command that reproduces this answer.'}, 'answered_by': {'type': 'object'}, 'what_it_shows': {'type': 'string'}, 'input_came_from': {'type': 'string', 'description': "Where the canned input came from — always this host's own data."}, 'this_is_not_a_mock': {'type': 'string'}}, 'description': "This server's own worked example, executed for real on a canned input from this host's own data.", 'additionalProperties': True}
Input schema
{'type': 'object', 'examples': [{'log': '203.0.113.9 Googlebot/2.1'}], 'required': ['log'], 'properties': {'log': {'type': 'string', 'description': 'The log text. Lines need an address to be checkable.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'examples': [{}], 'required': [], 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['takes_no_arguments', 'what_this_is', 'the_log_triaged', 'rollup', 'what_no_index_entry_matched', 'no_address_was_triaged', 'answered_by', 'this_call_touched', 'reproduce', 'caveats', 'license', 'independent'], 'properties': {'rollup': {'type': 'object', 'description': 'Requests by operator, by category and by crawler, with the identified share.'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'license': {'type': 'string'}, 'reproduce': {'type': 'string'}, 'answered_by': {'type': 'object'}, 'independent': {'type': 'boolean'}, 'what_this_is': {'type': 'string'}, 'the_log_triaged': {'type': 'object', 'description': 'Where the log came from, how it was parsed, and what it covers.'}, 'this_call_touched': {'type': 'object'}, 'takes_no_arguments': {'type': 'boolean'}, 'no_address_was_triaged': {'type': 'string'}, 'what_no_index_entry_matched': {'type': 'object'}, 'to_do_this_for_your_own_file': {'type': 'string'}}, 'description': "This host's own published request log run through the same triage engine a pasted log gets, rolled up by operator, category and crawler.", 'additionalProperties': True}
Input schema
{'type': 'object', 'examples': [{'log': '412 GPTBot/1.2', 'stance': 'block-ai-training'}], 'required': ['log'], 'properties': {'log': {'type': 'string', 'description': 'The log text.'}, 'stance': {'enum': ['block-ai-training', 'block-all-ai', 'block-unverifiable', 'allow-all'], 'type': 'string', 'description': 'Default block-ai-training.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'examples': [{'log': '412 GPTBot/1.2'}], 'required': ['log'], 'properties': {'log': {'type': 'string', 'description': 'Log text, or a `uniq -c` user-agent table.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'examples': [{'log': '66.249.66.1 Googlebot/2.1\n203.0.113.9 Googlebot/2.1\n412 GPTBot/1.2'}], 'required': ['log'], 'properties': {'log': {'type': 'string', 'description': 'The log text, up to 5000 lines. Mixed formats are fine.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Max rows, default 200.'}, 'detail': {'enum': ['rows', 'summary'], 'type': 'string', 'description': 'Per-line table, or aggregates only.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'examples': [{}], 'required': [], 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['you', 'we_book_you_as', 'answered_by', 'this_call_touched', 'caveats', 'license', 'independent'], 'properties': {'you': {'type': 'object', 'description': 'The user-agent you sent and the address you came from.'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'license': {'type': 'string'}, 'answered_by': {'type': 'object', 'description': 'Which server answered, at which endpoint, with which tool.'}, 'independent': {'type': 'boolean'}, 'we_book_you_as': {'type': 'object', 'description': "The class this host's own instrument records for that user-agent."}, 'this_call_touched': {'type': 'object', 'description': 'Exactly which files were read. No third party is contacted.'}}, 'description': "One server's own question, answered about the caller, from the headers of this request and from files this host already publishes.", 'additionalProperties': True}
Input schema
{'type': 'object', 'examples': [{'log': '412 GPTBot/1.2', 'scope': 'ai-training', 'target': 'nginx'}], 'required': ['log'], 'properties': {'log': {'type': 'string', 'description': 'The log text.'}, 'scope': {'type': 'string', 'description': "A category (default ai-training), 'all-seen', 'impersonators', or a stance."}, 'action': {'enum': ['block', 'challenge'], 'type': 'string', 'description': 'Default block.'}, 'target': {'enum': ['nginx', 'caddy', 'cloudflare', 'haproxy', 'apache'], 'type': 'string', 'description': 'Default nginx.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'examples': [{}], 'required': [], 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['you', 'we_book_you_as', 'we_have_seen_you', 'answered_by', 'this_call_touched', 'caveats', 'license', 'independent'], 'properties': {'you': {'type': 'object', 'description': 'The user-agent you sent and the address you came from.'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}, 'description': 'What this answer does NOT establish — a user-agent is a claim.'}, 'license': {'type': 'string'}, 'answered_by': {'type': 'object', 'description': 'Which server answered, at which endpoint.'}, 'independent': {'type': 'boolean', 'description': 'This host is independent and unaffiliated.'}, 'we_book_you_as': {'type': 'object', 'description': "The class this host's own instrument records for that user-agent."}, 'we_have_seen_you': {'type': 'object', 'description': 'Whether this user-agent appears in the published observation window.'}, 'this_call_touched': {'type': 'object', 'description': 'Exactly which files were read to answer. No third party is contacted.'}}, 'description': 'Facts about the caller, derived only from the headers of this request and from files this host already publishes.', 'additionalProperties': True}
Recent tool changes
Similar MCP servers
Crypto Bot Audit + Market Data (x402 paid)
Audits crypto bot source code and provides paid crypto market, token, gas, stablecoin, and DeFi TVL data.
TunnelMind Data API
Aggregates web, routing, supply-chain, tracker, threat, and agent-registry intelligence into risk verdicts, evidence, receipts, a…
Polyform
Offers pay-per-call APIs for economic, financial, geographic, healthcare, domain, email, sanctions, blockchain, and business risk…
HubVibe: Pay-per-Call Tools for AI Agents: Web Search, Email Verify, KYC, Stocks, Crypto, News, Data
Offers paid utilities for web audits, HTTP fetching and extraction, BigQuery analysis, LLM processing, code execution, blockchain…
Qiniso
Provides deterministic formatting, parsing, holiday and tax lookups, address handling, and checksum or structure validation for i…
SYNTHORA x402 Intelligence Mesh
Delivers paid intelligence on markets, crypto, prediction markets, maritime and space risks, domain and wallet exposure, sanction…
Satoshidata Wallet Intel
Provides Bitcoin wallet intelligence, address labels, trust and risk signals, transaction verification, entity activity, fees, me…
Cloudflare Radar
Provides Cloudflare Radar internet observatory data on DDoS attacks, BGP leaks, domain popularity, internet quality, and traffic …