Rattlesnakes By Mail: AI Crawler Field Guide
Server Details
Rattlesnakes By Mail is a public record of dated, sourced claims about AI crawlers and AI agents, including GPTBot, ClaudeBot, PerplexityBot, Googlebot, and Applebot. Each claim carries a verbatim quote from vendor documentation, a publication date, and an evidence URL. Five MCP tools cover crawler lookup, user agent identification, change history since a given date, free-text question matching against published claims, and token-gated correction notes.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 5 tools
Each tool has a generally distinct purpose: ask handles free-text questions, identify_user_agent handles unknown User-Agent headers, lookup_crawler handles known crawlers, list_changes tracks updates, and submit_note handles corrections. The only slight ambiguity is between identify_user_agent and lookup_crawler, both of which can work with user-agent strings, but their intended use cases are clearly separated in the descriptions.
Four of the five tools follow a clear verb_noun pattern: identify_user_agent, list_changes, lookup_crawler, and submit_note. The tool 'ask' breaks the pattern slightly by being a bare verb, but it is still short, predictable, and does not create confusion.
Five tools is a well-scoped count for this niche server. Each tool supports a distinct client need: searching claims, identifying crawlers, looking up details, monitoring changes, and submitting feedback. The set feels neither bloated nor thin.
The tool surface covers the main workflows: lookup and identification of crawlers, discovery of claims via questions, change tracking, and community corrections. A minor gap is the lack of a direct way to list all documented crawlers, but ask and lookup_crawler can still surface relevant information.
Available Tools
5 toolsaskAsk A QuestionAInspect
Match a free-text question against the claims published on Rattlesnakes By Mail, and return the matching claims, or no match when no published claim covers the question. Every question sent to ask is recorded, and a recorded question may be published on the public questions page at Rattlesnakes By Mail. Do not send private or identifying text to ask.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | A free-text question about crawlers, agents, or claims. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses significant non-obvious behavior beyond the annotations: every question is recorded, and recorded questions may be published publicly. This directly informs the caller of privacy consequences. It also states the no-match behavior, giving a complete picture of the tool's execution and result semantics. Annotations are all false, so the description carries the full transparency burden and meets it well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences cover the core function, the return behavior, and the critical privacy warning with no filler. The functional behavior is front-loaded, and each sentence earns its place. The structure is well-suited for an agent scanning the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, this description is complete: it explains what the tool does, what it returns, when it returns no match, and the side effect of recording/publishing. Nothing critical is missing for correct invocation, and the privacy warning covers the main risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage with 'A free-text question about crawlers, agents, or claims,' so the baseline is 3. The description adds meaningful parameter-level guidance by warning that the question is recorded and may be published, implying the caller should avoid private or identifying content in the question. This is useful beyond the schema's simple type description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: match a free-text question against published claims and return matching claims or no match. This distinguishes it from sibling tools like lookup_crawler and identify_user_agent, which target specific entities rather than free-text questions. The title is generic, but the description carries full clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use explicit: asking questions about crawlers, agents, or claims for matching against published claims. It also provides an important exclusion by warning not to send private or identifying text because questions are recorded and may be published. However, it does not explicitly name alternative sibling tools or state when to prefer them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identify_user_agentIdentify A User AgentARead-onlyInspect
Match an unrecognized raw User-Agent header against the crawlers documented on Rattlesnakes By Mail, and return the matched crawler plus instructions for verifying the request. Use identify_user_agent when the crawler behind the User-Agent header is not yet known.
| Name | Required | Description | Default |
|---|---|---|---|
| user_agent | Yes | A raw User-Agent header string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the tool is known to be non-destructive. The description adds that it returns the matched crawler plus verification instructions, which is useful behavioral context beyond the annotation. It does not mention potential edge cases like no match, but given the read-only nature and simple output, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The core action and the usage condition are front-loaded, and the output is briefly described. Every sentence earns its place, and it is appropriately concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with a single parameter and no output schema, the description covers the essential information: what it does, when to use it, and what it returns. It does not mention error handling or no-match behavior, but these are minor gaps for a simple identification tool. The context signals and schema are sufficient for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter 'user_agent' with a clear description ('A raw User-Agent header string.'), achieving 100% schema description coverage. The tool description adds minimal extra meaning beyond the schema, only reinforcing that it is a raw header. Baseline of 3 is appropriate since the schema carries the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Match') and resource ('raw User-Agent header against the crawlers documented on Rattlesnakes By Mail'), and it clearly distinguishes itself from siblings by focusing on identification of unrecognized user agents. The phrase 'when the crawler ... is not yet known' further clarifies the specific purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the condition for use: 'Use identify_user_agent when the crawler behind the User-Agent header is not yet known.' This provides a clear trigger, though it does not mention when not to use it or name alternative sibling tools. The context is sufficient for an agent to decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_changesList ChangesARead-onlyInspect
List recorded changes to claims on Rattlesnakes By Mail, newest first, with the change date and the affected crawler. Filter by date with since, by crawler with entity, or by both. Use list_changes to detect crawler policy updates published after a given date.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return, up to 200. | |
| since | No | An ISO date; only changes on or after this date are returned. | |
| entity | No | An entity slug to filter changes to one crawler. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't need to restate that. It adds value by specifying the order (newest first) and the output fields (change date and affected crawler), which are not in the annotations. However, it doesn't mention potential pagination behavior (though limit is in schema) or how many results are returned by default, so it provides moderate transparency but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, concise and front-loaded with the core purpose. The key use case is mentioned at the end, which could be moved earlier for better prominence, but there is no fluff or redundancy. It earns its place with useful scoping details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with a well-defined schema (100% coverage on parameters) and no output schema, the description covers the essential behavior: what it lists, the order, the filters, and the use case. It doesn't describe what the response looks like (but no output schema is present), which is a minor gap, but given the simplicity, it's sufficiently complete for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all parameters (limit, since, entity). The description restates that 'since' filters by date and 'entity' filters by crawler, which adds a small layer of context (e.g., which parameter corresponds to which filter), but it doesn't go beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists recorded changes to claims, with a specific resource (Rattlesnakes By Mail) and a clear scope (newest first, with change date and affected crawler). It distinguishes itself from siblings by emphasizing its filtering capabilities and its role in detecting crawler policy updates, which sets it apart from lookup_crawler and other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit context on when to use this tool: to detect crawler policy updates published after a given date, which implies it is for monitoring changes rather than looking up current state (which would be lookup_crawler). It mentions filtering by date and crawler, but does not explicitly state when not to use it or name alternative tools directly, so it misses the full 'when-not' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_crawlerLook Up A CrawlerARead-onlyInspect
Look up a documented crawler on Rattlesnakes By Mail by name, slug, or user-agent string, and return identity fields, current claims, publication dates, and evidence URLs. Use lookup_crawler when the crawler is already named, or when the user agent is already known to belong to a documented crawler.
| Name | Required | Description | Default |
|---|---|---|---|
| name_or_ua | Yes | A crawler name, slug, or full user-agent string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds useful behavior: the lookup is restricted to documented crawlers and returns identity fields, current claims, publication dates, and evidence URLs. This is valuable context beyond the structured fields and matches the closed-world hint (openWorldHint=false), with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first front-loads the action and expected output, the second gives targeted usage guidance. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup with strong annotations, the description is complete. It names the input format, the scope, and the output categories; since there is no output schema, enumerating the return fields is necessary and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter description already states 'A crawler name, slug, or full user-agent string.' The tool description repeats this without adding new semantic detail, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Look up'), a clear resource ('a documented crawler on Rattlesnakes By Mail'), and the acceptable lookup keys (name, slug, or user-agent string). It also lists the returned fields, making the tool's function unambiguous and distinct from siblings like identify_user_agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The final sentence explicitly states when to use lookup_crawler: when the crawler is already named or the user agent is already known to belong to a documented crawler. This gives clear context and implicitly discourages use for unknown user agents, though it stops short of naming the alternative tool (likely identify_user_agent) explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_noteSubmit A NoteAInspect
Submit a correction or note about a claim, an entity, or a question on Rattlesnakes By Mail. Requires a client token issued out of band by the publisher. Every note is stored as pending, and an editor reviews every pending note before publication.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The note text, up to 2000 characters. | |
| token | Yes | A client token issued by Rattlesnakes By Mail. | |
| target_id | Yes | The id or slug of the claim or entity, or the id or hash of the question, the note is about. | |
| target_type | Yes | The kind of record the note is about. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that every note is stored as pending and editor-reviewed before publication, which is crucial behavioral context beyond the annotations. The annotations only say readOnlyHint=false, but this description clarifies the asynchronous approval workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff; the purpose and key constraint (token, pending state) are front-loaded. Slightly verbose with 'Rattlesnakes By Mail' repetition, but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a submission tool with full schema coverage and no output schema needed. It explains the validation context (editor review) and the token requirement, which are the key non-obvious aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage of parameter descriptions, including enum values and formats. The description does not add new meaning beyond what the schema offers, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (submit) and resource (note about claim/entity/question), and explicitly distinguishes from siblings by naming the context (Rattlesnakes By Mail). The purpose is unmistakable and does not overlap with the other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states when to use (to submit a correction or note) and the prerequisite (client token issued out of band). It effectively signals that this is for user-generated content submission, not for querying or listing like siblings.
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.
5 tool updates
- First observed
ask - First observed
identify_user_agent - First observed
list_changes - First observed
lookup_crawler - First observed
submit_note
Related MCP Connectors
AI Visibility and Content Intelligence tools for Claude and MCP-compatible agents.
Robots-aware website audits, pre-crawl quotes, and structured evidence for people and agents.
A read-only verified record of agent-operable GTM tools: search, fetch, compare, track changes.
A registry of AI agent tools — MCP servers, APIs, CLIs, SDKs — kept current by automated ingestion.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server providing 17 keyless, pay-per-use web-data tools with signed-provenance receipts, enabling AI agents to autonomously fetch, extract, and verify web content on Base mainnet.31 npmMIT
- AlicenseAqualityAmaintenanceA local-first MCP server that lets AI agents read any webpage as clean Markdown, crawl whole sites within configured limits, search without API keys, and solve supported captchas locally — all without cloud services or third-party keys.293AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server that gives AI agents the web as compact, ranked, verified evidence — no API keys, no cloud retrieval, all models local.21 npm1MIT
- FlicenseNot gradedqualityCmaintenanceOne MCP server that gives AI agents nine live data tools — company hiring signals, SEC filings, academic papers, GitHub repos, Hacker News, Stack Overflow, clinical trials, Federal Register, and global news — all as flat, citation-ready JSON with pay-per-result billing.-
Glama MCP Gateway
Add one secure layer between your agents and this server.