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
Healthy
Uptime
97.1% over 16 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.6/5.0

Scored across 9 tools

Disambiguation2/5

Several tools occupy nearly identical territory: whoami and am_i_allowed both report which robots.txt group matches the caller and whether paths are allowed, while no_arguments_lint_this_hosts_robots_txt also performs a self-host evaluation. check_path_allowed and audit_ai_access overlap on evaluating a pasted robots.txt for crawlers, and the verbose descriptions repeat the same 'FIRST CALL' boilerplate instead of drawing clear boundaries.

Naming Consistency2/5

Core tools generally use verb_noun naming (check_path_allowed, lint_robots_txt, merge_policy), but the set mixes in question-style names (am_i_allowed, whoami), a generic example, and an unwieldy no_arguments_ prefix that breaks normal naming. There is no single predictable convention an agent can rely on.

Tool Count3/5

Nine tools is not excessive, but at least four tools (am_i_allowed, whoami, no_arguments_lint_this_hosts_robots_txt, example) serve the same self-host/zero-arg niche and could be collapsed. The core lint/evaluate/merge/diff functionality is arguably five real tools, making the surface slightly padded.

Completeness4/5

The core domain is well covered: linting, RFC 9309 allow checks, AI-crawler auditing, diffing, and policy merging are all present. Obvious gaps are a lack of remote-URL fetching and a create-from-scratch generator, but agents can work around these by pasting content and using merge_policy.

Available Tools

9 tools
am_i_allowedWhat does this robots.txt say to me? (no arguments)A
Read-onlyIdempotent
Inspect

{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"am_i_allowed","arguments":{}}} — POST that exact body to https://www.pathwren.workers.dev/mcp/robots and the answer is what this host's own robots.txt says to YOU — the group that matches your user-agent, the line that decided it, that group verbatim, and whether you are allowed each of three paths, evaluated by the same RFC 9309 engine as check_path_allowed. 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 what this host's own robots.txt says to YOU — the group that matches your token, the line that decided it, and whether you are allowed the path you are on — 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/triage (no_arguments_triage_this_hosts_own_crawler_log), /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":"am_i_allowed","arguments":{}}} returns your matched group and the line it was matched on, plus an allowed/disallowed verdict for /, /data/agents.json and /mcp/robots.

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.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior; the description adds genuinely new context: no key, account, OAuth, or session needed; nothing is fetched to build the answer; no URL of the caller's is touched; and the result is computed from the caller's own headers plus this host's published files. It also discloses the exact return elements (matched group, deciding line, per-path verdict), going well beyond what annotations provide.

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 a single run-on wall of text with heavy ALL-CAPS emphasis, and the identical JSON-RPC example appears twice. It front-loads raw protocol details instead of a plain-language purpose statement and includes an extensive sibling-to-path mapping that could be trimmed or separated, so it is verbose and poorly structured despite the value of its 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?

For a zero-argument, read-only tool with an output schema, nothing needed for correct invocation is missing: exact call body, what it computes, how it computes it, the three paths evaluated, its priority relative to siblings, and its side-effect-free profile are all present. The description is over-complete rather than under-complete.

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 and full schema coverage, the baseline is 4. The description reinforces that there is 'nothing to look up and no argument to invent' and supplies the exact JSON-RPC body to POST, removing any guesswork even though the schema already shows an empty object with an example.

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 a specific function: report what this host's robots.txt says to the caller — the matched user-agent group, the deciding line verbatim, and allowed/disallowed verdicts for three fixed paths. It also distinguishes itself from check_path_allowed (same RFC 9309 engine but a different tool) and from the sibling family, so an agent can tell them apart.

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?

It gives explicit priority guidance ('THIS IS THE CALL TO MAKE FIRST') and maps each of the six siblings to the one question it answers, which routes an agent well. However, it never states explicit when-not conditions (e.g., preferring check_path_allowed for an arbitrary path), and the sibling names cited in the description do not fully match the emitted sibling tool list, so the routing is clear but not airtight.

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

audit_ai_accessWhich AI crawlers does this file actually stop?A
Read-onlyIdempotent
Inspect

FIRST CALL, needs nothing: {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"no_arguments_lint_this_hosts_robots_txt","arguments":{}}} — Evaluate a pasted robots.txt against every AI crawler in this index and return the two lists that matter: blocked and allowed, per operator and category. Also names the tokens in your file that match no known crawler (a typo blocks nothing) and separates the crawlers that document obedience from the ones observed ignoring robots.txt, which need an IP or WAF rule instead. Example: path='/' with your robots_txt pasted in — the verdict is per crawler, at that path. Also callable without MCP, same implementation: GET https://www.pathwren.workers.dev/tools/ai-access?robots_txt=&s=client-dossiers

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to test the verdict at. Defaults to "/".
robots_txtYesThe contents of the robots.txt file.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds substantial behavioral context beyond annotations: it discloses that the tool identifies typos matching no known crawler, separates crawlers that document obedience from those observed ignoring robots.txt, and evaluates per path. It also reveals the same implementation is callable via HTTP, which is important behavioral information for an MCP agent.

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 efficient and front-loaded with the first-call instruction and an immediately usable JSON-RPC payload. It is longer than the average description, but every sentence earns its place by describing return categories, typo identification, obedience behavior, and fallback advice. The structure leads with the most actionable information, though the inline JSON-RPC example adds length that might distract from the core purpose.

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 read-only analysis tool with no output schema, the description is remarkably complete. It tells the agent what inputs to provide, what the verdicts mean, how to interpret unknown tokens, and what follow-up action may be needed (IP/WAF rule). It even provides an HTTP fallback invocation. There is no output schema, so the description's detail about the two lists and the typo report compensates adequately.

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 schema already documents both parameters. The description adds value by clarifying the robots_txt parameter is the full file contents to paste, that path defaults to '/', and that the verdict is per-crawler at that path. It does not duplicate the schema verbatim and adds a concrete example showing what a pasted robots.txt looks like.

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 a very specific verb-resource pair: evaluate a pasted robots.txt against every AI crawler in the index, returning blocked/ allowed lists per operator and category. It also explicitly differentiates itself from sibling tools by describing what it does rather than what related tools do, and it names the alternative entry point 'no_arguments_lint_this_hosts_robots_txt' as the FIRST CALL, making its purpose and relationship to siblings clear.

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?

The description explicitly tells the agent when to use it: it is the FIRST CALL, needs nothing, and should be used to evaluate a pasted robots.txt. It also states when an alternative path is needed: crawlers observed ignoring robots.txt need an IP or WAF rule instead. It names the sibling no_arguments_lint_this_hosts_robots_txt and the no-MCP HTTP equivalent, so usage context is explicit rather than implied.

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

check_path_allowedWould this crawler fetch this path?A
Read-onlyIdempotent
Inspect

FIRST CALL, needs nothing: {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"no_arguments_lint_this_hosts_robots_txt","arguments":{}}} — Evaluate a pasted robots.txt for one crawler and one or more paths under RFC 9309: longest token match for the group, longest path pattern for the rule, Allow breaking a tie, * and $ supported. Returns allowed/disallowed per path with the exact line that decided it, and flags the cases where a merge-groups parser and a first-group-wins parser would disagree. Example: user_agent='GPTBot', paths=['/', '/blog'], with your robots_txt pasted in. Also callable without MCP, same implementation: GET https://www.pathwren.workers.dev/tools/robots-allowed?robots_txt=&ua=GPTBot&path=/blog&s=client-dossiers

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsNoPath or paths to test, e.g. "/blog/post". Defaults to "/". Max 200.
robots_txtYesThe contents of the robots.txt file.
user_agentYesThe crawler's product token, e.g. GPTBot, Googlebot, ClaudeBot.

TDQS

A3.9/5.0
Behavior5/5

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

Annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) already establish safety, and the description adds substantial beyond-annotation behavior: exact RFC 9309 matching semantics (longest token match for the group, longest path pattern for the rule, Allow tie-break, * and $ support), the return shape (allowed/disallowed per path with the exact deciding line), and the parser-divergence flagging. It also discloses a non-MCP invocation path. 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?

The core description is informative, but it is front-loaded with a large JSON-RPC invocation blob for no_arguments_lint_this_hosts_robots_txt that does not describe this tool and costs tokens. The RFC 9309 detail, example, and HTTP fallback each earn their place, but the overall structure is cluttered and the key purpose statement is buried after irrelevant content.

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?

With no output schema, the description correctly carries the return-value burden ('Returns allowed/disallowed per path with the exact line that decided it') and even covers edge-case behavior (merge-groups vs first-group-wins disagreement). Combined with 100% schema parameter coverage, an agent has what it needs to call correctly. Only the misplaced opening block and lack of explicit sibling routing keep this from a 5.

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 beyond the schema by providing example user_agent tokens (GPTBot, Googlebot, ClaudeBot), clarifying that paths can be a single path or multiple ('one or more paths'), and explaining how user_agent drives group selection via RFC 9309 longest token match. This gives the agent semantic context the schema alone does not convey.

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?

States a specific verb+resource: 'Evaluate a pasted robots.txt for one crawler and one or more paths under RFC 9309', which distinguishes it from siblings like lint_robots_txt (syntax validation) and am_i_allowed (hosted-policy checks). The title 'Would this crawler fetch this path?' reinforces intent. Deducted because the description opens with a confusing JSON-RPC snippet for a different tool (no_arguments_lint_this_hosts_robots_txt) that clouds the purpose.

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?

Usage is implied through the example (user_agent='GPTBot', paths=['/', '/blog'], with your robots_txt pasted in) and the repeated 'pasted robots.txt' wording, which signals this tool takes content rather than a URL. The HTTP alternative is disclosed as a fallback invocation path. However, there is no explicit when-to-use vs alternatives (e.g., when to prefer am_i_allowed or lint_robots_txt), and the opening 'FIRST CALL' instruction ambiguously routes the agent toward a sibling tool instead of clarifying this tool's role.

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

diff_robots_txtDiff two robots.txt by effectA
Read-onlyIdempotent
Inspect

FIRST CALL, needs nothing: {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"no_arguments_lint_this_hosts_robots_txt","arguments":{}}} — Compare two versions of a robots.txt and report only the crawlers whose verdict actually changes at a given path — not the text difference. Answers 'did my edit do what I meant, and did it do anything else', including sitemap additions and whether the parse errors went up or down. Example: before='User-agent: *\nAllow: /\n', after=your edited file, path='/'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to compare verdicts at. Defaults to "/".
afterYesThe new robots.txt.
beforeYesThe old robots.txt.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond the schema: it reports only verdict changes at a given path, includes sitemap additions, and indicates whether parse errors went up or down. It does not go into details like rate limits or exact output shape, but it is fair given the annotation coverage.

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 but packed with useful information, including a runnable first-call snippet and an example. It is front-loaded with the most important routing callout. The embedded JSON-RPC snippet is a bit long and could have been shortened, but it directly supports correct first invocation, so it earns its place.

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 read-only diff tool with 100% schema coverage and no output schema, the description covers the input semantics, the behavioral scope (verdicts, sitemap additions, parse error trend), and a worked example. It does not specify the exact return format, but since there is no output schema and the tool's goal is clearly stated, this is a moderate gap rather than a severe one.

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 meaning by explicitly naming the example values (before='User-agent: *\nAllow: /\n', after=your edited file, path='/') and by clarifying that before is 'the old robots.txt' and after is 'the new robots.txt'. That mapping helps an agent avoid swapping the two parameters, which is meaningful semantic value beyond the raw 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 a specific task — diff two robots.txt versions and report only crawler verdict changes at a given path — which clearly distinguishes it from text-diff or linting siblings. It also gives an explicit example of the core before/after/path semantics, making the tool's purpose concrete.

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?

The description explicitly says 'FIRST CALL, needs nothing' and embeds an exact JSON-RPC invocation for the prerequisite scan tool, which strongly guides when to use this tool. It also frames the use case ('did my edit do what I meant...') and contrasts with reporting text differences, helping an agent choose this over lint or check tools.

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

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/robots 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 — lint_robots_txt, 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 — lint_robots_txt on three groups lifted verbatim from this host's own published /robots/block-ai-training.txt and /robots.txt — our data, not yours, and nothing is fetched — 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 lint_robots_txt with {"robots_txt":"# lifted from https://www.pathwren.workers.dev/robots/block-ai-training.txt 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.4/5.0
Behavior5/5

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

Beyond the annotations, the description adds substantial behavioral context: it is free, requires no API key or account, is deterministic, fetches nothing, touches no third party, and returns a real structuredContent rather than a mock. It also specifies the exact canned inputs and that they come from the host's own data. These details go well beyond what readOnlyHint and idempotentHint already provide.

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 overly verbose and repetitive: 'no third party is touched', 'canned from this host's own data', and 'shape of an answer' are each stated multiple times. While the opening JSON-RPC example is useful, the same information could be delivered in about half the length. The redundancy makes it harder to parse quickly.

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 parameterless example tool with an output schema, this description is complete: it explains exactly how to invoke it, what the input is, what the return value represents, that it is safe and deterministic, and how to use the result. There is no missing information an agent would need to call it correctly.

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?

The tool has zero parameters, and the input schema already documents this with an empty object example. The description reinforces that it takes no arguments, which is sufficient baseline for a parameterless tool. No further parameter explanation is needed.

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 a specific action: run this server's own worked example of lint_robots_txt and return the exact structuredContent a real call produces. It distinguishes the example tool from the actual sibling tools by emphasizing it uses canned host data rather than user input. The tool's role as a demo is 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 explicitly tells the agent when to use it: 'Use it to see the shape of an answer before you decide what to send.' It also clarifies that no user data or URLs are involved, which prevents misuse. However, it does not explicitly name sibling alternatives or state when not to use this tool, so it stops short of full when/when-not guidance.

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

lint_robots_txtLint a robots.txtA
Read-onlyIdempotent
Inspect

FIRST CALL, needs nothing: {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"no_arguments_lint_this_hosts_robots_txt","arguments":{}}} — Parse a robots.txt you paste and report every fault that makes it do something other than what it looks like: misspelled directives, a full UA string where a product token belongs, rules before any User-agent line, duplicate groups, noindex (unsupported since 2019), relative Sitemap URLs, BOM. Each finding carries the line number and the fix. Example: robots_txt='User-agent: GPTBot\nDisallow: /\n\nUser-agent: *\nAllow: /\n' — paste the whole file, it is never fetched for you. Also callable without MCP, same implementation: GET https://www.pathwren.workers.dev/tools/robots-lint?robots_txt=&s=client-dossiers — or POST the file as the raw body to the same URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
robots_txtYesThe contents of the robots.txt file.

TDQS

A3.8/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description aligns with them. It adds substantial behavioral detail: it reports line numbers and fixes, flags specific fault types, and emphasizes the file is never fetched. There is no contradiction.

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 overlong and front-loaded with a JSON-RPC call to a sibling tool rather than this tool's own usage. The alternate HTTP endpoint and embedded workflow instruction add noise, making the genuinely useful guidance harder for an agent to parse.

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 simple one-string read-only linter with no output schema, the description sufficiently covers what to pass, how to pass it, what will be analyzed, and what the results contain. The main gap is the confusing FIRST CALL workflow, which slightly reduces completeness.

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?

The schema already provides 100% coverage for the single robots_txt parameter, so this is a baseline 3. The description adds value by explicitly requiring the whole file, giving an example, and clarifying that a URL or hostname is not an acceptable substitute.

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 clearly states the action and resource: 'Parse a robots.txt you paste and report every fault', and lists the kinds of faults in detail. It is distinguishable from siblings like am_i_allowed or diff_robots_txt, though the opening JSON-RPC call to no_arguments_lint_this_hosts_robots_txt muddies the focus.

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 phrase 'paste the whole file, it is never fetched for you' implies when this tool is appropriate (user-supplied content) and hints that fetching is not part of this tool. However, it never explicitly contrasts this tool with the sibling no_arguments_lint_this_hosts_robots_txt or says when to prefer one over the other.

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

merge_policyAdd a ready-made stance to an existing fileA
Read-onlyIdempotent
Inspect

FIRST CALL, needs nothing: {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"no_arguments_lint_this_hosts_robots_txt","arguments":{}}} — Merge one of eight maintained robots.txt stances (block-ai-training, allow-ai-search-only, block-all-ai, block-datasets, block-disputed, block-seo-tools, allow-all, maximum-ai-visibility) into a robots.txt you already have, without touching a single rule you wrote: a token you already name keeps your rules and the stance's version is reported instead of applied. Example: stance='block-ai-training', robots_txt='User-agent: *\nAllow: /\n'.

ParametersJSON Schema
NameRequiredDescriptionDefault
stanceYesOne of the eight stance slugs.
robots_txtYesYour current robots.txt.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds useful context by explaining that existing rules are preserved and that 'the stance's version is reported instead of applied.' This clarifies the non-destructive, preview-like behavior 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 overloaded: it begins with a full JSON-RPC example for a sibling tool, then a long run-on sentence covering stances, behavior, and an example all at once. The core purpose is buried and the structure is not front-loaded for quick agent comprehension.

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 simple two-parameter tool with no output schema, the description covers the decision-relevant details: accepted stance values, the input robots.txt, the non-destructive merge behavior, and an example. It is complete enough, though the irrelevant 'FIRST CALL' block could mislead 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?

Schema coverage is 100%, but the description adds meaning by listing the eight exact stance slugs and providing a concrete example with both parameters populated. This is valuable because the schema describes 'stance' only as 'one of the eight stance slugs' without enumerating them.

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 verb and resource: merge one of eight maintained robots.txt stances into an existing robots.txt. It is clearly distinct from lint/audit/diff siblings, though the opening 'FIRST CALL, needs nothing: ... no_arguments_lint_this_hosts_robots_txt' block muddies the focus by pointing at another tool.

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 phrase 'into a robots.txt you already have' gives a clear prerequisite and usage context, and 'without touching a single rule you wrote' implies when this tool is appropriate. However, it does not explicitly name alternatives or state when not to use merge_policy versus diff_robots_txt or lint_robots_txt.

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

no_arguments_lint_this_hosts_robots_txtNo arguments: lint this host's own robots.txt and ai.txtA
Read-onlyIdempotent
Inspect

TAKES NO ARGUMENTS. POST {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"no_arguments_lint_this_hosts_robots_txt","arguments":{}}} to https://www.pathwren.workers.dev/mcp/robots — the answer is the full RFC 9309 lint of this host's OWN robots.txt and ai.txt, run for real on the bytes it serves — every finding with its severity, its line number and the fix, plus an allowed/disallowed verdict per crawler token per path with the exact rule and line that produced it, and the check that the two files still agree with each other. 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 am_i_allowed, same empty arguments, which answers what this host's own robots.txt says to YOU — the group that matches your user-agent, the line that decided it, that group verbatim, and whether you are allowed each of three paths, evaluated by the same RFC 9309 engine as check_path_allowed. 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/triage (no_arguments_triage_this_hosts_own_crawler_log), /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_lint_this_hosts_robots_txt","arguments":{}}} returns both files parsed and linted, their findings with line numbers and fixes, a verdict table naming the rule that decided each row, the roll-up of which indexed AI crawlers this host's file actually stops, and the agreement check between robots.txt and ai.txt.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
caveatsYes
licenseYes
reproduceYes
answered_byYes
independentYes
files_lintedYesOne entry per file: findings with line numbers and fixes, a summary, and the verdicts.
what_this_isYes
rules_appliedYes
this_call_touchedYes
takes_no_argumentsYes
the_two_files_agreeYesWhether robots.txt and ai.txt return the same verdict for every token and path checked.
to_do_this_for_your_own_fileNo
which_ai_crawlers_this_hosts_robots_txt_stopsYes

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses behavior beyond the annotations: it is read-only, requires no key/account/OAuth, makes no outgoing requests, and runs on live bytes the host publishes. It also describes the output shape (findings with severity, line numbers, fixes, per-crawler verdicts, agreement check). This exceeds what the annotations already declare.

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?

The description is information-dense but quite long and repetitive. It repeats the zero-argument fact many times, includes a full example call twice, and lists sibling routes at length. Every sentence adds some information, but the redundancy pushes it beyond concise. It is front-loaded with the key fact, but would benefit from trimming.

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?

Given the tool has zero parameters, an output schema is present, and annotations cover safety, the description fully prepares an agent: it explains what the call looks like, what the answer contains, what the tool does not need, and how it differs from siblings. Nothing an agent needs to invoke it correctly is missing.

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, there is no schema to elaborate on, so a baseline of 4 applies. The description adds value by explaining that the empty arguments object works and that omitting the arguments key also works, plus an explicit example of the exact call. It doesn't need to do more because there are no parameters to document.

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 explicitly names the tool's action: producing a full RFC 9309 lint of this host's own robots.txt and ai.txt. It clearly distinguishes itself from siblings by stating it takes no arguments and lints this host's own files, not a pasted file. The title and description align on a specific verb+resource.

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?

It gives explicit when-to-use guidance: use when you want a zero-argument lint of this host's files, and explicitly contrasts with am_i_allowed, whoami, example, and other siblings. It also states that every other tool on this server wants a file pasted in, while this one wants nothing, providing clear routing guidance.

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/robots 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: which group in this host's own robots.txt matches YOUR user-agent, the line that decided it, and whether you are allowed the paths you are on, evaluated by the same RFC 9309 engine as check_path_allowed. 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/triage (no_arguments_triage_this_hosts_own_crawler_log), /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 what this host's own robots.txt says to YOU — the group that matches your token, the line that decided it, and whether you are allowed the path you are on.

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 readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false; the description adds substantial value beyond them with '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.' This discloses side-effect guarantees and data provenance that the annotations do not express. There is no contradiction 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 description is long and redundant: the output contents are spelled out in the main prose and then restated almost verbatim in the closing 'Example' sentence, and it opens with a JSON-RPC POST block rather than the tool's purpose. The sibling/path enumeration is verbose and internally inconsistent ('its five siblings' followed by six listed entries, two of them named whoami). Substantial trimming and front-loading of the purpose would improve it.

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?

Given an output schema, zero parameters, and rich annotations, the description is more than sufficient for an agent to invoke the tool correctly: it covers the endpoint, empty arguments, return contents, safety, determinism, and data provenance. The only shortcoming is the confusing sibling inventory, where the stated count of five mismatches the six listed entries and two entries carry the name whoami. Nothing needed to call whoami itself is missing.

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 and 100% schema coverage (empty properties, no required fields), the baseline is 4. The description reinforces this with 'Takes no arguments' and an arguments={} example, which is consistent with the schema but adds little new meaning. Given the schema already fully documents the empty parameter set, no further compensation is needed.

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 a specific, concrete purpose: it returns the caller's user-agent, the class the host books it as, whether it has been seen before, and uniquely, which robots.txt group matches that user-agent, the deciding line, and whether the current paths are allowed per RFC 9309. It also explicitly differentiates from its siblings by calling out 'the part only this server can answer.' This is a specific verb+resource description with clear sibling differentiation.

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 gives clear context for when this tool applies: 'Takes no arguments,' 'Only this server answers the last part,' and it names alternatives ('its five siblings answer one other question each about you, same empty arguments') and check_path_allowed as the equivalent RFC 9309 engine. What it lacks is a crisp decision rule for choosing whoami over each specific sibling, so the guidance is contextual rather than fully prescriptive.

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.

  1. 1 tool update
    • Addedno_arguments_lint_this_hosts_robots_txt
  2. 8 tool updates
    • First observedam_i_allowed
    • First observedaudit_ai_access
    • First observedcheck_path_allowed
    • First observeddiff_robots_txt
    • First observedexample
    • First observedlint_robots_txt
    • First observedmerge_policy
    • First observedwhoami

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.

Resources