Diagnose a traffic drop
start_seo_diagnosisAnalyze a year of search data for the cause of a traffic drop, optionally for a date range (YYYY-MM-DD).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | ||
| rangeEnd | No | ||
| projectId | Yes | ||
| rangeStart | No |
start_seo_diagnosisAnalyze a year of search data for the cause of a traffic drop, optionally for a date range (YYYY-MM-DD).
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | ||
| rangeEnd | No | ||
| projectId | Yes | ||
| rangeStart | No |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=false and no annotations explaining the side effect, the description should carry the burden of saying what starting a diagnosis does. It never says whether this creates an asynchronous job, how results are later retrieved (get_seo_diagnosis / list_seo_diagnoses), whether it consumes quota, or how long it runs. 'Analyze' reads as passive, but the annotation declares a non-read operation that the description does not explain.
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?
A single front-loaded sentence stating purpose, default scope, and the optional narrowing parameter. Nothing is wasted and the most important information comes first.
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 non-read, 4-parameter tool with no output schema and 0% schema coverage, the description is too thin. It does not explain the required projectId/siteId scope, whether the call is asynchronous, what it returns or how to fetch the resulting diagnosis, so an agent cannot invoke it confidently end-to-end.
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 0%, so the description must compensate. It does clarify the two optional date parameters (date range in YYYY-MM-DD and the one-year default window), which adds meaning beyond the bare regex pattern, but projectId and siteId — both required — are left entirely unexplained.
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 (analyze) and resource (a year of search data) with a clear goal (find the cause of a traffic drop), so an agent knows what it triggers. It does not explicitly differentiate from close siblings like get_seo_diagnosis or list_seo_diagnoses, leaving the start-vs-retrieve distinction to be inferred from the name.
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?
It gives implicit context by stating the default scope (a year of search data) and the optional date-range narrowing, which helps an agent decide how to call it. There is no explicit when-to-use guidance, no mention of the retrieve-side siblings, and no indication of when a diagnosis should be triggered at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.