Skip to main content
Glama

SEO Agent

Open-source AI SEO Agent and MCP server for Claude Code, Cursor and Codex.

MIT licence GitHub stars MCP server Docs

SEO Agent is an open-source SEO agent for link building. It runs as an MCP server inside Claude Code, Cursor, Codex or any MCP client: you say what you need, it asks for your URL and keywords, plans the campaign, builds each link by following that site's method, checks that the link went live, and hands you the live URLs with proof.

What it does

  • Searches a library of 1,245 backlink sites with Domain Authority, referring domains, spam score and dofollow status. Twenty-five ship free inside the package, two of them at DA 90+; the rest show up locked, by name and DA, and unlock with a subscription (search_sites).

  • Gives your assistant the method for each site: the playbook for that kind of link, the guide steps parsed into actions with the exact button names, and what the site requires (get_method).

  • Plans a campaign for your URL: sites inside your DA range, the dofollow share you asked for, methods spread, anchor text assigned by ratio (plan_campaign, subscription).

  • Builds links in your browser with a proof screenshot on login-free sites, free; on account-based sites with the model-driven executor on a subscription (build_link, queue_build).

  • Verifies every link by fetching the live page and checking the hyperlink, the anchor text and nofollow (verify_link).

  • Handles gates in the chat: at a captcha, email code or login it asks you, or with a subscription uses a service you connected once (resolve_gate, connect_service, read_inbox).

  • Suggests the keywords and anchors by reading the target page itself, then allocates them across the five anchor types so your profile is not one phrase forty times (suggest_keywords, subscription).

  • Watches the links afterwards: weekly re-checks of everything it placed, plus every referring domain to your site, what is new and lost each month, spam flags and a disavow file (recheck_links, monitor_backlinks, subscription).

  • Finds what competitors have and you do not, with the method to build each one attached (competitor_gap, subscription).

  • Paces the campaign so links arrive steadily across days and methods rather than in a burst, and runs many sites under one subscription (register_site, subscription).

Twenty-six tools in all; the tool reference lists every one.

Quick start

pip install seo-agent && playwright install chromium
claude mcp add seo-agent -- seo-agent

Any other MCP client, in its mcpServers config:

{ "mcpServers": { "seo-agent": { "command": "seo-agent" } } }

Then ask: Build a link to my site on a dofollow site from the free list, and verify it.

Documentation: https://m4mansoor.github.io/seo-agent/ · Repository: https://github.com/m4mansoor/seo-agent

A session, start to finish

That is the whole interaction, on the free list alone. In detail:

  1. You ask in plain language: I need 5 dofollow backlinks, DA 60 or higher.

  2. The agent asks for two things: the URL the links should point to, and your main keywords. It stores your sign-up identity once so every form is filled the same way.

  3. It plans: picks sites by authority and effort inside your DA range, keeps the dofollow share you asked for, spreads the methods so it is not five profile pages, and assigns anchor text by ratio: exact, partial, branded, naked, generic. The free list reaches DA 96: Medium, IMDB, Zotero, ArtFire, Milkyway (.edu), all dofollow. When you ask for more at the top end, it shows what the full library holds and offers the subscription.

  4. It builds: login-free sites are built by scripted playbooks with a proof screenshot. Sites that need an account, which is where the high DA lives, are built by the model-driven browser executor: it reads the site's playbook, the guide steps with the exact button names, and a snapshot of the page each turn, then signs up, fills the profile or writes the post, and places the link. In free mode it hands you the same method to follow in your own browser. Long builds run in the background so your chat never times out.

  5. It verifies: opens the public page and checks that the target is a real hyperlink, that the anchor matches, and whether the link is nofollow. Plain-text URLs, redirect pages and noindex pages do not count as verified.

  6. It reports: live URL, anchor, dofollow or nofollow and proof per link, a campaign report, and a re-check later so you know which links still stand. When a site asks for a captcha, a verification code or a login, the agent asks you in the same chat and continues once it is cleared.

The session above is illustrative.

Related MCP server: crawlgraph-mcp

How it works

What is in the library

Sites

1,245, of which 1,138 verified reachable this month

Dofollow

900

DA 90 or higher

117

Metrics per site

Domain Authority, referring domains, total backlinks, spam score, organic traffic

Methods

profile fields, articles and guest posts, social bookmarking, web 2.0 pages, forums and signatures, directories, shared documents, comments, Q&A, URL shorteners

Per site

the step-by-step method parsed into actions, the placement step, and what the site requires: account, inbox, captcha, social login, upload, moderation

Twenty-five of these sites, with their methods, are bundled free. The rest, the campaign planner, automatic building and verification come with a free API key when the hosted service opens.

Free: 25 sites from GitHub, right now

The package is the agent. It runs on your machine, builds links in your own browser on the login-free sites, follows the method with you on the rest, verifies every link and keeps the log. No account, no key, nothing sent anywhere. Requires Python 3.10 or newer.

Claude Code

pip install seo-agent && playwright install chromium
claude mcp add seo-agent -- seo-agent

Claude Desktop, Cursor, Codex and any other MCP client take the same command in their config:

{ "mcpServers": { "seo-agent": { "command": "seo-agent" } } }

Then ask: I need 5 dofollow backlinks from the free list for https://example.com, keyword "example". The assistant searches the 25 sites, calls build_link where it can build by itself, follows get_method where an account is needed, verifies each link and logs it. Ask how many links have I built any time; it calls account.

Subscribe: every site, $97 a year or $27 a month

When you ask for more high-DA sites than the free list holds, the assistant shows what is locked and gives you the payment links; or call upgrade. Subscribe at https://mcp.seoagent.dev/buy?plan=yearly ($97 a year, about $8 a month) or https://mcp.seoagent.dev/buy?plan=monthly ($27 a month, cancel any time), copy the key from the success page, and tell your assistant:

activate le_your_key

No restart, no config file. From that message on, the same MCP has the full 1,245-site library, the campaign planner, browser building on account-based sites, gates with connected services, background jobs, identity generation, monitoring, campaign reports and a dashboard. Fair use is 500 placed links per key in any 30 days.

No pip? Use the link instead. The success page also shows a personal MCP link, https://mcp.seoagent.dev/u/le_…/mcp. Paste it into Claude Desktop or claude.ai (Settings, Connectors, Add custom connector, no OAuth), ChatGPT (Settings, Connectors, Developer mode) or Cursor ("url" instead of "command"). It carries your key, so keep it private.

What it replaces

Fifty verified, dofollow-checked backlinks a month is a job. Typical ways to get it done, at typical market rates:

Cost

Time to 50 links

Knows the sites?

In-house link builder

$2,500 to $4,000 a month salary, plus tools

3 to 6 weeks, at 30 to 60 minutes per link

Only the sites they have used before; a new hire starts from a blank list

Agency or marketplace

$150 to $400 per DA 40+ dofollow link, so $7,500 to $20,000 per 50

4 to 8 weeks

Their list, not yours; you never see the method

Freelancer on a gig site

$10 to $50 per link

1 to 2 weeks

Usually the same 100 sites everyone else spams

SEO Agent

$97 a year or $27 a month

An afternoon; login-free sites build in seconds each

1,245 sites with the exact method for each, verified reachable monthly, with DataForSEO metrics

The library is the part a team cannot copy quickly. Every site in it came from years of link building: which DA 60 profile page still gives a dofollow link, which forum strips links from new members, which shortener sits behind a captcha, which directory approves in a day. Each entry carries the step-by-step method with the exact button names, what the site requires, and referring domains, spam score and traffic from DataForSEO. A person could rebuild that list, but it would take them the same years.

The agent does not replace judgement: you still choose the keywords, the anchor ratio and which links are worth having. It replaces the hours, and it remembers the sites.

Twenty-five sites from the library, all verified reachable, DA 20 to 96, 25 of them dofollow, two of them at DA 90 or higher. Each has a method your assistant can follow.

Site

DA

Referring domains

Link

Method

Needs

Medium

96

1,371,100

dofollow

Article or blog post

sign-up

IMDB

95

891,904

dofollow

Profile website field

no account

Zotero

75

51,364

dofollow

Bookmark / link submit

sign-up

ArtFire

75

31,486

dofollow

Profile website field

sign-up

Milkyway (.edu)

75

9,011

dofollow

Profile website field

sign-up

DsiBlogger

74

37,269

dofollow

Article or blog post

sign-up

FireBlogz

74

39,401

dofollow

Article or blog post

sign-up

Beatstars

73

39,465

dofollow

Page builder site

sign-up

Flip HTML5

73

226,903

dofollow

Shared document

sign-up

Figma

71

101,339

dofollow

Social post

sign-up

MD Anderson

71

918

dofollow

Other

no account

Wakelet

71

191,490

dofollow

Bookmark / link submit

sign-up

GrowthHackers

68

7,690

dofollow

Forum post

sign-up

Gust

67

11,264

dofollow

Directory listing

sign-up

RiseUp

64

11,528

dofollow

Page builder site

sign-up

Wantedly

64

29,585

dofollow

Bookmark / link submit

sign-up

XtGem

64

26,727

dofollow

Page builder site

sign-up

Ouo Press

60

4,724

dofollow

URL shortener

no account

BlogFree

58

5,019

dofollow

Forum signature

sign-up

Pub HTML5

56

99,088

dofollow

Shared document

sign-up

AxMag

54

1,668

dofollow

Shared document

sign-up

Yooco

43

8,568

dofollow

Comment

sign-up

N9.cl Shortener

40

17,321

dofollow

URL shortener

no account

Goolnk.com Shortener

23

1,922

dofollow

URL shortener

no account

YellKey Shortener

20

389

dofollow

URL shortener

no account

More lists, with DA and referring domains: social bookmarking sites, profile creation sites, guest posting sites, web 2.0 sites, directory submission sites, forum posting sites, high DA backlinks.

Why SEO Agent and not another SEO MCP server

  • It builds, not only reports. Most SEO MCP servers wrap a metrics API. This one follows a site's method in a browser, places the link and proves it with a screenshot and a live-page check.

  • The library is the moat. 1,245 sites, each with its parsed step-by-step method, verified reachable monthly, with DataForSEO metrics. Twenty-five are free with no key, two of them at DA 90 or higher; the rest appear locked by name and DA.

  • It is honest about limits. A captcha or a login is a gate it asks you about, never something it fakes its way past. Links that are plain text, nofollow or on a noindex page are reported as such.

Gates are handled in the chat, not skipped

A captcha, an email verification, a phone code, a social login or a payment step is a gate. The agent stops at the gate, tells you what the site wants, and offers the ways through, in the same conversation:

  • Clear it yourself: it opens the page in a visible browser window and waits while you solve the captcha or log in.

  • Connect a service once: a captcha solver, your inbox over IMAP, or an SMS number. From then on the agent reads the verification link or code itself and continues without asking.

  • Paste the code: you read the email or SMS and paste the code into the chat.

  • Skip the site: it moves to the next site in the plan.

It never fakes a person or works around a site's rules, which keeps your site out of trouble and the links worth having.

Everything a subscription adds

Activate in the chat; nothing else changes.

Feature

What you get

Model-driven executor

Builds on account-based sites: sign-up, profile fields, articles, forum posts, directory listings, page builders

Your own AI model

Connect an Anthropic, OpenAI, Google or OpenRouter key once; it drives the browser on account-based sites, so model cost is yours and under your control

Gates and services

Captcha solver, IMAP inbox and SMS connected once; verification links and codes read automatically

Background jobs

queue_build starts a build and job_status polls it, so clients with short tool timeouts never drop a link

Identity generation

generate_identity creates a complete, consistent sign-up identity on your catch-all domain

Monitoring

recheck_links re-fetches every placed link and marks the ones that dropped

Campaign reports

campaign_report gives planned versus placed, counts by status and method, and every live URL; CSV export

Dashboard

A web page per API key with credits, campaigns, results and proof screenshots

Competitor gap

The referring domains your competitors have and you do not, each row carrying the method to build it

Keyword and anchor suggestions

Read a target page and get keywords and a full anchor plan across the five types

Link velocity pacing

Links spread across days and methods, never fired in a burst

Multi-site

Register many sites under one subscription, each with its own caps and reports

Fair use

500 placed links per key in any 30 days; only verified live links count

Configuration

Nothing is required. activate stores your key in ~/.seoagent/config.json; results live in ~/.seoagent/results.db. Two optional variables override that:

Variable

Purpose

SEOAGENT_API_KEY

A subscription key, for environments where a config file is inconvenient (CI, containers).

SEOAGENT_URL

The hosted endpoint, or a personal link https://mcp.seoagent.dev/u/le_…/mcp. Only needed for a self-hosted engine.

Where it runs

One engine, one library, one subscription. Four ways in, at four different stages.

Door

Status

What it is

Any AI assistant

Live

Claude Code, Claude Desktop, claude.ai, Cursor, Codex, ChatGPT, Windsurf. pip install seo-agent, 25 sites free, links built in your own browser.

WordPress plugin

In development

Posts, pages and WooCommerce products as targets. Campaigns, gates, weekly monitoring and white-label reports inside wp-admin.

Shopify app

In development

Products and collections as targets, embedded in the Shopify admin, billed through Shopify.

Windows and macOS app

In development

The only door that uses accounts you are already signed in to. Its own browser, your own model key, nothing uploaded.

The roadmap says plainly what is live, what is being built, and what will never be built.

Guides

Documentation site: https://m4mansoor.github.io/seo-agent/

Licence and author

MIT. Built by Engr. Inaamul Haq Mansoor (@m4mansoor).

Available Tools

10 tools
accountA

Current plan, links placed, and how to upgrade. Call it when the user asks about credits, pricing or limits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses that the tool returns current plan and link placement info and mentions upgrade guidance, which implies a read-only informational behavior. It doesn't state whether it mutates anything or whether it requires authentication, but for a zero-parameter account status tool, the description is reasonably transparent.

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 the content summary and then the trigger condition. Every word earns its place; no fluff.

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 zero-parameter informational tool with no output schema, the description tells the agent what it returns and when to call it. It doesn't describe the exact response shape, but that's not required without an output schema. It could mention that it's read-only, but the content summary implies that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics burden. The description explains what the tool reports, which is the only relevant semantic content. Baseline 4 for zero params is appropriate.

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 clear purpose: it reports current plan, links placed, and how to upgrade. It also names the trigger conditions ('credits, pricing or limits'), which helps an agent recognize when to call it. It doesn't explicitly distinguish it from siblings like upgrade, but the resource ('account') and content summary are specific enough.

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

Usage Guidelines4/5

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

The description gives explicit trigger conditions: 'Call it when the user asks about credits, pricing or limits.' This is clear usage guidance. It doesn't mention when not to use it or point to alternatives like upgrade, but the trigger list is actionable and sufficient for a simple zero-parameter tool.

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

activateA

Activate a subscription key (le_...) or a personal MCP link from the purchase success page. Verifies it with the hosted engine and saves it here; from then on every hosted tool is available.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It states that the tool verifies with the hosted engine and saves the key, and that all hosted tools become available afterward. However, it does not disclose potential failure modes, whether the operation is reversible, or what happens if the key is invalid, leaving some behavioral ambiguity.

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?

The description is concise, consisting of two sentences with the primary action front-loaded. It avoids fluff and every sentence contributes to understanding the tool's purpose and effect.

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 simple tool with one parameter and no output schema, the description covers the core functionality, the source of the key, and the consequence of activation. It does not mention return values or edge cases, but these are less critical given the tool's simplicity. Overall, it is sufficiently complete for an agent to invoke it correctly.

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 0%, so the description must compensate. It does provide a hint about the key format ('le_...') and indicates it can be either a subscription key or a personal MCP link, but it does not fully explain validation rules or how to obtain a valid key. This adds some meaning beyond the bare schema but is not comprehensive.

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?

The description clearly states the tool's action: activating a subscription key or personal MCP link, with verification and saving. It specifies the resource type and effect (making hosted tools available), and is distinct from sibling tools like search_sites or verify_link, which have different purposes.

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

Usage Guidelines4/5

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

The description gives clear context by mentioning the purchase success page as the source of the key, implying the tool is used after purchase. However, it does not explicitly state when not to use it or name alternatives, though no direct alternative exists among siblings, so the context is sufficient.

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

get_methodC

The method for one site: playbook for its link type, what it requires, the ordered actions with exact button names, and which action places the link.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It describes the content of the response but does not state whether the operation is read-only, requires authentication/upgrade, has side effects, or how errors are handled.

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?

The description is a single sentence with no filler and captures the core output components. It is reasonably front-loaded, though the dense clause structure makes it slightly less scannable than it could be.

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 one-parameter read-style tool, the description conveys the essential output contents. However, it omits how slug should be supplied/resolved, whether account or upgrade state is relevant, and what the actual response shape is, leaving some ambiguity for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter, slug, with 0% description coverage. The description only says 'one site', implying slug identifies the site, but it does not explain slug format, how to obtain it, or validation expectations. This is insufficient compensation for the schema gap.

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 clearly indicates the tool returns a site-specific method/playbook, including link type, requirements, ordered actions, and the action that places the link. It is distinguishable from sibling tools like build_link or verify_link, though it lacks an explicit verb like 'retrieve'.

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 guidance is given on when to call this tool versus alternatives such as build_link or verify_link. The phrase 'for one site' weakly implies the slug parameter selects a site, but no explicit usage context or exclusions are provided.

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

library_summaryB

What the free list contains and what a subscription adds.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It implies a read-only, informational output about free vs subscription contents, but does not specify the return format, side effects, or any other behavioral nuances. Minimal transparency beyond the surface meaning.

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?

The description is a single sentence with no filler or redundant phrasing. It front-loads the core content and is appropriately sized for a zero-parameter informational tool.

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 parameterless tool with no output schema, the description gives a general sense of the content but omits details an agent might need, such as the format of the summary (text, list, etc.) or how detailed the information is. It is adequate for a very simple informational tool but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the baseline is 4. The description adds contextual meaning by clarifying what the tool's content covers (free list and subscription additions), which is useful even though there are no parameters to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description conveys the subject matter—what the free list contains and what a subscription adds—but lacks a direct verb or explicit statement of the operation (e.g., 'Returns a summary...'). It is not tautological and hints at the tool's informational purpose, but it is vague about the exact action.

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 guidance is given on when to use this tool versus its siblings, nor any context, prerequisites, or exclusions. The description is a standalone phrase with no indication of the scenario in which this tool is appropriate.

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

list_resultsC

Every link built or logged on this machine.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only defines inclusion criteria ('built or logged on this machine') and does not mention read-only behavior, sorting, pagination, defaults, or error cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The text is short and has no wasted words, but it is under-specified rather than usefully concise. A tool description needs enough substance to guide selection and invocation; a fragmentary statement is not appropriately sized.

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

Completeness2/5

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

For a simple one-optional-parameter tool with no output schema, the description still leaves out essential context: whether this is a read-only list, how limit behaves, and what the returned links actually look like. The statement is too sparse to support confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate by explaining the 'limit' parameter. It does not mention limit at all, leaving default behavior, maximum values, and ordering unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource as 'every link built or logged on this machine,' which conveys scope and content, but it lacks an explicit verb such as 'lists' or 'retrieves.' It also does not differentiate this tool from siblings like search_sites or log_link.

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 guidance is given about when to use this tool versus alternatives. The description simply states what is included, without stating when to choose list_results over search_sites or other sibling tools.

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

search_sitesA

Search the free list of 25 backlink sites by name, domain, method, DA and dofollow. auto_build marks the ones build_link can do by itself. The result also lists locked higher-DA matches from the full library; when the user wants those, offer the subscription (see ask_the_user). Methods: profile_website_field, article_post, bookmark_submit, url_shortener, page_builder, forum_post, directory_listing, document_share, social_post, comment, qa_answer, forum_signature.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
methodNo
min_daNo
dofollow_onlyNo

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that results include auto_build-marked entries and locked higher-DA matches, and instructs the agent to offer a subscription for locked ones. It does not explicitly state read-only nature, but 'Search' implies a non-mutating operation, and it provides meaningful behavioral context beyond a bare definition.

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?

The description is front-loaded with the core purpose, then adds behavioral notes and a method list in a compact form. It is efficient with no filler, though the method list adds length; still, it earns its place.

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 search tool with five optional parameters and no output schema or annotations, the description covers the main use case and result handling (free vs locked). However, it leaves the limit parameter undefined and does not describe the output structure, pagination, or error cases, making it adequate but not exhaustive.

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 0%, so the description must compensate. It mentions filterable fields (name, domain, method, DA, dofollow) that map to query, method, min_da, and dofollow_only, and lists valid method values. However, it omits the limit parameter entirely, leaving its meaning to inference.

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?

The description states a specific verb (Search) and resource (free list of 25 backlink sites) with clear filter dimensions (name, domain, method, DA, dofollow). It distinguishes itself from siblings by focusing on searching the free list rather than building, verifying, or logging links.

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?

The description implies its use as the search tool and explains how to handle locked results (offer subscription), but it does not explicitly contrast with alternatives like list_results or get_method. It gives contextual guidance for interpreting results but lacks explicit when-to-use versus sibling tools.

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

upgradeB

The subscription: every one of 1,245 sites and the whole engine, yearly or monthly. Returns the payment links and what to do after paying.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It mentions the tool 'Returns the payment links and what to do after paying,' which gives some behavioral insight. However, it does not disclose whether the upgrade is immediate, idempotent, or requires authentication, nor what happens to existing subscriptions.

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?

The description is a single sentence that is concise and front-loaded with the core purpose ('The subscription'). It avoids fluff but is slightly informal in phrasing ('every one of 1,245 sites'), which adds specificity but could be seen as unnecessary detail.

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 zero-parameter tool with no output schema, the description covers the basics: what it does and what it returns. However, it lacks details on the process flow after payment, any prerequisites, or the relationship to sibling tools like 'activate' or 'account', which may be needed for correct usage in complex scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters, so the description doesn't need to document them. The description adds value by explaining that the tool returns payment links and post-payment steps, which is beyond what an empty schema conveys.

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 that the tool relates to upgrading 'the subscription' for sites and engine, with billing periods. It is clear enough for a tool named 'upgrade', distinguishing it from siblings like 'activate' or 'account', though it does not explicitly name a sibling alternative.

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 explicit when-to-use or when-not-to-use guidance is provided. The description does not mention prerequisites (e.g., requires an existing account) or situations where 'activate' or 'account' would be more appropriate. The context is implied by the word 'upgrade' but not elaborated.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv0.2.0
    • First observedaccount
    • First observedactivate
    • First observedbuild_link
    • First observedget_method
    • First observedlibrary_summary
    • First observedlist_results
    • First observedlog_link
    • First observedsearch_sites
    • First observedupgrade
    • First observedverify_link

TDQS

B3.2/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have clear boundaries: search sites, get method, build, verify, log, and list results are distinct steps. The main confusion risk is build_link returning a method instead of only building, which overlaps somewhat with get_method, and search_sites vs library_summary both touch link discovery.

Naming Consistency3/5

The core workflow tools follow a verb_noun pattern: search_sites, get_method, build_link, verify_link, log_link, list_results. However, account, upgrade, activate, and library_summary break the pattern with bare nouns or verbs, making the naming convention mixed but still readable.

Tool Count5/5

Ten tools is well within the ideal range and each supports a clear part of the SEO backlink workflow. The inclusion of account, upgrade, activate, and library_summary may feel sales-oriented, but they are relevant to the server's subscription-gated functionality.

Completeness4/5

The core lifecycle is covered: discover sites, inspect the method, build or manually place links, verify them, log the result, and list all records. Minor gaps exist such as no way to update or delete a logged link and no direct browse of the full paid library, but agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Classic SEO suites charge heavily for link indexes. This MCP gives individuals and agencies a free, automatable path to: surface pages that mention a brand (linked or not), narrow guest-post and resource-page angles, see who links to competitors, verify whether a page links to you, and pull contact signals for outreach—all orchestrated by Claude or Cursor through typed tools instead of brittle cop
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for the CrawlGraph backlink-intelligence API. Gives any MCP client - Claude Desktop, Claude Code, Cursor, Cline, Zed, Windsurf - backlink lookups and competitor gap analysis built on the public Common Crawl webgraph (4.4B edges, 120M domains).
    4
    16 npm
    5
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    The MCP server for SEO. Find prospects, draft outreach, and monitor backlinks from your AI agent.
    14
    MIT