Skip to main content
Glama

Markdown Lane Check - llms.txt, .md twins, Accept: text/markdown

Have you taken the markdown lane here? (no arguments)

markdown_lane_self_report
Read-onlyIdempotent

{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"markdown_lane_self_report","arguments":{}}} — POST that exact body to https://www.pathwren.workers.dev/mcp/markdown and the answer is which markdown addresses YOUR client has fetched on this host and which pages it took as HTML instead — each one beside the .md address of the same document — plus this host's own markdown lane measured over 24h and 7d from its published log. 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 whether your own client has ever taken this host's markdown lane — which .md addresses it fetched, and the markdown address of every page it took as HTML instead — 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/robots (no_arguments_lint_this_hosts_robots_txt), /mcp/netcheck (no_arguments_report_the_crawler_ip_ranges_this_host_mirrors) 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":"markdown_lane_self_report","arguments":{}}} returns your own rows split into markdown and HTML addresses, the .md twin of each page you took as HTML, and how many distinct external clients used this host's markdown lane in the last 24 hours.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
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.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and the description is fully consistent with them. It adds substantial context beyond the annotations: no key/account/OAuth/session required, "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." This gives the agent a precise safety and side-effect profile. 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.

Conciseness2/5

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

The definition is a single dense run-on paragraph with deep nesting, and the JSON-RPC body is effectively repeated twice — once embedded mid-description and once in the closing example. Some content (the elaborate six-sibling parenthetical) is arguably tool-family documentation better placed elsewhere. It fails the 'appropriately sized and front-loaded' bar despite every sentence carrying some information.

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 tool with an output schema and rich annotations, the description is over-complete rather than under-complete: it covers call priority, auth requirements, computational side effects, return contents (rows split into markdown/HTML addresses, .md twins, 24h client counts), and sibling routing. The minor mismatch between "24h and 7d" stats and the closing example's 24h-only summary does not create a real knowledge gap.

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 rubric baseline is 4, and the description adds value beyond it: it repeatedly assures the agent "there is nothing to look up and no argument to invent," states the siblings share "same empty arguments," and provides the exact JSON-RPC body to POST. This directly resolves the most common agent uncertainty with empty-argument tools — what to actually send.

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: the tool "answers which markdown addresses YOUR client has fetched on this host and which pages it took as HTML instead," plus host-wide markdown-lane statistics over 24h and 7d. It also explicitly distinguishes itself from the family: "its six siblings answer one other question each about you." An agent can tell exactly what subject this tool covers.

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?

Provides exceptionally explicit when-to-use guidance: "THIS IS THE CALL TO MAKE FIRST on this server: it is the only one whose subject is the request you just sent." It names alternatives and even offers a fallback strategy ("one identical body still walks the whole family if you prefer"). However, the sibling enumeration is convoluted — nested parentheticals with path-derived names like "/mcp/lint (whoami)" — and does not cleanly match the actual sibling tool list, which slightly muddies the routing guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.6/5.0
Disambiguation2/5

check_markdown_lane and explain_llms_txt are clearly distinct, but markdown_lane_self_report and whoami overlap heavily in what they report about the caller's fetched markdown lanes, and both claim to be the 'FIRST CALL'. The example tool adds further confusion by being a demo rather than a distinct analysis operation.

Naming Consistency2/5

Tool names mix styles: check_markdown_lane and explain_llms_txt use verb_noun, markdown_lane_self_report is a noun phrase, while whoami and example are single generic words. There is no consistent naming convention across the set.

Tool Count4/5

Five tools is a reasonable size for a focused checker, and the core check/explain pair earns its place. However, example is arguably unnecessary and the self-report/whoami pair could be consolidated without losing functionality.

Completeness4/5

The core domain is well covered: check_markdown_lane tests the six markdown lane affordances, and explain_llms_txt critiques llms.txt content. Minor gaps exist, such as no direct tool for checking an individual .md twin's status independent of the full lane check, but the main workflows have no dead ends.

Resources