Skip to main content
Glama
AgentSEO MCP Server

AgentSEO MCP Server

AgentSEO Content Gap

agentseo_content_gap
Destructive

Analyze a URL and keyword to identify missing content topics and headings, revealing gaps to plan pages that better match search intent.

Instructions

Run content gap analysis for a URL and keyword. 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": {
      "url": "<url>",
      "keyword": "<keyword>"
    },
    "name": "agentseo_content_gap"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesAbsolute web page URL to analyze; use an http:// or https:// URL. Type: String. Format: absolute URL. Required.
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.
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
scrape_depthNoDeepest heading level to include when comparing scraped page outlines. Type: String. Accepted values: "h1", "h2", "h3". Default: "h3".h3

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.1.5
    • 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 / scrape_depth / description
      Added value: +"Deepest heading level to include when comparing scraped page outlines. Type: String. Accepted values: \"h1\", \"h2\", \"h3\". Default: \"h3\"."
    • 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."
    • changedInput schema / properties / url / description
      Previous value: -"Your URL"New value: +"Absolute web page URL to analyze; use an http:// or https:// URL. Type: String. Format: absolute URL. Required."
  2. First observedv0.1.4

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false and openWorldHint=true; the description adds the non-obvious behavioral fact that the call consumes AgentSEO credits and that re-invoking is not a cheap retry but creates new billable work. That directly reinforces the non-idempotent, non-read-only profile. It does not explain why the tool is flagged destructive or what state is affected, which keeps it at 4 rather than 5.

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?

Two sentences, both front-loaded: the operation first, then the cost/retry hazard. Nothing is redundant and every clause carries information an agent needs before calling.

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 6-parameter, credit-consuming, open-world analysis call with no output schema, the description covers purpose and cost hazard but says nothing about what the analysis produces or how large/long-running it typically is. The polling and pending-job behavior is documented only in the schema's sync parameter, not surfaced in the description.

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%, so url, keyword, language, location, scrape_depth and sync are all documented in the schema, including the pending-job/polling advice for sync. The description only restates the two required parameters and adds no format, default, or interpretation detail beyond 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 gives a specific verb+resource ("Run content gap analysis") plus the two inputs that scope it (URL and keyword), so an agent knows exactly what operation is being requested. It does not differentiate itself from near-neighbors such as agentseo_content_competitor_gap_matrix or agentseo_content_keyword_map, so it stops short of a 5.

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

Usage Guidelines3/5

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

Usage is implied by the required url+keyword pair, and the second sentence gives a genuine operational caveat (credit consumption, repeat calls spawn new charged work), which is useful guidance. However, there is no explicit statement of when to choose this over the sibling gap/keyword tools, and no mention of preconditions such as a valid API key or credit balance.

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