RankCLI
Performs Cloudflare AI-crawler-gating compliance checks to verify that Cloudflare-managed sites have the recommended AI crawler access rules.
Analyzes robots.txt settings for PerplexityBot to help control AI crawler access and optimize visibility in Perplexity AI search results.
@rankcli/mcp-server
Free, local SEO + GEO (AI-search-citation) analysis as an MCP tool. No signup, no API key, nothing sent to RankCLI's servers — it runs entirely inside your MCP host (Claude Code, Claude Desktop, Cursor, etc.) against HTML you already have or that your host fetches for you.
npx @rankcli/mcp-serverClaude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"rankcli": {
"command": "npx",
"args": ["@rankcli/mcp-server"]
}
}
}Available Tools
Tool | Description |
| Full SEO analysis: GEO, Core Web Vitals, structured data, security headers, mobile, images, internal linking |
| AI search visibility (GEO) — crawler access, LLM content signals, citation readiness |
| Which AI crawlers (GPTBot, ClaudeBot, PerplexityBot, etc.) your robots.txt allows or blocks |
| Generate an AI-crawler-friendly robots.txt |
| Estimate LCP, CLS, INP, TTFB from HTML |
| Validate JSON-LD / Schema.org markup |
| Generate a JSON-LD template for a page type |
| Grade HTTPS, HSTS, CSP, and related headers |
| Generate recommended security header config |
| Alt text, dimensions, formats, lazy loading |
| Anchor text quality, orphan-page risk |
| Viewport, touch targets, PWA readiness |
| Reference list of known AI crawler user agents |
Related MCP server: Seonix SEO MCP
Example
Just ask Claude:
"Run an SEO audit on https://example.com"
Your MCP host fetches the page and Claude calls these tools directly — nothing round-trips through RankCLI.
Want more?
This local server works from HTML/robots.txt you or your MCP host supply. For URL-only tools that fetch and crawl for you (seo_audit, seo_geo_check, seo_robots_check, seo_compare), plus the newer Cloudflare AI-crawler-gating compliance check, CI/CD scheduling, and auto-fix PRs, see the hosted endpoint and paid tiers:
{
"mcpServers": {
"rankcli-hosted": {
"url": "https://rankcli-audit-worker.fly.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Get a free API key at rankcli.dev/dashboard.
Links
Main package: @rankcli/cli
Docs: rankcli.dev/docs
Dashboard: rankcli.dev/dashboard
Available Tools
13 toolsseo_ai_crawlersA
Get information about all known AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, etc.) including their user agents and purposes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of conveying effects; 'Get information' implies a read-only operation but never explicitly states it. It does disclose the returned content (user agents and purposes), but it adds no detail about response shape, freshness, or whether the list is exhaustive.
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 tight, front-loaded sentence with concrete examples and no filler. Every part contributes to the agent's understanding.
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 zero-parameter retrieval tool, the description gives enough information to invoke it and know what the output will include. A short note distinguishing it from seo_robots_ai would make it fully complete, but nothing essential to calling it is missing.
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 tool takes zero parameters, so there is no parameter ambiguity for the description to resolve. The baseline of 4 applies because no parameter documentation is required.
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 a specific verb ('Get information') and names a concrete resource ('all known AI crawlers') with explicit examples and fields returned. It is clear what the tool does, though it does not explicitly differentiate itself from the adjacent sibling seo_robots_ai.
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 says nothing about when to choose this tool over alternatives such as seo_robots_ai or seo_generate_robots. There are no exclusions, prerequisites, or scenario hints beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_analyzeA
Run comprehensive SEO analysis on a webpage. Returns scores and issues for:
GEO (AI Search Optimization) - Is the site visible to ChatGPT, Perplexity, Claude?
Core Web Vitals (LCP, CLS, INP) - Performance estimates
Structured Data - Schema.org validation
Security Headers - HTTPS, HSTS, CSP
Mobile SEO - Responsive design, touch targets
Images - Alt text, formats, dimensions
Internal Linking - Anchor text, orphan detection
Use this for a complete SEO audit.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page to analyze | |
| html | No | HTML content of the page (optional if URL is provided) | |
| robotsTxt | No | robots.txt content for AI crawler analysis (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses that the tool 'returns scores and issues' and calls Core Web Vitals 'Performance estimates,' a useful caveat about precision. The read-only nature is implied by 'analyze,' though it does not discuss data-fetching behavior or limitations.
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 front-loaded with the main action and uses a scannable bullet list to convey the breadth of a comprehensive audit. There is minimal redundancy and each line communicates a distinct audit category or usage instruction.
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?
There is no output schema, so the description's list of returned 'scores and issues' categories is essential and sufficiently high-level. It does not describe the exact result shape or how html/robotsTxt interact with url, but the schema covers the parameters and the description is adequate for an aggregate audit 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 documents all three parameters with high coverage (100%), so the baseline is 3. The description's bullet list adds context about what dimensions the analysis covers but does not add detail about the url, html, or robotsTxt parameters beyond the schema.
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 a specific verb+resource ('Run comprehensive SEO analysis on a webpage') and enumerates the audit areas (GEO, Core Web Vitals, structured data, etc.), which clearly distinguishes this aggregate audit tool from the specialized sibling tools. The phrase 'complete SEO audit' reinforces its role.
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 final line 'Use this for a complete SEO audit' gives an explicit when-to-use instruction. It does not name the specialized siblings as alternatives or list exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_core_web_vitalsA
Estimate Core Web Vitals (LCP, CLS, INP, TTFB) from HTML analysis. Identifies issues like:
Render-blocking resources
Images without dimensions
Large JavaScript bundles
Missing preload hints
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page | |
| html | Yes | HTML content of the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It honestly says 'Estimate' rather than 'measure', indicating the results are approximations based on HTML analysis, and it enumerates specific detectable issue categories. This gives useful behavioral expectations without overpromising real-world lab or field data.
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 compact and front-loaded: the core purpose and metrics appear in the first sentence, followed by a tight bulleted list of issues. Every sentence earns its place, and the structure makes the tool's capabilities easy to scan.
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 adequately covers what the tool does, its input basis, and the categories of findings it produces. There is no output schema, so some return-format detail is missing, but for a two-input analysis tool the provided description is otherwise sufficient 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (url and html) are already documented in the schema. The description adds the useful context that analysis is performed 'from HTML', but it does not further clarify the role of the URL parameter beyond what the schema says. A 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 states a specific action ('Estimate') with a clear resource (Core Web Vitals) and the concrete metrics involved (LCP, CLS, INP, TTFB). It also lists the types of issues detected, making the tool's role clear and distinct from the sibling SEO tools.
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 clearly implies when to use this tool: when the user has HTML content and wants Core Web Vitals estimates or HTML-related performance issue detection. It does not explicitly name alternatives or exclusions, but the scope is specific enough that an agent can select it confidently among the SEO sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_generate_robotsB
Generate an AI-friendly robots.txt that allows all major AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | Yes | Base URL of the site (e.g., https://example.com) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It states the outcome (a robots.txt allowing AI crawlers) but does not clarify whether the tool returns content, writes to a file, or has side effects — leaving important 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description fits in one focused sentence with no fluff. It front-loads the core purpose and adds a parenthetical list of crawler names that gives useful concrete context without redundancy.
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 is simple with one parameter and clear intent, but with no output schema and no annotations, the description does not specify the return format, whether it writes to the site, or how it relates to sibling tools. This leaves some gaps for an agent deciding how to invoke and interpret the result.
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 provides 100% coverage for the single parameter, including an example ('https://example.com'). The description does not add parameter-level detail, but the schema is sufficient, aligning with the baseline for full schema coverage.
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 a specific action ('Generate') and resource ('an AI-friendly robots.txt') with concrete examples of allowed crawlers. It does not explicitly differentiate from sibling tools like seo_robots_ai or seo_ai_crawlers, which may perform overlapping functions.
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 the tool is for generating a robots.txt that permits AI crawlers, but it gives no explicit when-to-use guidance, prerequisites, or alternatives. Given several sibling tools with similar SEO-focused names, the lack of exclusionary guidance is a gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_generate_schemaB
Generate JSON-LD structured data template for a page type (article, product, faq, local-business, website).
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | Yes | Base URL of the website | |
| pageType | Yes | Type of page | |
| siteName | Yes | Name of the website | |
| authorName | No | Default author name (for articles) | |
| organizationName | No | Organization name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It clearly indicates a non-destructive generation operation and the output is a template, but it does not describe return format details, whether anything is written, or any other behavioral nuances. This is adequate but minimal.
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, front-loaded sentence that names the action, the deliverable, and the valid page types. Every word adds value, and there is no redundant or filler content.
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 is low-complexity, all parameters are documented in the schema, and the description identifies the output as a JSON-LD structured data template, which compensates for the lack of an output schema. It is complete enough for an agent to invoke the tool correctly, though it could have mentioned optional parameter behavior more explicitly.
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 documents all five parameters. The description repeats the page type enum values and adds no significant semantics beyond what the input schema provides, which meets the baseline for full schema coverage.
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 a specific verb ('Generate') and resource ('JSON-LD structured data template') and lists the supported page types, making the tool's function immediately clear. It does not explicitly differentiate from the sibling 'seo_structured_data', but the generation-focused wording distinguishes it enough for basic selection.
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 provides no guidance on when to use this tool versus alternatives like 'seo_structured_data' or the other generation tools. There are no exclusions, prerequisites, or scenario-based usage hints beyond the implied purpose of generating structured data templates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_generate_security_headersB
Generate recommended security headers configuration for a site.
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | Yes | Base URL of the site |
TDQS
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, but it only states the high-level action. It does not say whether the tool scans the site, returns a static template, or has side effects, nor does it describe the output format.
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 efficient sentence with no filler. The action and object are front-loaded, and this level of detail is appropriately concise for a one-parameter tool.
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 no output schema and no annotations, so the description should clarify what the generated configuration looks like or how it is returned. It does not, leaving agents to guess at the return format and runtime behavior.
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% because siteUrl is already described as 'Base URL of the site'. The tool description adds no additional parameter meaning beyond that, so the baseline of 3 applies.
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 a specific verb ('Generate'), resource ('recommended security headers configuration'), and target ('a site'). The verb also distinguishes it from the sibling tool seo_security_headers, which likely checks or analyzes headers rather than generating a configuration.
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 is provided about when to choose this generation tool over sibling tools such as seo_security_headers or seo_generate_robots. The intended use case is implied by the name and phrase 'recommended... configuration', but the description does not state exclusions, alternatives, or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_geo_checkA
Check if a website is optimized for AI search engines (GEO - Generative Engine Optimization).
Analyzes:
AI crawler access (GPTBot, ClaudeBot, PerplexityBot, etc.)
robots.txt rules for AI crawlers
JS rendering requirements (can AI crawlers see content?)
Content structure for LLM consumption
Citation readiness (trust signals)
FAQ/entity extraction capability
Critical for visibility in ChatGPT, Perplexity, Claude, and Gemini responses.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page to analyze | |
| html | No | HTML content of the page | |
| robotsTxt | No | robots.txt content |
TDQS
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 does a good job by explicitly listing what the tool analyzes, including AI crawler access, robots.txt rules, JS rendering, content structure, citation readiness, and FAQ/entity extraction. It does not explain live-fetch behavior or how optional html and robotsTxt inputs affect execution, but the 'Check' and 'Analyzes' wording clearly indicates a non-mutating inspection tool.
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 well-structured and front-loaded with a clear one-sentence purpose, followed by a concise bulleted list of analysis dimensions. It ends with a one-line statement of business value that justifies relevance. Every line contributes useful information without redundancy or filler.
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 provides strong context about what the tool checks, why it matters, and where it fits in the GEO landscape, which is sufficient for selecting it. It does not describe expected return values, but with no output schema and no annotations, that is a minor gap. It also does not explicitly discuss how optional html and robotsTxt parameters are used, but the parameter names and schema descriptions are self-explanatory enough.
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 baseline is 3 and the schema already documents all parameters. The description adds some thematic meaning by mentioning robots.txt rules and JS rendering, which relate to robotsTxt and html, but it does not clarify the relationship or precedence between required url and optional html/robotsTxt inputs. The added semantic value over the schema is modest.
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 verb 'Check' and the resource: whether a website is optimized for AI search engines (GEO). It further specifies the analysis areas, making the tool's purpose concrete. However, it does not explicitly distinguish itself from the sibling tools seo_ai_crawlers or seo_robots_ai, which likely overlap in checking AI crawler access and robots.txt rules.
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 when to use the tool by noting it is 'Critical for visibility in ChatGPT, Perplexity, Claude, and Gemini responses.' It does not explicitly state when to prefer this tool over seo_ai_crawlers or seo_robots_ai, nor does it provide any when-not-to-use conditions. The guidance is present but left mainly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_imagesA
Analyze images for SEO and performance. Checks alt text, dimensions, formats (WebP/AVIF), lazy loading, and responsive images.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page | |
| html | Yes | HTML content of the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. 'Analyze' and 'Checks' imply a read-only inspection and the description names the exact areas inspected. However, it does not disclose whether the tool fetches the live page, whether it only processes the provided HTML, what the output structure looks like, or whether it returns pass/fail indicators, scores, or recommendations.
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?
A single, front-loaded sentence communicates the tool's purpose and the concrete checks it performs. Every element is useful and there is no redundant or filler content.
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 simple two-parameter tool, the description gives a reasonable overview of what the tool examines. But with no output schema and no annotations, it does not explain the form of the result or how the analysis is presented, which leaves some ambiguity for agent consumption.
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 documents both parameters clearly. The description adds no additional parameter semantics beyond naming the analysis categories, which is acceptable but not additive.
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 states a specific verb and resource: 'Analyze images for SEO and performance.' It then enumerates concrete checks (alt text, dimensions, formats, lazy loading, responsive images), which clearly distinguishes it from sibling SEO tools covering robots, structured data, internal links, and so on.
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 when to use the tool: whenever an agent needs image-related SEO or performance analysis. However, it does not explicitly state when not to use it or reference alternative tools such as seo_analyze, leaving some routing responsibility to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_internal_linksA
Analyze internal linking structure. Checks anchor text quality, orphan page risk, link distribution, and suggests linking opportunities.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page | |
| html | Yes | HTML content of the page |
TDQS
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 does communicate a read-only analysis behavior and enumerates the analysis dimensions, but it does not clarify whether the tool uses the provided HTML directly, fetches the URL, or how the suggestions are returned. This leaves meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with the main purpose front-loaded and the supporting detail in the second sentence. Every phrase contributes value with no filler or repetition.
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 low complexity and a fully documented two-parameter schema, but there is no output schema and no stated return format. The description explains the analysis focus but omits practical invocation context such as how the HTML input is consumed, what the output looks like, or any limitations.
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 parameters are already well documented. The description adds general context about internal linking but does not add specific meaning to the url or html parameters beyond what the schema already provides, so the baseline score of 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 names a specific verb and resource: 'Analyze internal linking structure.' It then lists concrete checks (anchor text quality, orphan page risk, link distribution) and an action (suggest linking opportunities), making it distinct from the generic seo_analyze and other SEO sibling tools.
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 clearly implies when to use the tool — when internal linking analysis is needed — but it does not explicitly distinguish it from alternate tools or say when not to use it. No exclusions or alternatives are mentioned, so the usage guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_mobileB
Analyze mobile SEO. Checks viewport, touch targets, font sizes, content width, PWA readiness.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page | |
| html | Yes | HTML content of the page |
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 communicates that the tool is a read-only analyzer by enumerating the checks it performs, but it does not describe output format, limitations, or how verdicts like PWA readiness are determined.
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 short sentences with no filler. It front-loads the core purpose and then concisely enumerates the specific checks, making it easy to scan and understand.
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 read-only analyzer with two simple, fully documented parameters, the description provides enough context for an agent to select and invoke the tool. The lack of any mention of return values or result structure is a minor gap since no output schema exists, but the listed checks help compensate.
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 parameters 'url' and 'html' are already documented clearly. The description adds no additional meaning about how those parameters should be used or their relationship to the mobile SEO analysis.
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 identifies the tool as analyzing mobile SEO and lists specific checks (viewport, touch targets, font sizes, content width, PWA readiness). It is specific enough to distinguish from a generic seo_analyze, but it does not explicitly differentiate itself from sibling tools like seo_core_web_vitals.
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 gives no guidance on when to use this tool versus the many sibling tools, nor does it mention exclusions or alternatives. The context of 'mobile SEO' is implicit, but there is no explicit when-to-use or when-not-to-use direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_robots_aiA
Analyze robots.txt for AI crawler permissions. Shows which AI crawlers (GPTBot, ClaudeBot, PerplexityBot, etc.) are allowed or blocked.
| Name | Required | Description | Default |
|---|---|---|---|
| robotsTxt | Yes | Content of robots.txt file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral disclosure burden. 'Analyze' reasonably implies a read-only action and the output is described, but the description doesn't mention limitations such as only recognizing known AI crawlers or behavior on malformed robots.txt input.
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 redundant wording. It front-loads the action and directly states the output, making it efficient and easy to scan.
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 simple single-parameter analysis tool with no output schema, the description covers the core input and expected result sufficiently. It could be slightly stronger by explicitly contrasting with seo_ai_crawlers, but nothing essential is missing for invoking it correctly.
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% because the only parameter, robotsTxt, is already described as 'Content of robots.txt file'. The tool description adds no additional parameter-level meaning 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 uses a specific verb ('Analyze') with a specific resource ('robots.txt') and clearly states the output ('which AI crawlers are allowed or blocked'). It is clear on its own, though it doesn't explicitly differentiate from the similarly named sibling seo_ai_crawlers.
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 the tool should be used when you have robots.txt content and want AI crawler permission status, but it provides no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives like seo_generate_robots or seo_ai_crawlers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_security_headersA
Analyze security headers (HTTPS, HSTS, CSP, X-Frame-Options, etc.). Returns a security grade A+ through F.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page | |
| headers | Yes | HTTP response headers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose the key output behavior (returns a security grade A+ through F), which is useful. However, it does not mention that the analysis is based on the provided headers rather than fetching the URL, nor does it state any side-effect or permission expectations. The return-value disclosure helps, but other behavioral traits are left unstated.
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, tight sentence that states the action, the subject, and the return value. No filler or redundant wording exists, and it is appropriately front-loaded with the core 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?
Given the tool's simplicity, two well-described parameters, and no output schema, the description is nearly complete: it explains what is analyzed and what is returned. It could be improved by explicitly noting that the headers are supplied by the caller and that the tool does not perform a live crawl, but this is inferable from the 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?
Schema coverage is 100% for both parameters, so the baseline is 3. The description adds context by listing example header names, which helps clarify what 'security headers' refers to, but it does not add meaningful semantics beyond the schema's existing 'URL of the page' and 'HTTP response headers' 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 uses a specific verb ('Analyze') with a clear resource ('security headers') and enumerates concrete examples (HTTPS, HSTS, CSP, X-Frame-Options). This makes the tool's function immediately understandable and distinguishes it from the sibling seo_generate_security_headers, which is about generation rather than analysis.
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 assessing existing security headers, and the sibling tool names suggest a generation counterpart. However, it does not explicitly state when to choose this tool over alternatives or provide exclusions. Usage context is clear but only implied, not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_structured_dataA
Validate JSON-LD structured data (Schema.org). Checks for:
Required properties per schema type
Article, Product, FAQ, HowTo, LocalBusiness schemas
Rich result eligibility
Common mistakes
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page | |
| html | Yes | HTML content with JSON-LD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It discloses concrete behaviors: checking required properties, supporting specific schema types, evaluating rich result eligibility, and flagging common mistakes. It does not describe output format or whether the URL is fetched, leaving some ambiguity, but the core validation behavior is clearly communicated.
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 compact and well-structured, with the main purpose in the first sentence and a concise bullet list of checks. Every sentence adds useful information without redundancy or filler.
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 gives enough to understand what the tool validates and how to invoke it, given the schema covers the two parameters. However, there is no output schema and the description does not explain what the validation result looks like, how errors are reported, or any limitations, so the context is not fully complete.
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%, and the schema already explains both parameters as 'URL of the page' and 'HTML content with JSON-LD.' The tool description adds no parameter-specific meaning beyond what the schema provides, so the baseline of 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 opens with a specific verb and resource: 'Validate JSON-LD structured data (Schema.org).' It then lists concrete check categories and supported schema types, which clearly distinguishes it from sibling tools like seo_generate_schema, whose purpose is generation rather than validation.
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 explicit when-to-use/when-not-to-use statement or named alternatives, but the validation framing provides clear context for selecting this tool over generation-focused siblings. It lacks exclusion criteria, so it does not earn a 5.
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. Dates show when Glama detected each change.
13 tool updates
v0.0.1- First observed
seo_ai_crawlers - First observed
seo_analyze - First observed
seo_core_web_vitals - First observed
seo_generate_robots - First observed
seo_generate_schema - First observed
seo_generate_security_headers - First observed
seo_geo_check - First observed
seo_images - First observed
seo_internal_links - First observed
seo_mobile - First observed
seo_robots_ai - First observed
seo_security_headers - First observed
seo_structured_data
TDQS
Tools are mostly distinct: seo_analyze is a comprehensive audit, while individual tools provide focused deep dives. Some overlap exists between seo_geo_check and seo_robots_ai (both touch AI crawler access), but descriptions clarify the broader scope of geo check.
All tools share the seo_ prefix and use snake_case, with generation tools following a clear seo_generate_* pattern. However, analysis tools mix verbs (analyze, check) with bare noun phrases (seo_images, seo_internal_links), which is a minor inconsistency.
13 tools is well-scoped for a technical SEO toolkit, covering analysis, generation, and informational tools without bloat. Each tool addresses a distinct SEO concern, and the count feels appropriate for the domain.
The toolset covers major technical SEO areas: AI search, Core Web Vitals, structured data, security headers, images, internal links, and mobile. Missing sitemap analysis and content/keyword features, but these are minor gaps for a focused technical audit tool.
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
Run SEO + AI-visibility (GEO) audits from Claude, Cursor & other AI clients.
Free SEO, GEO, and AEO audits: analyze any page or domain, AI-crawler access, agent readiness.
Professional SEO auditing: 15 tools, 9 checks, CWV, E-E-A-T, schema, GEO. Free tier.
Scan any website's AI readiness: AI search visibility and AI agent usability. Free, no auth.
Related MCP Servers
- AlicenseAqualityAmaintenanceIntegrates SEO analysis and Google Search Console data directly into Claude Code and Cursor. Performs real-time site audits, detects technical SEO issues, validates meta tags, generates structured data, and provides AI-powered recommendations for both production sites and local development servers.19303MIT

Seonix SEO MCPofficial
AlicenseAqualityBmaintenanceLets any AI agent audit any website for SEO, GEO/AEO, and speed problems, reporting issues and recommendations without modifying the site.4MIT- 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.-
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/integrallis/rankcli-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server