Skip to main content
Glama
AgentSEO MCP Server

AgentSEO MCP Server

AgentSEO Backlinks Opportunity Finder

agentseo_backlinks_opportunity_finder
Destructive

Prioritize supplied backlink prospects, competitor link gaps, and owned assets into safe outreach, reclaim, repair, and digital PR actions with spam filtering and outreach angles.

Instructions

Turn supplied backlink prospects, competitor link gaps, and owned assets into prioritized safe outreach, reclaim, repair, and digital PR actions. 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": {
      "target": "<target>",
      "prospects": "<prospects>"
    },
    "name": "agentseo_backlinks_opportunity_finder"
  }
}

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.
targetYesTarget domain, subdomain or absolute page URL to analyze; use a hostname or URL, not a business name. Type: String. Minimum: 1 characters. Required.
prospectsYesSupplied backlink prospect records to score; this does not discover prospects or contact their owners. Type: Array. Minimum: 1 items. Maximum: 250 items. Required.
min_priorityNoLowest recommended prospect priority to include in the result. Type: String. Accepted values: "low", "medium", "high". Default: "medium".medium
owned_assetsNoSupplied pages or resources you own that can support prompts or backlink recommendations; this does not edit or publish them. Type: Array. Default: [].
campaign_goalNoBacklink campaign objective used to prioritize supplied prospects; does not send outreach. Type: String. Accepted values: "mixed", "link_gap", "broken_link_building", "digital_pr", "resource_page", "reclaim_lost_links", "protect_authority". Default: "mixed".mixed
max_spam_scoreNoMaximum tolerated provider backlink spam score on a 0-100 scale; lower values are stricter. Type: Safe integer. Minimum: 0. Maximum: 100. Default: 35.
max_opportunitiesNoMaximum number of prioritized opportunities to return from the supplied comparison. Type: Safe integer. Minimum: 1. Maximum: 50. Default: 20.
competitor_domainsNoCompetitor hostnames to count when evaluating supplied link gaps. Type: Array. Default: [].
include_outreach_anglesNoInclude draft outreach ideas in the result when true; no email or message is sent. Type: Boolean. Default: true.
existing_backlink_domainsNoHostnames already linking to your site, used to distinguish new prospects from existing relationships. Type: Array. Default: [].

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed38 schema fields changedv0.1.5
    • addedInput schema / properties / campaign_goal / description
      Added value: +"Backlink campaign objective used to prioritize supplied prospects; does not send outreach. Type: String. Accepted values: \"mixed\", \"link_gap\", \"broken_link_building\", \"digital_pr\", \"resource_page\", \"reclaim_lost_links\", \"protect_authority\". Default: \"mixed\"."
    • addedInput schema / properties / competitor_domains / description
      Added value: +"Competitor hostnames to count when evaluating supplied link gaps. Type: Array. Default: []."
    • addedInput schema / properties / competitor_domains / items / description
      Added value: +"One competitor hostname to consider when scoring link gaps. Type: String. Required."
    • addedInput schema / properties / existing_backlink_domains / description
      Added value: +"Hostnames already linking to your site, used to distinguish new prospects from existing relationships. Type: Array. Default: []."
    • addedInput schema / properties / existing_backlink_domains / items / description
      Added value: +"One hostname already linking to your site. Type: String. Required."
    • addedInput schema / properties / include_outreach_angles / description
      Added value: +"Include draft outreach ideas in the result when true; no email or message is sent. Type: Boolean. Default: true."
    • addedInput schema / properties / max_opportunities / description
      Added value: +"Maximum number of prioritized opportunities to return from the supplied comparison. Type: Safe integer. Minimum: 1. Maximum: 50. Default: 20."
    • addedInput schema / properties / max_spam_score / description
      Added value: +"Maximum tolerated provider backlink spam score on a 0-100 scale; lower values are stricter. Type: Safe integer. Minimum: 0. Maximum: 100. Default: 35."
    • addedInput schema / properties / min_priority / description
      Added value: +"Lowest recommended prospect priority to include in the result. Type: String. Accepted values: \"low\", \"medium\", \"high\". Default: \"medium\"."
    • addedInput schema / properties / owned_assets / description
      Added value: +"Supplied pages or resources you own that can support prompts or backlink recommendations; this does not edit or publish them. Type: Array. Default: []."
    • addedInput schema / properties / owned_assets / items / description
      Added value: +"One page or resource you own, supplied as evidence for the plan. Type: Object. Required."
    • addedInput schema / properties / owned_assets / items / properties / linkable_reason / description
      Added value: +"Reason this owned asset would be useful for a publisher to cite or link to. Type: String. Optional; no client default."
    • addedInput schema / properties / owned_assets / items / properties / page_type / description
      Added value: +"Page format or classification for this record; select one of the accepted values. Type: String. Accepted values: \"research\", \"tool\", \"guide\", \"template\", \"comparison\", \"case_study\", \"landing_page\", \"other\". Default: \"other\"."
    • addedInput schema / properties / owned_assets / 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. Required."
    • addedInput schema / properties / owned_assets / items / properties / topics / description
      Added value: +"Relevant topics or themes associated with this target, page or prospect. Type: Array. Default: []."
    • addedInput schema / properties / owned_assets / items / properties / topics / items / description
      Added value: +"One topic or theme relevant to the supplied entity. Type: String. Required."
    • addedInput schema / properties / owned_assets / items / properties / url / description
      Added value: +"Absolute URL of a supplied asset you own that prospects could link to; this does not fetch or publish it. Type: String. Format: absolute URL. Required."
    • addedInput schema / properties / prospects / description
      Added value: +"Supplied backlink prospect records to score; this does not discover prospects or contact their owners. Type: Array. Minimum: 1 items. Maximum: 250 items. Required."
    • addedInput schema / properties / prospects / items / description
      Added value: +"One supplied backlink prospect and its observed relevance/quality evidence. Type: Object. Required."
    • addedInput schema / properties / prospects / items / properties / broken_link / description
      Added value: +"Whether your supplied evidence identifies a broken-link replacement opportunity. Type: Boolean. Default: false."
    • addedInput schema / properties / prospects / items / properties / context / description
      Added value: +"Supplied surrounding link text or relevance notes used to assess this prospect. Type: String. Optional; no client default."
    • addedInput schema / properties / prospects / items / properties / dofollow / description
      Added value: +"Whether the observed prospect link is followed according to your supplied evidence; omit when unknown. Type: Boolean. Optional; no client default."
    • addedInput schema / properties / prospects / items / properties / domain_rank / description
      Added value: +"Supplied domain authority score on the provider 0-1000 scale. Type: Number. Minimum: 0. Maximum: 1000. Optional; no client default."
    • addedInput schema / properties / prospects / items / properties / linked_competitors / description
      Added value: +"Competitor hostnames already linked from this prospect according to your supplied evidence. Type: Array. Default: []."
    • addedInput schema / properties / prospects / items / properties / linked_competitors / items / description
      Added value: +"One competitor hostname already linked by this prospect. Type: String. Required."
    • addedInput schema / properties / prospects / items / properties / lost_link / description
      Added value: +"Whether your supplied evidence identifies a previously lost link to reclaim. Type: Boolean. Default: false."
    • addedInput schema / properties / prospects / items / properties / notes / description
      Added value: +"Additional supplied context relevant to this record; exclude credentials and unnecessary personal data. Type: String. Optional; no client default."
    • addedInput schema / properties / prospects / items / properties / page_rank / description
      Added value: +"Supplied page authority score on the provider 0-1000 scale. Type: Number. Minimum: 0. Maximum: 1000. Optional; no client default."
    • addedInput schema / properties / prospects / items / properties / source_domain / description
      Added value: +"Referring or prospective publisher hostname, for example publisher.example. Type: String. Minimum: 1 characters. Required."
    • addedInput schema / properties / prospects / items / properties / source_type / description
      Added value: +"Classification of the prospective linking page or publisher. Type: String. Accepted values: \"resource_page\", \"article\", \"directory\", \"tool_list\", \"news\", \"partner\", \"unknown\". Default: \"unknown\"."
    • addedInput schema / properties / prospects / 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. Optional; no client default."
    • addedInput schema / properties / prospects / items / properties / spam_score / description
      Added value: +"Supplied provider spam score on a 0-100 scale; higher means greater spam risk. Type: Number. Minimum: 0. Maximum: 100. Optional; no client default."
    • addedInput schema / properties / prospects / items / properties / title / description
      Added value: +"Title of the supplied page or work item, used as its human-readable label. Type: String. Optional; no client default."
    • addedInput schema / properties / prospects / items / properties / topics / description
      Added value: +"Relevant topics or themes associated with this target, page or prospect. Type: Array. Default: []."
    • addedInput schema / properties / prospects / items / properties / topics / items / description
      Added value: +"One topic or theme relevant to the supplied entity. Type: String. Required."
    • addedInput schema / properties / prospects / items / properties / traffic_estimate / description
      Added value: +"Supplied estimated search visits for this prospect; keep the reporting window consistent across prospects. Type: Number. Minimum: 0. 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: +"Target domain, subdomain or absolute page URL to analyze; use a hostname or URL, not a business name. Type: String. Minimum: 1 characters. Required."
  2. First observedv0.1.4

TDQS

A3.8/5.0
Behavior4/5

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

Annotations only declare readOnly=false, destructive=true, idempotent=false, openWorld=false; the description adds the economically important traits — it consumes AgentSEO credits and repeating it can create new charged work. That is exactly the kind of cost/retry context annotations cannot express. It does not explain what the destructiveHint implies for this analysis-style tool, which is the 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with what the tool produces, followed by the credit and repeat-charge constraint. No filler, no restatement of the title, and the most decision-relevant caveat is included rather than 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 an 11-parameter tool with no output schema, the description conveys both the input nature (supplied evidence, not live discovery) and the output shape (prioritized action recommendations). It omits what the ranked result actually contains (scores, angles, reasons) and any prerequisite that prospect evidence must be gathered elsewhere first.

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 is already documented in the schema, making 3 the baseline. The description only loosely maps its three nouns (prospects, competitor link gaps, owned assets) onto the prospects/competitor_domains/owned_assets parameters and adds no new semantics such as how min_priority or campaign_goal change ranking.

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 transformation: supplied backlink prospects, competitor link gaps, and owned assets become prioritized outreach/reclaim/repair/digital-PR actions. The word 'supplied' signals it evaluates inputs rather than discovering them, which is the key distinction from siblings like agentseo_backlinks_list or agentseo_backlinks_competitors. It stops short of naming those siblings explicitly.

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 'supplied' — the agent must already have prospect data — and the credit/repeat-charge warning implies this is a deliberate, non-casual call. There is no explicit when-to-use or when-not-to-use guidance, and no pointer to the sibling tools that gather prospects or competitor gaps before calling this one.

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