Skip to main content
Glama
AgentSEO MCP Server

AgentSEO MCP Server

AgentSEO Sitemap Audit

agentseo_site_sitemap_audit
Destructive

Audit sitemap coverage, orphan-page candidates, and internal-link gaps against supplied crawl data to flag important URLs missing from your sitemap and canonical or indexability noise.

Instructions

Audit sitemap coverage, orphan-page candidates, important URLs, canonical/indexability noise, and internal-link gaps. Uses AgentSEO credits; repeating the call can create new charged work.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "agentseo_site_sitemap_audit"
  }
}

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.
targetNoYour target brand, domain or URL used to scope this workflow; supply the entity you want assessed. Type: String. Optional; no client default.
crawl_urlsNoPreviously collected crawl or analytics records to compare with the sitemap; these records are not a new full-site crawl request. Type: Array. Maximum: 5000 items. Default: [].
sitemap_urlNoAccessible XML sitemap or sitemap-index URL; supply this or sitemap_xml. Type: String. Format: absolute URL. Optional; no client default.
sitemap_xmlNoXML sitemap or sitemap-index content supplied directly instead of fetching sitemap_url. Type: String. Minimum: 80 characters. Maximum: 2000000 characters. Optional; no client default.
important_urlsNoImportant absolute page URLs that should be checked for sitemap coverage. Type: Array. Maximum: 500 items. Default: [].
internal_linksNoSupplied internal-link edges to use for coverage and orphan-page analysis. Type: Array. Maximum: 20000 items. Default: [].
max_sitemap_childrenNoMaximum child sitemap documents to inspect from a sitemap index; zero disables child fetching. Type: Safe integer. Minimum: 0. Maximum: 10. Default: 3.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed23 schema fields changedv0.1.5
    • addedInput schema / properties / crawl_urls / description
      Added value: +"Previously collected crawl or analytics records to compare with the sitemap; these records are not a new full-site crawl request. Type: Array. Maximum: 5000 items. Default: []."
    • addedInput schema / properties / crawl_urls / items / description
      Added value: +"One supplied crawl or analytics observation for a page. Type: Object. Required."
    • addedInput schema / properties / crawl_urls / items / properties / canonical_url / description
      Added value: +"Absolute canonical URL reported for this supplied page. Type: String. Format: absolute URL. Optional; no client default."
    • addedInput schema / properties / crawl_urls / items / properties / clicks / description
      Added value: +"Count of search clicks in your supplied reporting window; use the same window across compared records. Type: Number. Minimum: 0. Optional; no client default."
    • addedInput schema / properties / crawl_urls / items / properties / impressions / description
      Added value: +"Count of search impressions in your supplied reporting window; use the same window across compared records. Type: Number. Minimum: 0. Optional; no client default."
    • addedInput schema / properties / crawl_urls / items / properties / inbound_internal_links / description
      Added value: +"Count of incoming internal links observed for this supplied page. Type: Safe integer. Minimum: 0. Optional; no client default."
    • addedInput schema / properties / crawl_urls / items / properties / indexable / description
      Added value: +"Whether this supplied page is considered indexable according to your crawl evidence. Type: Boolean. Default: true."
    • addedInput schema / properties / crawl_urls / items / properties / source / description
      Added value: +"Label identifying the origin of this supplied crawl record, for example a crawler or Search Console export. Type: String. Maximum: 80 characters. Optional; no client default."
    • addedInput schema / properties / crawl_urls / items / properties / status_code / description
      Added value: +"HTTP response status code, for example 200 or 404; not an application job status. Type: Safe integer. Minimum: 100. Maximum: 599. Optional; no client default."
    • addedInput schema / properties / crawl_urls / items / properties / title / description
      Added value: +"Title of the supplied page or work item, used as its human-readable label. Type: String. Maximum: 180 characters. Optional; no client default."
    • addedInput schema / properties / crawl_urls / items / properties / url / description
      Added value: +"Absolute URL identifying this supplied crawl observation; not an instruction to crawl that page again. Type: String. Format: absolute URL. Required."
    • addedInput schema / properties / important_urls / description
      Added value: +"Important absolute page URLs that should be checked for sitemap coverage. Type: Array. Maximum: 500 items. Default: []."
    • addedInput schema / properties / important_urls / items / description
      Added value: +"One important absolute web page URL to check for sitemap coverage. Type: String. Format: absolute URL. Required."
    • addedInput schema / properties / internal_links / description
      Added value: +"Supplied internal-link edges to use for coverage and orphan-page analysis. Type: Array. Maximum: 20000 items. Default: []."
    • addedInput schema / properties / internal_links / items / description
      Added value: +"One observed internal-link edge with source and destination URLs. Type: Object. Required."
    • addedInput schema / properties / internal_links / items / properties / anchor / description
      Added value: +"Visible anchor text of the supplied link. Type: String. Maximum: 160 characters. Optional; no client default."
    • addedInput schema / properties / internal_links / items / properties / source_url / description
      Added value: +"Source page URL associated with this record or analysis; use an absolute web URL. Type: String. Format: absolute URL. Required."
    • addedInput schema / properties / internal_links / items / properties / target_url / description
      Added value: +"Absolute destination page URL of the supplied internal link. Type: String. Format: absolute URL. Required."
    • addedInput schema / properties / max_sitemap_children / description
      Added value: +"Maximum child sitemap documents to inspect from a sitemap index; zero disables child fetching. Type: Safe integer. Minimum: 0. Maximum: 10. Default: 3."
    • addedInput schema / properties / sitemap_url / description
      Added value: +"Accessible XML sitemap or sitemap-index URL; supply this or sitemap_xml. Type: String. Format: absolute URL. Optional; no client default."
    • addedInput schema / properties / sitemap_xml / description
      Added value: +"XML sitemap or sitemap-index content supplied directly instead of fetching sitemap_url. Type: String. Minimum: 80 characters. Maximum: 2000000 characters. Optional; no client default."
    • 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."
    • addedInput schema / properties / target / description
      Added value: +"Your target brand, domain or URL used to scope this workflow; supply the entity you want assessed. Type: String. Optional; no client default."
  2. First observedv0.1.4

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already flag non-read-only, destructive and non-idempotent behavior, so the bar is lowered; the description still adds the highest-value unknown — that the call consumes AgentSEO credits and that repeating it can trigger new charged work. It does not explain why destructiveHint is set (i.e., what data, if any, is affected), which is the main remaining gap.

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 with no filler; the analytical scope is front-loaded and the cost warning follows. Slightly list-heavy phrasing but each item corresponds to a distinct output, so nothing is wasted.

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?

With no output schema, the description usefully signals what the audit returns (coverage gaps, orphan candidates, canonical/indexability noise, link gaps), which an agent otherwise could not infer. The cost/repeat-call warning covers the main risk for a charged, non-idempotent tool; only the input prerequisite of supplying a sitemap is left entirely to the schema.

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 every one of the 8 parameters is already documented in detail, including the sync/polling caveat and the sitemap_url vs sitemap_xml alternative. The description adds no parameter-level meaning beyond that, which is exactly the baseline case.

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 names a specific verb and resource ('Audit sitemap coverage') and enumerates the concrete analyses produced: orphan-page candidates, important URLs, canonical/indexability noise, internal-link gaps. It is clear what the tool does, but it never distinguishes itself from near neighbours like agentseo_local_audit or agentseo_content_internal_links, leaving overlap unresolved.

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?

No when-to-use or when-not-to-use guidance appears in the description; nothing tells the agent whether to prefer this over agentseo_local_audit or agentseo_content_technical_qa. The only guidance present is the warning about repeat charges, which is operational rather than a selection rule.

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