Skip to main content
Glama
AgentSEO MCP Server

AgentSEO MCP Server

AgentSEO Analyze SERP

agentseo_analyze_serp
Destructive

Analyze search engine results pages for a keyword to identify SERP features and competitor rankings, with optional device, location, and language targeting.

Instructions

Deep analysis of Search Engine Results Page (SERP) features and competitors. Uses AgentSEO credits; repeating the call can create new charged work.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "keyword": "<keyword>"
    },
    "name": "agentseo_analyze_serp"
  }
}

Input Schema

NameRequiredDescriptionDefault
syncNoRequest a bounded wait for completion when true. The API can still return a pending job; retain its job ID and poll agentseo_job_status instead of repeating this charged call. False returns a queued job without waiting. Type: Boolean. Default: true.
deviceNoDevice search-result profile used for the analysis. Type: String. Accepted values: "desktop", "mobile". Default: "desktop".desktop
keywordYesSearch keyword or phrase to analyze for this workflow. Type: String. Required.
languageNoSupported search language code, for example en for English. Type: String. Default: "en".en
locationNoSupported geographic search-market name, for example United States; this is not a coordinate pair. Type: String. Default: "United States".United States

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.1.5
    • addedInput schema / properties / device / description
      Added value: +"Device search-result profile used for the analysis. Type: String. Accepted values: \"desktop\", \"mobile\". Default: \"desktop\"."
    • changedInput schema / properties / keyword / description
      Previous value: -"Target keyword"New value: +"Search keyword or phrase to analyze for this workflow. Type: String. Required."
    • addedInput schema / properties / language / description
      Added value: +"Supported search language code, for example en for English. Type: String. Default: \"en\"."
    • addedInput schema / properties / location / description
      Added value: +"Supported geographic search-market name, for example United States; this is not a coordinate pair. Type: String. Default: \"United States\"."
    • addedInput schema / properties / sync / description
      Added value: +"Request a bounded wait for completion when true. The API can still return a pending job; retain its job ID and poll agentseo_job_status instead of repeating this charged call. False returns a queued job without waiting. Type: Boolean. Default: true."
  2. First observedv0.1.4

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare openWorldHint=true, idempotentHint=false and destructiveHint=true, so the non-read-only, non-repeatable profile is known. The description adds genuinely new context beyond that — that calls consume AgentSEO credits and that repeating creates new charged work — but says nothing about latency, result shape, or what the analysis returns.

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?

Two short sentences, zero padding, with the purpose front-loaded ahead of the cost caveat. It is efficient, though the second clause is compressed enough that the relationship between repetition, charge, and job polling must be inferred from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter analysis tool with no output schema, the description is thin: it never says what an analysis result contains (SERP features, competitor rankings, positions) or that results may arrive as a pending job. The parameter schema covers inputs fully, but the agent's expectation of output is left unset.

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?

Schema description coverage is 100%, with keyword required and device/language/location/sync all documented including the sync-vs-poll guidance and the location-not-coordinates clarification. The description adds no parameter meaning on top of the schema, so the baseline of 3 applies.

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+resource: 'Deep analysis of Search Engine Results Page (SERP) features and competitors.' An agent can tell it produces SERP feature/competitor analysis rather than backlinks or keyword metrics. It stops short of naming how it differs from near-siblings like agentseo_serp_volatility or agentseo_content_serp_outline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no alternative named. The only usage-adjacent content is a cost warning about credits and repeated charged calls, which tells the agent about consequences but not when this tool is the right pick over its many SERP-adjacent siblings.

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