Skip to main content
Glama
AgentSEO MCP Server

AgentSEO MCP Server

AgentSEO Content Internal Links

agentseo_content_internal_links
Destructive

Identify internal link opportunities from a source page to supplied target pages to improve site navigation and topical relevance.

Instructions

Find internal link opportunities from a source page to required supplied target pages. 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_content_internal_links"
  }
}

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.
keywordNoSearch keyword or phrase to analyze for this workflow. Type: String. Optional; no client default.
source_urlNoAccessible source page URL to inspect for link opportunities; supply this or source_markdown. Type: String. Format: absolute URL. Optional; no client default.
target_pagesNoCandidate internal pages from a sitemap, CMS, crawler, Search Console or a prior sitemap audit. The handler requires 1-50 entries even though this wire field is optional; omitting it returns setup guidance without an API request. Type: Array. Minimum: 1 items. Maximum: 50 items. Optional; no client default.
max_suggestionsNoMaximum number of internal-link suggestions to return. Type: Safe integer. Minimum: 1. Maximum: 20. Default: 8.
source_markdownNoSource page content as Markdown instead of fetching source_url; supply this or source_url. Type: String. Minimum: 80 characters. Maximum: 50000 characters. Optional; no client default.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changedv0.1.5
    • addedInput schema / properties / keyword / description
      Added value: +"Search keyword or phrase to analyze for this workflow. Type: String. Optional; no client default."
    • addedInput schema / properties / max_suggestions / description
      Added value: +"Maximum number of internal-link suggestions to return. Type: Safe integer. Minimum: 1. Maximum: 20. Default: 8."
    • changedInput schema / properties / source_markdown / description
      Previous value: -"Source page markdown when no URL exists"New value: +"Source page content as Markdown instead of fetching source_url; supply this or source_url. Type: String. Minimum: 80 characters. Maximum: 50000 characters. Optional; no client default."
    • changedInput schema / properties / source_url / description
      Previous value: -"Source page URL to scrape"New value: +"Accessible source page URL to inspect for link opportunities; supply this or source_markdown. Type: String. Format: absolute URL. 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."
    • changedInput schema / properties / target / description
      Previous value: -"Optional target brand, domain, or product"New value: +"Your target brand, domain or URL used to scope this workflow; supply the entity you want assessed. Type: String. Optional; no client default."
    • changedInput schema / properties / target_pages / description
      Previous value: -"Required candidate internal pages from your sitemap, CMS, crawler, Search Console, or /site/sitemap-audit."New value: +"Candidate internal pages from a sitemap, CMS, crawler, Search Console or a prior sitemap audit. The handler requires 1-50 entries even though this wire field is optional; omitting it returns setup guidance without an API request. Type: Array. Minimum: 1 items. Maximum: 50 items. Optional; no client default."
    • addedInput schema / properties / target_pages / items / description
      Added value: +"One candidate internal page with its supplied title and optional relevance evidence. Type: Object. Required."
    • addedInput schema / properties / target_pages / items / properties / description / description
      Added value: +"Short summary of this supplied page; this is input evidence, not a request to generate a meta description. Type: String. Maximum: 500 characters. Optional; no client default."
    • addedInput schema / properties / target_pages / items / properties / keywords / description
      Added value: +"Search phrases to evaluate or associate with the supplied page. Type: Array. Maximum: 12 items. Default: []."
    • addedInput schema / properties / target_pages / items / properties / keywords / items / description
      Added value: +"One search keyword or phrase, not a comma-separated list. Type: String. Required."
    • addedInput schema / properties / target_pages / items / properties / title / description
      Added value: +"Title of the supplied page or work item, used as its human-readable label. Type: String. Minimum: 1 characters. Maximum: 180 characters. Required."
    • addedInput schema / properties / target_pages / items / properties / url / description
      Added value: +"Absolute URL identifying a supplied internal-link candidate page; this field does not request a page fetch. Type: String. Format: absolute URL. Required."
  2. First observedv0.1.4

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag a non-read-only, non-idempotent, destructive, open-world operation, and the description adds the reason: it consumes AgentSEO credits and repeating the call can create new charged work. That is real context an agent needs before retrying, though it stops short of describing what the credit spend is or the return shape.

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 short sentences, zero filler, with the core action first and the cost/duplication warning immediately after. Nothing to trim and nothing important buried.

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 seven-parameter, open-world, credit-charged tool, the description covers what it does and the retry hazard, and the schema carries the required-input rules and polling fallback. The only real gap is return behavior (what a suggestion looks like), which no output schema exists to cover.

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 parameter, including the nested target_pages entry, is already documented in the schema, including the sync/polling guidance and the 1-50 handler requirement. The description adds no parameter-level meaning beyond that, which is the baseline 3 case.

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?

States a specific verb and resource (find internal link opportunities) plus the two inputs that scope it (a source page and supplied target pages). No sibling tool in the list covers internal linking, so the agent can route here without ambiguity.

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 only implied: the agent can infer this runs when it has a source page and a candidate page set, and the schema notes for source_url/source_markdown carry the either-or rule. The description itself names no alternatives, prerequisites, or when-not-to-use conditions beyond a cost warning.

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