advanced-seo-mcp
Provides Google PageSpeed Insights analysis for both mobile and desktop, offering performance scores and optimization suggestions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@advanced-seo-mcprun a full SEO audit on example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π Advanced SEO MCP Server
Powering AI Agents with Advanced SEO Intelligence
π Overview
Advanced SEO MCP is a robust Model Context Protocol (MCP) server designed to equip AI agents with professional-grade SEO capabilities. It combines On-Page analysis, Technical Audits, Google PageSpeed Insights, and Ahrefs Data (via CapSolver) into a unified interface.
Related MCP server: seo-audit-mcp
π Installation
Option 1: One-Command Install (Recommended)
If you have uv installed, you can install this extension directly with Gemini CLI. uv handles all Python dependencies automatically.
gemini extensions install https://github.com/halilertekin/advanced-seo-mcpNote: You will need to configure your API keys in the .env file inside the extension directory after installation.
Option 2: Manual Developer Setup
If you want to modify the code or don't use uv, follow these steps:
Clone the repository:
git clone https://github.com/halilertekin/advanced-seo-mcp.git cd advanced-seo-mcpCreate virtual environment & Install:
python3 -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -e .Setup Configuration: Run the setup script to generate the local configuration:
python setup_extension.pyLink to Gemini:
ln -s $(pwd) ~/.gemini/extensions/advanced-seo-mcp
π Configuration
This server requires API keys for full functionality.
Create a
.envfile in the project root (or rename.env.example):cp .env.example .envAdd your API keys:
# Required for Ahrefs Tools (Backlinks, Keywords, Traffic) # Get key: https://dashboard.capsolver.com/ CAPSOLVER_API_KEY="your_capsolver_key" # Required for PageSpeed Insights # Get key: https://developers.google.com/speed/docs/insights/v5/get-started GOOGLE_PSI_API_KEY="your_google_psi_key"
π οΈ Management & Execution
A handy skills.sh script is included for easy management of the MCP server.
Make the script executable:
chmod +x skills.shAvailable Commands:
./skills.sh install- Installs project dependencies usinguv../skills.sh update- Compiles and upgrades dependencies../skills.sh audit- Runs a Python security audit (pip-audit)../skills.sh run- Runs the advanced-seo MCP server.
π Tools Reference
Tool | Description |
| Best! Generates a full Markdown SEO report combining all metrics. |
| Analyzes content structure, meta tags, and density. |
| Google PageSpeed Insights analysis (Mobile/Desktop). |
| Validates JSON-LD Schema implementation. |
| Scans page for broken (404) internal/external links. |
| Compares Backlinks/Traffic/DR of 2 domains. |
| Scans sitemap and performs quick audit on multiple pages. |
| Retrieves Domain Rating & Top Backlinks (Ahrefs Data). |
| Generates keyword ideas & questions (Ahrefs Data). |
π License
MIT
Available Tools
13 toolsanalyze_content_densityC
Analyzes keyword density and TF-IDF metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| target_keyword | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as rate limits, data source, or effects of the analysis. For a tool with no annotations, the description bears full responsibility but fails to convey safety or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence, which is concise, but lacks structure and fails to provide any additional details beyond the basic purpose. It earns its place but could be expanded without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description omits context about what the analysis returns (e.g., density percentages, TF-IDF scores). For a tool with two parameters and a likely rich output, the description is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add meaning. It mentions keyword density and TF-IDF, hinting at the parameters' roles, but does not explain how 'url' and 'target_keyword' are used together or what 'target_keyword' specifically affects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool analyzes keyword density and TF-IDF metrics, providing a specific verb+resource. It distinguishes from sibling tools like check_difficulty or onpage_audit, which focus on other aspects, though not explicitly mentioned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like analyze_page_speed or keyword_ideas. The description lacks context on appropriate scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_page_speedA
Analyzes site speed using Google PageSpeed Insights. Requires GOOGLE_PSI_API_KEY in .env.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to test. | |
| strategy | No | 'mobile' or 'desktop'. | mobile |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description partially discloses behavior by noting the GOOGLE_PSI_API_KEY requirement, which implies external API dependency. However, it omits other traits like rate limits, latency, potential errors, or whether the tool is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core purpose. The second sentence adds a critical prerequisite without excess. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, output schema available), the description covers the essential purpose and a key dependency. It does not mention the return format (covered by schema) but could briefly note that it measures performance metrics. Still, it's adequate for a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers both parameters (url, strategy) with descriptions and defaults (100% coverage). The description adds no additional meaning beyond the schema, meeting the baseline but not elevating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Analyzes site speed using Google PageSpeed Insights.' It specifies a concrete verb ('Analyzes') and a distinct resource ('site speed'), differentiating it from sibling tools like check_broken_links_on_page or keyword_ideas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks guidance on when to use this tool versus its siblings. It only mentions a prerequisite (API key), but no comparisons or exclusions. The agent is left to infer usage context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_sitemap_auditA
Scans the sitemap and runs On-Page audit on multiple pages. Useful for finding site-wide issues (e.g., missing H1s).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Domain URL (e.g. 'example.com'). | |
| limit | No | Max number of pages to scan (Default: 5). High numbers take time! |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only hints at time cost via the 'limit' parameter description, but does not state read-only vs destructive, required permissions, or potential sitemap dependencies. Significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that front-load the core purpose and a use case. Every sentence adds value with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, return values need not be explained. However, the description assumes automatic sitemap discovery without detailing this process or error conditions. Still adequately covers the main workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema descriptions (100% coverage) already explain both parameters clearly. The tool description adds no new semantic value beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scans a sitemap and runs an On-Page audit on multiple pages, with an example of site-wide issues like missing H1s. This distinguishes it from siblings like 'onpage_audit' which is for single pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context for when to use ('finding site-wide issues'), but does not explicitly mention when not to use or point to alternatives. The guidance is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_broken_links_on_pageB
Scans a page for broken links (404s).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It specifies it scans for 404s, which is transparent about the type of broken link. However, it does not disclose other behavioral traits like handling of redirects, timeouts, or whether it scans all links on the page.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the core action. It is concise but could be slightly more informative without adding fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is very brief and does not mention the output schema (which exists but is not shown). It lacks details on return values, error handling, or scope of scanning. For a simple tool, this may be sufficient, but given the lack of annotations, more completeness would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description fails to explain either parameter. 'url' is obvious, but 'limit' (default 20) is not clarified. The description adds no value beyond the schema's structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scans a page for broken links (404s), using a specific verb and resource. It distinguishes itself from sibling tools like 'onpage_audit' or 'technical_health_check' by focusing solely on broken links.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose: use to find broken links on a page. There is no explicit guidance on when to use it versus alternatives, nor any exclusions or prerequisites. The description is adequate but lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_difficultyB
Checks keyword difficulty and returns SERP analysis (Requires CAPSOLVER_API_KEY).
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | The keyword to analyze. | |
| country | No | Two-letter country code (default: 'us'). | us |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only mentions the API key requirement but does not disclose read-only nature, rate limits, or what 'SERP analysis' entails. For a tool with no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core purpose and a key requirement. It is front-loaded and concise, though it could be slightly reorganized to separate behavioral info from purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and missing usage guidelines, the description is not fully complete. It covers the basics but lacks details on when to use, behavioral traits, and potential limitations. The presence of an output schema mitigates the need to describe returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, describing both parameters (keyword and country). The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks keyword difficulty and returns SERP analysis, using a specific verb and resource. It distinguishes from sibling tools like keyword_ideas or onpage_audit by focusing on difficulty and SERP data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite (CAPSOLVER_API_KEY) but does not specify when to use this tool versus alternatives like keyword_ideas or onpage_audit. There is no guidance on when not to use it or context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_schema_markupB
Validates JSON-LD Schema Markup on a page.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states the action without disclosing what validation entails (e.g., syntax checking, completeness), or what the output looks like. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very conciseβone sentenceβand front-loaded with the essential purpose. However, it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema but the description gives no indication of what the validation result contains (e.g., errors, warnings). For a validation tool, this is a significant gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning beyond the parameter name 'url'. It does not specify expected format or constraints, failing to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it validates JSON-LD Schema Markup on a page, specifying both the action and resource. It is distinct from sibling tools like analyze_content_density or check_broken_links_on_page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one wants to validate JSON-LD schema markup, but provides no explicit guidance on when to use versus alternatives, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_competitorsA
Compares SEO metrics (Backlinks, Traffic, DR) of two domains. Requires CAPSOLVER_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| my_domain | Yes | ||
| competitor_domain | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 the API key requirement, which is a behavioral constraint, but does not state whether the tool is read-only, has rate limits, or other side effects. For a comparison tool, it likely does not modify data, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no unnecessary words. It front-loads the purpose and then adds a prerequisite. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 parameters) and the presence of an output schema (not shown), the description covers the essential purpose and a prerequisite. It lacks usage guidelines but is otherwise complete for a simple comparison tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It clarifies that 'my_domain' and 'competitor_domain' are domains and that the output includes Backlinks, Traffic, DR. However, it doesn't specify domain format or provide examples, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compares SEO metrics (Backlinks, Traffic, DR) of two domains. The verb 'compares' and resource 'SEO metrics' are specific, and the listed metrics distinguish it from sibling tools like 'get_backlinks' or 'estimate_traffic'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the prerequisite 'Requires CAPSOLVER_API_KEY' but provides no guidance on when to use this tool versus alternatives, such as 'get_backlinks' or 'estimate_traffic'. No exclusions or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_trafficB
Estimates monthly search traffic and value for a domain (Requires CAPSOLVER_API_KEY).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain to check. | |
| country | No | Optional country filter. | None |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It only mentions the API key requirement but does not disclose whether the tool is read-only, has rate limits, or requires specific permissions. Behavioral aspects are mostly absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the tool's purpose. No unnecessary words, and the API key note is integrated naturally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are covered. The description is minimal but sufficient for a straightforward estimation tool. It could mention that country filtering is optional, but schema handles that. Slight lack of depth on behavior keeps it from 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents both parameters (domain and country). The description adds no additional meaning beyond what is in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool estimates monthly search traffic and value for a domain, using a specific verb ('Estimates') and resource ('domain'). It also mentions the required API key, which adds necessary context. It is distinct from sibling tools like 'keyword_ideas' which estimate traffic at keyword level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives (e.g., 'check_difficulty' or 'keyword_ideas'). The description only notes the API key requirement but does not provide context on appropriate use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_audit_reportA
Generates a full SEO audit report (Markdown) and saves it locally. Combines On-Page, Technical, Ahrefs data into a single file.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to analyze. | |
| include_ahrefs | No | Whether to fetch backlink/traffic data using CapSolver (Default: True). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions the report is saved locally but lacks details on side effects (e.g., file overwrite, temporary files) or resource implications (e.g., CapSolver costs). Minimal behavioral disclosure beyond what's in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-loaded with purpose and data sources. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are defined. Description covers the key functionality but could elaborate on file naming, location, and whether the report is reusable. Still reasonably complete for a report generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions. Tool description adds context about combining data types but does not provide additional semantic value beyond what the schema already conveys. Baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it generates a full SEO audit report in Markdown, combining On-Page, Technical, and Ahrefs data. This distinguishes it from sibling tools that focus on specific aspects (e.g., onpage_audit, technical_health_check).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use for a comprehensive audit but does not explicitly state when to use this tool versus alternatives. No guidance on when not to use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_backlinksA
Retrieves backlink data for a domain using Ahrefs (Requires CAPSOLVER_API_KEY). Returns domain rating, total backlinks, and a list of top referring pages.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain to analyze (e.g. 'example.com') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 the tool uses Ahrefs and requires an API key, and specifies return values. This adds behavioral context beyond a simple read operation. However, it does not mention rate limits, pagination, or error handling, which would make it more complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no redundancy. The first sentence immediately states the tool's action and resource, efficiently front-loading the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and an output schema, the description adequately covers what the tool does, its prerequisite, and what it returns. No missing critical information for agent selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (domain parameter already described). The description does not add new semantics beyond what the schema provides, so baseline score 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Retrieves' and resource 'backlink data for a domain', clearly distinguishing it from siblings like 'check_broken_links_on_page' or 'analyze_page_speed'. It also specifies the data returned: domain rating, total backlinks, and top referring pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite (CAPSOLVER_API_KEY) indicating when the tool can be used, but lacks explicit guidance on when to use this tool vs alternatives like 'keyword_ideas' or 'compare_competitors'. Usage context is implied by the tool's purpose but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keyword_ideasA
Generates keyword ideas and questions based on a seed keyword (Requires CAPSOLVER_API_KEY).
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | The seed keyword. | |
| country | No | Two-letter country code (default: 'us'). | us |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description partially discloses behavior by noting the API key requirement. However, it omits details like rate limits, data sourcing, or whether modifications occur. It does not contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-left, with no redundant information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description adequately covers the tool's purpose and key requirement (API key). Minor gaps like output scope or constraints (e.g., keyword length) are not critical for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description only mentions 'seed keyword,' adding no new meaning beyond the schema for the country parameter. Baseline score applied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates keyword ideas and questions from a seed keyword, using a specific verb ('generates') and output type. It differentiates from sibling tools which focus on SEO analysis rather than keyword generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for keyword brainstorming but provides no explicit context on when to use versus alternatives or any prerequisites beyond the API key. No guidance on when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onpage_auditA
Performs a detailed on-page SEO audit of a specific URL. Checks meta tags, heading structure, word count, internal/external links, and image alt tags. Does NOT require an API key.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The full URL to analyze (e.g. 'https://example.com/blog/post-1') |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only discloses that no API key is required. It does not mention side effects, rate limits, destructive potential, or other behavioral traits, leaving the agent with minimal understanding of the tool's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no unnecessary words, and front-loads the core action. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (so return values need not be described), the description adequately covers what the tool does and its input. It is complete enough for the agent to select and invoke the tool correctly, though it could hint at optional parameters or results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully describes the url parameter. The description adds an example (e.g., 'https://example.com/blog/post-1') but does not provide additional semantic meaning beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a detailed on-page SEO audit of a specific URL, listing specific checks (meta tags, heading structure, etc.), which distinguishes it from sibling tools that focus on narrower aspects like content density or schema markup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it does not require an API key, which is helpful, but does not provide explicit guidance on when to use this tool versus alternatives like analyze_content_density or check_schema_markup. Usage context is implied but not differentiated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
technical_health_checkA
Checks technical SEO aspects of a domain/URL. Verifies robots.txt, sitemap.xml, and security headers (HTTPS, HSTS). Does NOT require an API key.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The domain or URL to check. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It states it checks robots.txt, sitemap, and headers, but does not mention rate limits, destructiveness, or side effects. It is implied to be read-only, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and every sentence adds value. There is no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter) and the presence of an output schema, the description adequately covers the scope. It lists what is checked, though it could briefly mention the output format, but that is handled by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter 'url' with 100% description coverage. The tool description adds context about what the URL is used for (to check technical SEO aspects), but does not add meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'checks technical SEO aspects' and lists specific items (robots.txt, sitemap.xml, security headers). The verb 'checks' and resource 'technical SEO aspects' are specific, and the tool distinguishes itself from siblings like check_schema_markup or check_broken_links by focusing on infrastructure checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it does not require an API key, which is useful context, but it does not explicitly state when to use this tool versus alternatives like onpage_audit or check_schema_markup. Usage is implied from the purpose, but no exclusions or scenarios are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose, covering different SEO aspects like keyword analysis, page speed, broken links, schema, competitors, traffic estimates, backlinks, on-page audits, technical checks, and report generation. No two tools appear to do the same thing.
Most tool names follow a verb_noun pattern (e.g., analyze_content_density, check_broken_links_on_page, get_backlinks), but a few deviate (e.g., keyword_ideas, onpage_audit). All use snake_case, so the inconsistency is minor.
With 13 tools, the server covers a broad range of SEO functionality without being bloated. Each tool serves a specific need, and the count is well-suited for an advanced SEO tool set.
The tool set covers key SEO areas: keyword research, on-page auditing, technical SEO, backlinks, competitors, and reporting. Minor gaps like mobile-friendliness or rich results testing exist, but the coverage is very strong overall.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Real SEO data for AI assistants: page audits, Keyword Planner volumes, Search Console history.
Full-cycle SEO automation for AI agents: technical audits, SEO articles, machine-readable pricing.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceConnects AI assistants to SEO APIs for backlinks analysis, keyword research, and traffic analysis.1628MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to perform instant SEO audits, check robots.txt, sitemaps, and AI crawler access for any URL without API keys.MIT
- -licenseNot gradedqualityCmaintenanceEnables AI assistants to perform comprehensive SEO and GEO measurements, including site audits, keyword research, ranking tracking, and brand visibility analysis across search engines and generative AI platforms.
- AlicenseAqualityAmaintenanceProvides AI-visibility scoring and site auditing capabilities for websites, enabling agents to check how sites appear in AI engines like ChatGPT and Perplexity, run full SEO/security audits, and monitor changes over time.15405MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/halilertekin/advanced-seo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server