Skip to main content
Glama

Server Details

{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"whoami","arguments":{}}} free no key

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Unhealthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

9 tools
exampleRun this server's worked example (no arguments)A
Read-onlyIdempotent
Inspect

{"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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
ranYesThe tool name and the exact arguments that were run.
answerYesThe real structuredContent of that call, not a mock.
licenseYes
reproduceYesA command that reproduces this answer.
answered_byYes
what_it_showsYes
input_came_fromYesWhere the canned input came from — always this host's own data.
this_is_not_a_mockYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (read-only, idempotent, non-destructive), the description adds concrete guarantees: no API key, no account, no consent prompt, no third-party access, deterministic behavior, and no external fetches. It also clarifies that the return value is the exact structuredContent of a real call rather than a mock.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is far longer than needed and repeatedly restates the same facts: 'no third party', 'canned from this host's own data', and 'shape of an answer' are each expressed multiple times. The opening raw HTTP/JSON-RPC instruction also adds noise for an agent that will invoke the tool through MCP rather than by posting to a URL.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-argument demo tool with an output schema and strong annotations, the description is complete. It covers invocation, input, behavior, safety, output nature, and an explicit example, so an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and 100% schema coverage, the schema already leaves nothing ambiguous. The description goes further by explicitly saying 'Takes no arguments' and providing a concrete example call with arguments={} and the canned input, making it impossible to misconstruct an invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: it runs this server's worked example end to end, invoking triage_log on canned input and returning the real structuredContent. It also distinguishes itself as a preview/demo, not a mock and not the real triage tool for user data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use it to see the shape of an answer before deciding what to send, and notes that no URL of yours is fetched. It does not explicitly name alternative sibling tools or state when not to use it, but the intended use case is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_impersonatorsFind the lines that are lyingB
Read-onlyIdempotent
Inspect

FIRST CALL, needs nothing: {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"no_arguments_triage_this_hosts_own_crawler_log","arguments":{}}} — Only the lines claiming a crawler whose operator publishes address ranges, from an address in none of them — 1987 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
logYesThe log text. Lines need an address to be checkable.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses that the server performs no outbound request and that reverse-DNS operators come back with a command to run rather than the tool doing the lookup. It also quantifies the matching data (1987 IPv4 and 1062 IPv6 prefixes, 15 sources), which is useful context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening FIRST CALL block embeds a full JSON-RPC invocation for a different tool, which is bulky and easy to misread as this tool being called with no arguments. The qualifying definition follows a dash and the wording is dense; the most relevant behavior is not front-loaded enough.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It provides the core selection rule, example, prefix counts, and no-outbound behavior, which is decent for a single-parameter read-only tool. There is no explicit return shape, handling of multiple lines is implied, and the relationship to the mysterious FIRST CALL command is not clearly explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, log, already has a 100%-covered schema description explaining that lines need an address. The description adds only a concrete example and the notion that output is per impersonation, but it does not add much semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description defines exactly what the tool returns: lines claiming a crawler whose operator publishes address ranges but whose source address is in none of them. The example ('203.0.113.9 Googlebot/2.1' returns one impersonation) clarifies the behavior. It is slightly obscured by the FIRST CALL block about a different tool, but the verb purpose is recoverable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies use when the task is detecting fake crawler lines and gives a concrete example, and it mentions a prerequisite first call to no_arguments_triage_this_hosts_own_crawler_log. However, it never explicitly contrasts find_impersonators with sibling tools such as triage_log or robots_from_log, nor says when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

no_arguments_triage_this_hosts_own_crawler_logNo arguments: triage this host's own published crawler logA
Read-onlyIdempotent
Inspect

TAKES NO ARGUMENTS. POST {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"no_arguments_triage_this_hosts_own_crawler_log","arguments":{}}} to https://www.pathwren.workers.dev/mcp/triage — the answer is the triage of THIS host's own published request log — every operator in it run through the same parser, the same crawler index and the same operator-prefix verification that triage_log applies to a file you paste, rolled up by operator, by category and by crawler, with the share no index entry matches at all and the browser-shaped strings named separately. There is nothing to fill in: the input schema is literally empty, arguments: {} and no arguments key at all both work, and the subject is a file this host already publishes, so the answer does not depend on you at all. No key, no account, no OAuth, no session to open first, read-only, and nothing for you to invent. Nothing is fetched to build it — no request leaves this edge, and none is made to you. The other zero-argument call on this server is triage_my_request, same empty arguments, which answers your own request triaged as one line of an access log — the crawler this host's index identifies from your user-agent, its operator and category, and whether the address you came from verifies against that operator's published prefixes. whoami and example are here too and take nothing either. Every other tool on this server wants a file pasted in; this one wants nothing. The siblings answer one question each under the tool named beside them: /mcp (whoami), /mcp/doctor (no_arguments_check_this_hosts_own_discovery_documents), /mcp/lint (whoami), /mcp/robots (no_arguments_lint_this_hosts_robots_txt), /mcp/netcheck (no_arguments_report_the_crawler_ip_ranges_this_host_mirrors), /mcp/markdown (markdown_lane_self_report). Example: the complete call, exactly as written, nothing to fill in — {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"no_arguments_triage_this_hosts_own_crawler_log","arguments":{}}} returns the rollup by operator, category and crawler over this host's own published window, the cost of blocking each crawler identified, the requests that match no entry in the index, and the robots.txt those findings would generate.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
rollupYesRequests by operator, by category and by crawler, with the identified share.
caveatsYes
licenseYes
reproduceYes
answered_byYes
independentYes
what_this_isYes
the_log_triagedYesWhere the log came from, how it was parsed, and what it covers.
this_call_touchedYes
takes_no_argumentsYes
no_address_was_triagedYes
what_no_index_entry_matchedYes
to_do_this_for_your_own_fileNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false; the description adds substantial context beyond them: 'no request leaves this edge, and none is made to you', no key/account/OAuth/session required, the answer is independent of the caller, and the return contains a rollup plus 'the cost of blocking each crawler identified' and a generated robots.txt. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded ('TAKES NO ARGUMENTS') and information-dense, but it is one unbroken wall of text with clear redundancy: 'nothing to fill in', 'nothing for you to invent', and 'the answer does not depend on you at all' repeat the same point, the full example call appears twice, and the sibling-to-endpoint mapping is peripheral to invoking this tool. Bullets and trimming would roughly halve it without losing content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a zero-parameter, closed-world, read-only tool with an output schema present: exact call URL, payload shape, auth status, network behavior, output semantics, and sibling routing are all covered. The only minor omissions are the time bounds of the 'published window' and error-case behavior, neither of which is critical given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters the baseline is already 4; the description goes further by stating the input schema is 'literally empty' and that both `arguments: {}` and omitting the `arguments` key altogether are accepted. This removes any invocation-shape ambiguity an agent might otherwise have.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: triaging 'THIS host's own published request log', rolled up by operator, category, and crawler, with unmatched requests and browser-shaped strings named separately. It explicitly distinguishes itself from triage_log (a file you paste) and triage_my_request (your own request as one line of an access log).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing guidance: 'Every other tool on this server wants a file pasted in; this one wants nothing.' Names triage_my_request as the other zero-argument call and explains what each answers, and provides the exact HTTP endpoint, JSON-RPC payload, and a validated example call. There is no ambiguity about when to pick this tool over a sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

robots_from_logrobots.txt from a logB
Read-onlyIdempotent
Inspect

FIRST CALL, needs nothing: {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"no_arguments_triage_this_hosts_own_crawler_log","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.

ParametersJSON Schema
NameRequiredDescriptionDefault
logYesThe log text.
stanceNoDefault block-ai-training.

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds meaningful behavioral context by explaining that the output 'is a request, not enforcement' and that only crawlers present in the log are named, which clarifies the tool's effect and limitations beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with an unrelated invocation of a sibling tool, which is noise and confusion. The useful explanation of the robots.txt behavior and the example are buried after that; the first part should be removed or clearly marked as a prerequisite workflow step.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The core output behavior is explained and an example is provided, but the description does not specify the expected log format beyond one example and does not clarify the semantics of the other stance enum values. The misleading 'FIRST CALL' instruction also creates a gap in understanding the tool's actual prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the schema descriptions are minimal. The description adds value by giving a concrete example mapping log='412 GPTBot/1.2' and stance='block-ai-training' to the output 'blocks GPTBot only,' clarifying how the log and stance interact. It doesn't explain every stance enum value, but the example provides practical semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description makes clear that the tool produces a robots.txt restricted to crawlers found in the provided log, including request counts, blocking costs, and warnings. It distinguishes itself from siblings like waf_ruleset_from_log by naming the exact output artifact and its log-derived scope, though it lacks an explicit verb such as 'generates' or 'creates.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description opens with a full JSON-RPC invocation for no_arguments_triage_this_hosts_own_crawler_log and says 'FIRST CALL, needs nothing,' which is actively misleading for a tool that requires the 'log' parameter. It provides no guidance on when to choose this tool over siblings such as triage_log or waf_ruleset_from_log.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

summarize_by_operatorRoll a log up by operator and categoryA
Read-onlyIdempotent
Inspect

FIRST CALL, needs nothing: {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"no_arguments_triage_this_hosts_own_crawler_log","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.

ParametersJSON Schema
NameRequiredDescriptionDefault
logYesLog text, or a `uniq -c` user-agent table.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral facts beyond the annotations: the tool requires no prior call, only aggregates (no per-line diagnostics), and can consume a shell-pipeline `uniq -c` table. The example ('412 GPTBot/1.2' returns OpenAI, 412 requests, 100%, ai-training) is a behavioral mini-spec. Annotations already mark it read-only, idempotent, non-destructive, and the description matches.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and information-dense: it states the call prerequisite, the aggregate scope, the accepted input shape, and gives a concrete example in three sentences. The embedded JSON-RPC invocation is somewhat noisy but is genuinely useful for a FIRST CALL instruction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter aggregation tool, the description covers purpose, input shape, and a worked example. With read-only annotations and no output schema, it lacks detail on the exact output format, but the example supplies enough for a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description also tells the agent the parameter accepts raw log text or a `uniq -c` user-agent table, so the meaning of the parameter is clear. It does not add format details such as delimiters or line separation, so it adds modest value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is explicit about the verb and resource: it rolls up a log by operator and category, producing request counts, shares, category, and blocking costs. The title reinforces the same, and the short example makes the function of the tool unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states it is a FIRST CALL that needs nothing, and distinguishes it from more general triage by saying 'Aggregate only' and showing it accepts a `uniq -c` table; this tells an agent when to choose it for aggregate analytics. It does not explicitly name alternatives, but the 'Aggregate only' and 'Eats a uniq -c table' framing implicitly differentiates it from log-triage siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

triage_logTriage a paste of log linesA
Read-onlyIdempotent
Inspect

FIRST CALL, needs nothing: {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"no_arguments_triage_this_hosts_own_crawler_log","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.

ParametersJSON Schema
NameRequiredDescriptionDefault
logYesThe log text, up to 5000 lines. Mixed formats are fine.
limitNoMax rows, default 200.
detailNoPer-line table, or aggregates only.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the read-only nature is covered. The description adds meaningful behavioral context: auto-detection of formats, line-count cap ('up to 5000 lines') is in the schema but the description says 'Paste log lines', and the tool's output scope is disclosed (per-line plus rollups and contradiction rows). It doesn't describe failure for oversized pastes or how auto-detection is ambiguous, but with annotations carrying the safety profile, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded with the most important fact ('FIRST CALL, needs nothing') and a concrete example at the end. Every sentence earns its place; the inline JSON-RPC example is a bit verbose but functions as a literal invocation template for an agent. Slightly long, yet the density is justified by the need to enumerate accepted formats and outputs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters, 100% schema coverage, and no output schema, the description covers input formats, output contents, and an example. The main omission is that it does not explain how the 'limit' and 'detail' parameters shape the output, or what 'contradicts its claim' means at a deeper level, but an agent can correctly invoke this tool with the provided information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value by saying 'auto-detected' for input formats, clarifying that the log parameter accepts mixed formats without configuration, and the example demonstrates the exact syntax and semantics of the log parameter. It also communicates the purpose of the result columns (crawler, operator, purpose, cost), which helps an agent understand what limit/detail will produce.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Triage') and resource ('a paste of log lines'), and the opening 'FIRST CALL, needs nothing' telegraphs it as the zero-argument entry point to a family of log tools. The description enumerates inputs (paste formats) and exact outputs (per-line crawler/operator/purpose/cost, rollup by operator and category, plus contradiction detection), and the worked example distinguishes it sharply from siblings like robots_from_log and summarize_by_operator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly marks itself as the first call ('FIRST CALL, needs nothing'), lists accepted pasted formats, and warns 'Log text, never a URL', which is an explicit exclusion. The sibling list shows routing intent, e.g., the zero-argument sibling does triage on this host's own crawler log, while triage_log separates by noting its own inputs are pasted lines, not its host's log.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

triage_my_requestTriage my own request (no arguments)A
Read-onlyIdempotent
Inspect

{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"triage_my_request","arguments":{}}} — POST that exact body to https://www.pathwren.workers.dev/mcp/triage and the answer is your own request triaged as one line of an access log — the crawler this host's index identifies from your user-agent, its operator and category, and whether the address you came from verifies against that operator's published prefixes. THIS IS THE CALL TO MAKE FIRST on this server: it is the only one whose subject is the request you just sent, so there is nothing to look up and no argument to invent. No key, no account, no OAuth, no session to open first, read-only, and nothing for you to invent. Every fact is computed from your own headers and from files this host already publishes; nothing is fetched to build it, and no URL of yours is touched. Only this server answers your own request triaged as one line of an access log, by the same parser and the same index that read a whole file — its six siblings answer one other question each about you, same empty arguments, each under the tool named beside its path: /mcp (whoami), /mcp/doctor (no_arguments_check_this_hosts_own_discovery_documents), /mcp/lint (whoami), /mcp/robots (no_arguments_lint_this_hosts_robots_txt), /mcp/netcheck (no_arguments_report_the_crawler_ip_ranges_this_host_mirrors), /mcp/markdown (markdown_lane_self_report) on https://www.pathwren.workers.dev; whoami is answered by all seven and is never an error, so one identical body still walks the whole family if you prefer that. Example: the complete call, exactly as written, nothing to fill in — {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"triage_my_request","arguments":{}}} returns the single log line built from your address and your user-agent, the triage row for it, and the same rollup triage_log returns for a whole file.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
youYesThe user-agent you sent and the address you came from.
caveatsYes
licenseYes
answered_byYesWhich server answered, at which endpoint, with which tool.
independentYes
we_book_you_asYesThe class this host's own instrument records for that user-agent.
this_call_touchedYesExactly which files were read. No third party is contacted.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnlyHint, idempotentHint, and destructiveHint=false; the description adds context beyond them: 'No key, no account, no OAuth, no session to open first,' 'nothing is fetched to build it, and no URL of yours is touched,' and that every fact is computed from the agent's own headers and already-published files. This gives a complete prerequisite and side-effect profile consistent with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The clear weak dimension. One run-on paragraph that repeats itself: 'nothing for you to invent' appears twice, the exact request body is given twice, and the sibling inventory duplicats the sibling-tools context signal. The hardcoded endpoint URL and prenthetical sibling names add length without adding decision value, and the example at the end restates the opening.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-argument, annotation-covered tool with an output schema, everything needed is present: exact call body, return shape ('a single log line... the triage row... and the same rollup triage_log returns'), auth profile, side-effect profile, and sibling routing. Short of the sibling enumeration not matching the full provided sibling list exactly, nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0 parameters the baseline is 4. The description goes further: it embeds the exact request body, repeats that arguments must be empty ('nothing to fill in'), and warns 'no argument to invent' — genuinely useful for a zero-arg tool an agent might otherwise fabricate arguments for. Schema coverage is 100% but the description adds the copy-pasteable call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+output: triaging 'your own request' into 'one line of an access log' with crawler identification from user-agent, operator, category, and address verification. Explicitly distinguishes itself from siblings: 'it is the only one whose subject is the request you just sent.' The purpose is precise even though it sits mid-paragraph.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use direction: 'THIS IS THE CALL TO MAKE FIRST on this server:' followed by the reason ('there is nothing to look up and no argument to invent'). Names the six sibling endpoints and the whoami escape hatch ('answered by all seven and is never an error'), giving the agent a concrete decision procedure. This is exemplary routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waf_ruleset_from_logWAF ruleset from a logA
Read-onlyIdempotent
Inspect

FIRST CALL, needs nothing: {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"no_arguments_triage_this_hosts_own_crawler_log","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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
logYesThe log text.
scopeNoA category (default ai-training), 'all-seen', 'impersonators', or a stance.
actionNoDefault block.
targetNoDefault nginx.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds meaningful behavior beyond that: the reply warns that a UA rule only stops honest clients and that impersonation requires allowlisting published prefixes. It also scopes the tool to 'only the crawlers in your log'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description leads with a large, raw JSON-RPC invocation for a different tool, which delays and obscures the actual purpose. The useful content is present but poorly front-loaded; the first-call instruction could be one short sentence instead of an embedded call object.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with no output schema, the description gives a purpose, an example, and an important behavioral caveat. However, the ambiguous 'FIRST CALL' instruction and lack of any description of the returned ruleset format leave noticeable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value with a concrete example (log='412 GPTBot/1.2', target='nginx', scope='ai-training') and lists the supported target engines in prose, helping the agent map arguments to real usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific deliverable: nginx, Caddy, Cloudflare, HAProxy or Apache rules for only the crawlers in the log. This identifies the tool's verb and resource, though the opening 'FIRST CALL' reference to a different tool muddies the focus and keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a workflow: call no_arguments_triage_this_hosts_own_crawler_log first, since it 'needs nothing', then presumably use this tool. However, it never explicitly says when to choose waf_ruleset_from_log over siblings like robots_from_log or find_impersonators.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whoamiWho is calling? — the one call that needs nothing from youA
Read-onlyIdempotent
Inspect

{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"whoami","arguments":{}}} — POST that to https://www.pathwren.workers.dev/mcp/triage and the answer is the user-agent you sent, the class this host's own instrument books it as, whether we have logged you here before — and the part only this server can answer: the request you just made, run through triage_log as a single log line, naming the crawler it identifies, its operator and category, and whether your address verifies against that operator's published prefixes. Takes no arguments. Safe to call. Deterministic. Touches no third party. Nothing is fetched to build it: every fact comes from the headers on your own request or from a file this host already publishes. Only this server answers the last part — its five siblings answer one other question each about you, same empty arguments, each under the tool named beside its path: /mcp (whoami), /mcp/doctor (no_arguments_check_this_hosts_own_discovery_documents), /mcp/lint (whoami), /mcp/robots (no_arguments_lint_this_hosts_robots_txt), /mcp/netcheck (no_arguments_report_the_crawler_ip_ranges_this_host_mirrors), /mcp/markdown (markdown_lane_self_report) on https://www.pathwren.workers.dev. Example: arguments={} returns your user-agent, your address, the class we book you as, whether we have seen you here before, and your own request triaged as one line of an access log, by the same parser and the same index that read a whole file.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
youYesThe user-agent you sent and the address you came from.
caveatsYesWhat this answer does NOT establish — a user-agent is a claim.
licenseYes
answered_byYesWhich server answered, at which endpoint.
independentYesThis host is independent and unaffiliated.
we_book_you_asYesThe class this host's own instrument records for that user-agent.
we_have_seen_youYesWhether this user-agent appears in the published observation window.
this_call_touchedYesExactly which files were read to answer. No third party is contacted.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnly/openWorld=false/idempotent/non-destructive, and the description adds rich context beyond them: 'Deterministic', 'Touches no third party', 'Nothing is fetched to build it: every fact comes from the headers on your own request or from a file this host already publishes', and processing 'by the same parser and the same index that read a whole file'. This data-provenance and side-effect disclosure is exactly the kind of behavioral detail annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single dense run-on paragraph that opens with a raw JSON-RPC payload instead of a purpose statement, and the closing example repeats the return list already spelled out earlier. The sibling-path enumeration is an unwieldy wall of parentheticals. Dense with information, but under-structured, redundant, and not front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-argument read-only tool with an output schema and safety annotations, the description covers everything needed: return contents, data sources, determinism, absence of side effects, sibling routing, and a worked example. The only real gap is that the five named sibling paths do not cleanly match the actual sibling-tools list, which could misdirect an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the rubric baseline is 4. The description confirms 'Takes no arguments' and gives an 'arguments={}' example mapping the empty call to each return value. There is nothing more parameter semantics could convey for an empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states precisely what the tool returns: the caller's user-agent, the class the host books it as, prior-visit status, and the request triaged as a single log line with crawler, operator, category, and address verification. It also distinguishes itself from siblings explicitly ('the part only this server can answer' vs. 'its five siblings answer one other question each'), so an agent can separate it from triage_log, triage_my_request, and the others without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Whe-to-use is explicit: it is the zero-argument tool that answers the caller's own identity/triage, while 'its five siblings answer one other question each about you, same empty arguments,' with alternatives named. The guidance is degraded by a garbled path-to-tool mapping — two entries are labeled 'whoami' and the listed paths do not cleanly correspond to the provided <sibling-tools> list — so an agent could mis-route.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool update
    • Addedno_arguments_triage_this_hosts_own_crawler_log
  2. 8 tool updates
    • First observedexample
    • First observedfind_impersonators
    • First observedrobots_from_log
    • First observedsummarize_by_operator
    • First observedtriage_log
    • First observedtriage_my_request
    • First observedwaf_ruleset_from_log
    • First observedwhoami

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    53 security & enrichment MCP tools for AI agents. Contract scanning, threat intel, OSINT, crypto data, DNS/WAF recon. Pay-per-call via HTTP 402 + USDC on Base mainnet. No API keys. First call free.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Keyless, pay-per-call AI gateway: 248 LLMs plus image/video/voice/music generation and live crypto, DeFi, markets, web-search and research tools through one MCP server. Pay per call in USDC via x402 on Base/Solana — no API key, no signup, free tier.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides real Bitcoin full node data via 17 tools, with pay-per-call in USDC on Base mainnet. Free tools include blockchain info, fees, and mempool; paid tools enable transaction tracking, address analysis, and more.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.5/5.0
Disambiguation2/5

Multiple tools have unclear boundaries: triage_log, summarize_by_operator, and find_impersonators overlap in parsing log input and reporting crawler identities, while triage_my_request and whoami both answer with the current request triaged as a single log line. The output generators are clearer, but an agent could easily pick the wrong triage variant.

Naming Consistency2/5

Names mix styles: verb_noun (triage_log, find_impersonators), noun_from_noun (robots_from_log, waf_ruleset_from_log), bare nouns (example, whoami), and one extremely long descriptive name (no_arguments_triage_this_hosts_own_crawler_log). There is no predictable naming convention across the set.

Tool Count4/5

Nine tools is a reasonable size for a log-triage server, but the set feels slightly padded by redundant self-introspection tools such as triage_my_request and whoami, which cover nearly the same request-triage behavior. Not bloated, but a few tools could be merged.

Completeness4/5

The server covers the main log-triage workflow: parse log lines, detect impersonators, summarize by operator, and generate robots.txt or WAF rules. Minor gaps exist, such as the lack of a direct single-IP or single-user-agent lookup tool, but the core task can be completed without dead ends.

Resources