Skip to main content
Glama

Rattlesnakes By Mail: AI Crawler Field Guide

Identify A User Agent

identify_user_agent
Read-only

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
user_agentYesA raw User-Agent header string.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources