SEOctopus
Allows checking Google search rankings for specific keywords using stealth browser automation, with support for competitors and SERP features.
Integrates with Google Analytics 4 (GA4) via OAuth2 to provide real-time and historical analytics data including sessions, users, bounce rate, top pages, traffic sources, and more.
Performs Lighthouse audits to evaluate performance, SEO, accessibility, and best practices, and provides Core Web Vitals metrics like LCP, INP, and CLS.
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., "@SEOctopuscheck my ranking for 'mcp server tools'"
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.
SEOctopus
Your AI's SEO brain. 23 tools. One MCP server.
Stop Googling SEO metrics. Let your AI pull them directly.
Rank tracking, Google Analytics, site audits, keyword research, competitive analysis, Core Web Vitals, and a research-backed scoring system — all accessible through natural language or CLI.
Why This Exists
Every SEO tool costs $100-300/month. Ahrefs, SEMrush, Moz — they're great, but they're designed for humans clicking dashboards.
SEOctopus is different. It's designed for AI. Your Claude assistant can pull rankings, analytics, and audit data in real-time through MCP — no browser tabs, no copy-pasting, no monthly subscription.
You ask a question. Your AI answers with live data.
You: "Where do we rank for 'best mcp servers' and how's our traffic this month?"
Claude: Let me check... [calls rank_check + analytics_overview]
Rankings:
- "best mcp servers" → #7 (up from #12 last week)
- "mcp server tools" → #3
Traffic (last 28 days):
- Sessions: 4,231 (+18% vs previous period)
- Top source: Organic Search (62%)
- Bounce rate: 34% (good)Related MCP server: seo-mcp
If You Only Try 3 Things, Try These
Tool | What It Does | Why It's Great |
| Live Google rankings for any keyword | No API key needed — uses stealth Playwright scraping with anti-detection |
| Full GA4 dashboard in one call | Sessions, users, bounce rate, top pages, traffic sources — with period comparison |
| 0-100 SEO score weighted by actual Google ranking factors | Research-backed weights, letter grades, actionable recommendations |
The 8 Arms (23 Tools)
Arm 1: Rank Tracking
No API keys required. Uses stealth browser automation with anti-detection.
Tool | What You Get |
| Where your domain ranks for specific keywords (scans top 100) |
| Trend analysis: up, down, or stable over time (stored locally in SQLite) |
| Who's ranking above you and why |
| Featured snippets, People Also Ask, knowledge panels, image packs |
Arm 2: Google Analytics (GA4)
Requires OAuth2 setup (one-time, 5 minutes).
Tool | What You Get |
| Sessions, users, bounce rate, top pages, traffic sources — with comparison periods |
| Per-page performance sorted by pageviews, engagement, or conversions |
| Traffic breakdown by source, medium, campaign, or channel |
| Right-now data: active users, current pages, live events |
Arm 3: SEO Auditing
Just pass a URL. No setup needed.
Tool | What You Get |
| Full on-page audit: title, meta, headings, images, canonical, OG tags — with scoring |
| BFS crawl of your entire site with issue aggregation (respects robots.txt) |
| JSON-LD validation with required/recommended field checking |
| Word count, Flesch readability, keyword density, heading hierarchy |
| Internal/external link analysis + broken link detection with concurrent checking |
Arm 4: Keyword Research
Search Console tools need OAuth2. Suggestions work without it.
Tool | What You Get |
| Your actual keyword performance: clicks, impressions, CTR, avg position |
| Google Autocomplete + People Also Ask expansion from a seed keyword |
| Quick wins: keywords where you have high impressions but poor position (positions 4-20) |
| Group keywords by topic and infer search intent (informational/transactional/navigational) |
Arm 5: Competitive Analysis
Uses Playwright for SERP scraping + Cheerio for page analysis.
Tool | What You Get |
| Side-by-side comparison: word count, headings, images, structured data, load time |
| Topics and headings your competitors cover that you don't |
| Your share of SERP real estate vs competitors across a keyword set |
Arm 6: Performance & Core Web Vitals
Tool | What You Get |
| Lighthouse scores: performance, SEO, accessibility, best practices |
| Run Lighthouse on 2-5 URLs and compare side-by-side |
| LCP, INP, CLS with pass/fail ratings against Google's thresholds |
Arm 7: OctoScore
Tool | What You Get |
| Weighted 0-100 SEO score with letter grade (A-F) and prioritized recommendations |
Arm 8: Reports
Tool | What You Get |
| Full multi-module report in JSON, Markdown, or dark-themed HTML |
Quick Start (2 Minutes)
# 1. Clone and install
git clone https://github.com/itsjwill/seoctopus.git
cd seoctopus
npm install
# 2. Build
npm run build
# 3. Install browser for rank tracking
npx playwright install chromiumAdd to Claude as MCP Server
{
"mcpServers": {
"seoctopus": {
"command": "node",
"args": ["/path/to/seoctopus/dist/index.js"]
}
}
}That's it. Claude now has 23 SEO tools.
Want Google Analytics + Search Console too?
# One-time OAuth2 setup (requires Google Cloud project)
npx seoctopus auth setup -c /path/to/credentials.jsonGo to Google Cloud Console
Create a new project (or use existing)
Enable Google Analytics Data API and Search Console API
Create OAuth2 credentials → Desktop application
Download the credentials JSON file
Run
npx seoctopus auth setup -c credentials.json
Where Should I Start?
Just want to check rankings?
→ No setup needed. rank_check uses stealth browser scraping.
Want the full SEO picture? → Set up Google OAuth2 (5 min) to unlock Analytics + Search Console tools.
Building an SEO monitoring system?
→ Use octo_score + rank_history for automated weekly tracking with trend detection.
Comparing against competitors?
→ competitive_analyze + competitive_content_gap gives you the full picture.
Need a client report?
→ octo_report generates presentation-ready HTML with dark theme.
OctoScore — The SEO Rating System
Not another vanity metric. OctoScore is weighted by what Google actually cares about:
Factor | Weight | What It Measures | Why It Matters |
Content Quality | 25% | Word count, readability, depth | Google's #1 ranking signal |
Core Web Vitals | 15% | LCP, INP, CLS | Direct ranking factor since 2021 |
Title Optimization | 12% | Length, keyword placement | Highest CTR impact element |
Mobile Friendly | 10% | Viewport, responsive design | 60%+ of searches are mobile |
User Engagement | 10% | Bounce rate, time on page | Behavioral signals Google tracks |
Backlinks | 8% | External links pointing in | Still a top-3 ranking factor |
Link Diversity | 7% | Internal/external link mix | Healthy sites have balanced links |
E-E-A-T | 5% | Author, citations, trust | Critical for YMYL content |
Freshness | 5% | Last modified, publish date | Google rewards recently updated content |
Topical Authority | 3% | Heading coverage, semantic depth | Comprehensive content ranks better |
Grades: A (90+) · B (75-89) · C (60-74) · D (40-59) · F (<40)
Each score comes with prioritized recommendations ranked by estimated impact.
CLI Usage
SEOctopus works as a standalone terminal tool too.
# Check where you rank
seoctopus rank check "best seo tools" "mcp server" -d example.com
# Full page audit
seoctopus audit page https://example.com
# Content analysis with keyword targeting
seoctopus audit content https://example.com -k "target keyword"
# Core Web Vitals check
seoctopus perf cwv https://example.com
# Keyword opportunities from Search Console
seoctopus keywords gaps -s https://example.com
# Generate HTML report
seoctopus report https://example.com -f html -o report.html
# Calculate OctoScore
seoctopus score https://example.com -k "target keyword"
# Competitor deep dive
seoctopus compete analyze "target keyword" -u https://yoursite.com# Rank tracking
seoctopus rank check <keywords...> -d <domain> [-c country] [--device desktop|mobile]
seoctopus rank history -d <domain> [-k keywords...] [--days 30]
# SEO auditing
seoctopus audit page <url>
seoctopus audit site <url> [-p maxPages] [-d depth]
seoctopus audit content <url> [-k keyword]
seoctopus audit links <url> [-e checkExternal]
# Performance
seoctopus perf audit <url> [--device mobile|desktop]
seoctopus perf cwv <url> [-s mobile|desktop]
seoctopus perf compare <url1> <url2> [url3...] [--device mobile|desktop]
# Google Analytics
seoctopus analytics overview -p <propertyId> [--date last28days] [--compare previousPeriod]
seoctopus analytics pages -p <propertyId> [--sort pageviews|engagement|bounceRate|conversions]
seoctopus analytics realtime -p <propertyId>
# Keywords
seoctopus keywords gsc -s <siteUrl> [--sort clicks|impressions|ctr|position]
seoctopus keywords suggest <seed> [-c country]
seoctopus keywords gaps -s <siteUrl> [--min-impressions 100] [--max-position 20]
seoctopus keywords cluster <keyword1> <keyword2> [keyword3...]
# Competitive
seoctopus compete analyze <keyword> [-u yourUrl] [-n numCompetitors]
seoctopus compete gap <yourUrl> <competitorUrl1> [competitorUrl2...]
seoctopus compete share <keyword1> [keyword2...] -d <domain>
# Scoring & Reports
seoctopus score <url> [-k keyword] [-p ga4PropertyId]
seoctopus report <url> [-k keyword] [-f json|markdown|html] [-o outputFile]
# Auth & Config
seoctopus auth setup -c <credentialsFile>
seoctopus auth status
seoctopus config [--set key=value] [--get key]How It's Built
seoctopus/
├── src/
│ ├── index.ts # MCP server entry (stdio transport)
│ ├── server.ts # 23 tool definitions with Zod schemas
│ ├── cli.ts # Full CLI with Commander
│ ├── auth/google.ts # OAuth2 with auto token refresh
│ ├── data/store.ts # SQLite (WAL mode) for history
│ ├── modules/
│ │ ├── rank-tracker/ # Playwright + anti-detection + SERP parsing
│ │ ├── analytics/ # GA4 Data API + Admin API + Realtime
│ │ ├── auditor/ # On-page, content, links, schema, crawler
│ │ ├── keywords/ # Search Console + autocomplete + clustering
│ │ ├── competitive/ # Competitor analysis + content gaps + SERP share
│ │ └── performance/ # Lighthouse + PageSpeed Insights + CWV
│ ├── scoring/ # OctoScore: weights, grader, recommendations
│ ├── reports/ # JSON, Markdown, HTML (dark theme) formatters
│ └── utils/ # Config (Conf), logging, rate limiter
├── bin/seoctopus.ts # CLI executable entry
├── tsup.config.ts # Dual-entry build (MCP + CLI)
└── package.jsonUnder the Hood
Anti-detection SERP scraping — Random user agents, viewport sizes, human-like delays, webdriver spoofing via Playwright
SQLite with WAL — Concurrent read/write for rank history tracking and trend detection
OAuth2 token management — Auto-refresh, credential persistence, scoped to read-only
Rate limiting — Built-in limiter respects Google API quotas
Lazy module loading — Each tool dynamically imports its module for fast startup
3 report formats — JSON for machines, Markdown for docs, HTML with dark theme for presentations
Tech Stack
What | Why |
TypeScript (ES2022, strict) | Type safety for 23 tool schemas |
MCP SDK | Standard protocol for AI tool integration |
Playwright | Stealth browser for rank tracking |
googleapis | Official GA4 + Search Console client |
Lighthouse | Performance auditing (same engine as Chrome DevTools) |
Cheerio | Fast HTML parsing for audits |
better-sqlite3 | Embedded storage, zero config |
tsup | Fast builds, dual entry points |
Comparison: SEOctopus vs The Alternatives
Feature | SEOctopus | Ahrefs | SEMrush | Moz |
AI-native (MCP) | Yes | No | No | No |
Price | Free | $99/mo | $130/mo | $99/mo |
Rank tracking | Yes (stealth scraping) | Yes | Yes | Yes |
Google Analytics | Yes (GA4 API) | No | Yes | No |
Search Console | Yes (API) | No | Yes | No |
Site audit | Yes (crawler) | Yes | Yes | Yes |
Core Web Vitals | Yes (Lighthouse) | No | Yes | No |
CLI | Yes | No | No | No |
Self-hosted | Yes | No | No | No |
Open source | Yes | No | No | No |
SEOctopus won't replace Ahrefs' backlink index or SEMrush's keyword database. But for real-time SEO data inside your AI workflow — it's the only option.
Development
npm run dev # Watch mode (auto-rebuild on changes)
npm run typecheck # TypeScript strict mode check
npm run lint # ESLint
npm run format # Prettier
npm run test # VitestWant to Build Real Projects With AI Tools Like This?
Stop collecting bookmarks. Start shipping.
Join The Agentic Advantage — where builders learn to turn AI tools into income.
Contributing
Found a bug or have an idea? Open an issue. Built something cool with SEOctopus? Open a PR.
License
MIT — Go build something.
Available Tools
25 toolsanalytics_overviewA
Get Google Analytics overview: sessions, users, bounce rate, top pages, sources
| Name | Required | Description | Default |
|---|---|---|---|
| propertyId | Yes | GA4 property ID | |
| dateRange | No | Date range: last7days, last28days, last90days, lastYear, or YYYY-MM-DD:YYYY-MM-DD | last28days |
| compareWith | No | Compare with: previousPeriod or previousYear |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden for behavioral disclosure. It only lists output metrics without mentioning read-only nature, rate limits, or data aggregation details, leaving significant gaps.
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 that conveys purpose and key output metrics without any superfluous 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 3 parameters and no output schema, the description lists output metrics but does not specify the structure or format of the response, leaving moderate ambiguity for an agent.
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 descriptions for all 3 parameters. The tool description adds no further parameter context 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 ('Get') and resource ('Google Analytics overview'), and lists key metrics (sessions, users, bounce rate, top pages, sources), clearly differentiating it from sibling tools like analytics_pages or analytics_realtime.
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 explicit guidance on when to use this tool versus alternatives (e.g., analytics_pages for page-specific data, analytics_traffic for traffic sources). The usage is implied but not contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics_pagesC
Get per-page analytics metrics
| Name | Required | Description | Default |
|---|---|---|---|
| propertyId | Yes | GA4 property ID | |
| dateRange | No | Date range | last28days |
| orderBy | No | Sort order | pageviews |
| limit | No | Number of pages to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must bear the burden. It does not disclose whether the operation is read-only, idempotent, requires authentication, or has rate limits. This is insufficient for a safe agent invocation.
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 that efficiently conveys the core purpose with no extraneous information. 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?
Lacks output schema or description of return format. Given the complexity of analytics data (multiple metrics, pagination), the description is too minimal to fully prepare the agent for handling 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 documents all parameters. The description adds no additional meaning beyond the parameter names and defaults; 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 retrieves page-level analytics metrics, distinguishing it from sibling tools like analytics_overview (aggregate) or analytics_realtime (real-time). However, it could specify the metric types more explicitly, though the orderBy parameter hints at them.
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 vs. alternatives. While the name and description imply per-page usage, there is no explicit context or exclusion criteria, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics_realtimeB
Get realtime Google Analytics data: active users, pages, events
| Name | Required | Description | Default |
|---|---|---|---|
| propertyId | Yes | GA4 property ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry full burden. It mentions 'Get' implying read-only, but lacks any behavioral details such as data freshness, rate limits, authentication requirements, or limitations of realtime data. The description is insufficient for transparency.
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?
Description is a single sentence that is concise and front-loaded with key information. It is efficient but lacks structure for more complex information. Acceptable for a simple 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?
Given no output schema and a single required parameter, the description should provide more context about return data format or behavior. It only lists data types, leaving agents uninformed about response structure or other important details.
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 one parameter described as 'GA4 property ID'. The description adds no additional meaning beyond the schema, so it meets the baseline but does not enhance understanding of the parameter.
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 'Get', the resource 'realtime Google Analytics data', and specifies the data types: active users, pages, events. This distinguishes it from sibling tools like analytics_overview or analytics_pages which are not realtime.
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 analytics_traffic or analytics_pages. The description only states what it does without context of when realtime data is appropriate or how it differs from non-realtime siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics_trafficC
Get traffic breakdown by source, medium, or channel
| Name | Required | Description | Default |
|---|---|---|---|
| propertyId | Yes | GA4 property ID | |
| dateRange | No | Date range | last28days |
| dimension | No | Traffic dimension to group by | channel |
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 describes the output but does not disclose behavioral traits such as whether the operation is read-only, side effects, authentication needs, or performance implications. For a data retrieval tool, minimal safety context is missing.
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 is concise and directly states the purpose. It earns its place but could be more informative without losing brevity.
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 has 3 parameters and no output schema, the description is minimally complete for a simple query. It could benefit from indicating the return format or typical usage, but it covers the basic purpose.
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 each parameter (propertyId, dateRange, dimension) has a description in the schema. The tool description adds little beyond what the schema already conveys, such as the dimension enum values. 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 'Get traffic breakdown by source, medium, or channel' clearly states the verb (Get), resource (traffic breakdown), and mentions the grouping options from the dimension parameter. However, it does not differentiate from sibling tools like analytics_overview or analytics_pages, which also deal with traffic 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 provides no guidance on when to use this tool versus alternatives. There is no mention of context, prerequisites, or when not to use it, leaving the agent without decision support for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_contentC
Analyze content quality: word count, readability, keyword density
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to analyze | |
| targetKeyword | No | Primary keyword for relevance scoring |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose whether the tool is read-only, requires permissions, has rate limits, or any side effects. Minimal behavioral info.
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?
Single sentence, front-loaded with the key verb. However, it is too brief and omits important details that could improve understanding without adding length.
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 no annotations, no output schema, and only two parameters, the description lacks completeness: no return format, no examples, no behavioral details. Agent would need to infer or test extensively.
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 clear parameter descriptions. The description adds context by linking 'keyword density' to the targetKeyword parameter, but does not add significant new meaning 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?
Description clearly states the tool analyzes content quality and lists three specific metrics (word count, readability, keyword density). It somewhat distinguishes from siblings like audit_links (links) and audit_structured_data (structured data), but does not explicitly differentiate from audit_page which may overlap.
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. No context on prerequisites, when not to use, or which situations are appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_linksB
Analyze internal, external, and broken links on a page
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to analyze | |
| checkExternal | No | Also verify external links for broken URLs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'analyze' without indicating what the analysis yields (e.g., counts, error rates, or a report). There is no mention of side effects like page fetching or rate limits.
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 with no wasted words. However, it could be slightly improved by front-loading key details without becoming verbose.
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 output schema and low complexity (2 params), the description does not clarify what the tool returns. It lacks completeness for an agent to understand the output format or how to interpret 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 coverage is 100%. The description adds no additional meaning beyond the schema's field descriptions. Baseline 3 is appropriate as the schema already conveys parameter purpose.
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 analyzes internal, external, and broken links on a page. It specifies the verb 'analyze' and the resource 'links on a page', distinguishing it from siblings like audit_content, audit_page, and audit_site which have broader scopes.
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. It does not mention prerequisites, when not to use it, or suggest sibling tools for related tasks. Given many sibling audit tools, explicit usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_pageB
Run a full on-page SEO audit on a URL
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to audit |
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 whether the tool is read-only, destructive, requires authentication, or what the audit entails (e.g., network requests, data persistence).
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?
Single sentence, front-loaded, every word adds value. No wasted text.
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 only one parameter and no output schema, the description omits critical details about what a 'full on-page SEO audit' includes, such as metrics checked or format of results. This leaves the agent uncertain about the tool's output scope.
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% (the single 'url' parameter has a description). The tool description adds no additional meaning beyond the schema, so baseline is 3.
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 'Run a full on-page SEO audit on a URL' with a specific verb and resource. It distinguishes from sibling tools like audit_site (site-wide) and audit_content (content-only).
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 audit_site, audit_content, or audit_links. The description implies its use for a single URL on-page audit but does not provide explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_siteB
Crawl and audit an entire website
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Starting URL | |
| maxPages | No | Maximum pages to crawl | |
| maxDepth | No | Maximum crawl depth |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so description must compensate. It states 'crawl and audit' but does not disclose behavioral details such as whether it modifies data, rate limits, or what specific audits are performed. This leaves uncertainty for the agent.
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?
Single short sentence, no wasted words. However, it could be slightly more informative without sacrificing brevity.
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?
No output schema exists. The description does not explain what the audit produces (e.g., report, issues list, scores). Given the complexity of crawling an entire site, the description is too sparse to fully inform an agent about what to expect.
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 all three parameters described in the schema. The description adds no extra meaning beyond the schema, so 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?
Description clearly states it crawls and audits an entire website, using a specific verb and resource. It is well-distinguished from sibling tools like audit_page (single page) and audit_links (specific audit type).
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 explicit when-to-use or alternatives are mentioned. The purpose is implied by the tool name and siblings, but no guidance on choosing between full site audit vs. page-level or specific audits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_structured_dataB
Validate JSON-LD and structured data on a page
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only says 'validate', not disclosing whether the operation is read-only, any side effects, rate limits, or error behavior. Minimal behavioral info.
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?
Single sentence with no extraneous words. Highly concise and front-loaded.
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 low complexity (1 param, no output schema), the description fails to explain what 'validate' returns (e.g., pass/fail, errors) or any other output details, leaving the agent uncertain about the tool's outcome.
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 the single parameter 'url', with a clear description 'URL to check'. The tool description adds no extra meaning beyond the schema, baseline score of 3.
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 verb 'validate' and resource 'JSON-LD and structured data on a page', clearly distinguishing it from sibling tools like audit_content or audit_links that focus on other page aspects.
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 (e.g., audit_content), when not to use it, or any prerequisites. The agent has no context to decide between this and similar audit tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
competitive_analyzeC
Analyze top competitors for a keyword with side-by-side comparison
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Target keyword | |
| yourUrl | No | Your page URL for comparison | |
| numCompetitors | No | Number of competitors |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. It mentions analyzing and comparing competitors but fails to disclose behavioral traits such as data sources, freshness, limitations, or whether the tool is read-only. The agent cannot infer 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 a single concise and front-loaded sentence, with no unnecessary words. It efficiently conveys 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?
Although the tool only has 3 parameters and schema coverage is high, the description does not explain what the output includes (e.g., metrics, format, comparison details). With no output schema, the agent lacks critical information about what to expect after 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%, so baseline is 3. The description adds 'side-by-side comparison' which implies the output compares the user's URL to competitors, but otherwise no extra meaning beyond the schema. The parameters are adequately described in 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 clearly states the tool analyzes top competitors for a keyword with side-by-side comparison. It uses a specific verb ('analyze') and resource ('competitors for a keyword'). However, it does not fully distinguish from siblings like competitive_content_gap or rank_competitors, as it does not specify what aspects are compared.
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 usage guidelines are provided. The description does not indicate when to use this tool versus alternatives such as competitive_content_gap or competitive_serp_share. There is no mention of prerequisites or scenarios to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
competitive_content_gapB
Find topics/headings competitors cover that you don't
| Name | Required | Description | Default |
|---|---|---|---|
| yourUrl | Yes | Your page URL | |
| competitorUrls | Yes | Competitor page URLs (up to 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It does not mention how results are returned, prerequisite conditions, rate limits, or any side effects. The description is minimal and lacks transparency about the tool's behavior.
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 with no wasted words. While it could be expanded with minimal extra context (e.g., output hints), it is appropriately front-loaded and efficient for its length.
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 has only 2 parameters and no output schema, the description provides the essential purpose but lacks additional context like expected output format or examples. It is minimally complete but could be more informative for an agent to fully understand usage context.
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 descriptions for both parameters. The description adds a constraint of 'up to 5' for competitorUrls, which is not in the schema. However, the schema already adequately defines the parameters, so the description adds marginal value beyond emphasizing the purpose.
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 'Find topics/headings competitors cover that you don't' clearly states the specific verb (find) and resource (content gaps between your page and competitors). It effectively distinguishes the tool from siblings like competitive_analyze and keywords_gaps, which focus on different aspects of competitive 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 content gap analysis but does not explicitly state when to or not to use this tool versus alternatives. With several sibling competitive and keyword tools, some guidance on when to choose this over competitors_analyze or keywords_gaps would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywords_clusterA
Group keywords by topic and search intent
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Keywords to cluster |
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 states the grouping action without disclosing behavioral traits like clustering method, output format, or any side effects. This is insufficient for an agent to predict behavior.
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 sentence that is direct and free of fluff. Every word contributes to 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?
Given low complexity (1 param, no output schema), the description is minimally adequate but incomplete. It does not describe the output or any clustering details, which would help the agent understand what the tool 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 covers the sole parameter 'keywords' with a description. The description does not add any extra meaning beyond what the schema already provides, so baseline score 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 the action ('Group') and the resource ('keywords') with a specific criterion ('by topic and search intent'). This distinguishes it from sibling tools like keywords_suggestions or keywords_gaps.
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 explicit guidance on when to use or not use this tool compared to alternatives. The description implies usage for grouping, but lacks exclusions or context about sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywords_gapsB
Find quick-win keyword opportunities (high impressions, poor position)
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | Yes | Search Console property URL | |
| minImpressions | No | Minimum impressions threshold | |
| maxPosition | No | Max position to include | |
| minPosition | No | Min position (opportunity zone) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose permissions, data source, or side effects. Only implies a read-only analysis operation.
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?
Single, front-loaded sentence concisely conveys core purpose without unnecessary words.
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?
Adequate for a simple tool with well-schematized parameters, but lacks output schema and further explanation of 'quick-win' criteria.
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 100% of parameters with descriptions; the tool description adds high-level context but no additional meaning for individual parameters.
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 finds keyword opportunities based on high impressions and poor position, distinguishing it from sibling tools like 'keywords_search_console' or 'keywords_cluster'.
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 vs. alternatives, such as other keyword or analytics tools. Agent would need to infer context from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywords_search_consoleB
Get keyword performance from Google Search Console
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | Yes | Search Console property URL | |
| dateRange | No | Date range | last28days |
| page | No | Filter to specific page URL | |
| limit | No | Max results | |
| orderBy | No | Sort order | clicks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of transparency but only gives a brief functional label, omitting behavioral details like read-only nature, rate limits, or what 'performance' entails.
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, but it could be slightly expanded to include context without sacrificing brevity.
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 has 5 parameters, no output schema, and no annotations, the description is too minimal to help an agent understand what the tool returns or how to use it effectively.
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 baseline is 3. The description adds no additional meaning beyond what the schema already provides for each parameter.
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 action ('Get') and resource ('keyword performance from Google Search Console'), distinguishing it from sibling tools like keywords_cluster or keywords_gaps.
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 on when to use this tool versus alternatives among the many sibling tools, nor are there any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywords_suggestionsB
Get keyword suggestions from Google Autocomplete and People Also Ask
| Name | Required | Description | Default |
|---|---|---|---|
| seed | Yes | Seed keyword | |
| country | No | Country code | us |
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 states the data source but fails to disclose behavioral traits such as rate limits, data freshness, return format, or whether multiple calls are needed for different sources.
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, clear sentence without unnecessary words. It is concise, but could be slightly restructured to front-load the primary action and include brief context on output.
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 no output schema, the description should hint at the return structure or provide usage context. It states the sources but omits details like number of suggestions, format, or limitations. Adequate but could be improved.
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 having descriptions. The description adds no additional meaning beyond the schema; it does not explain how the parameters affect the suggestions (e.g., country affects localization). 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 verb 'Get', the resource 'keyword suggestions', and the specific sources 'Google Autocomplete and People Also Ask'. It distinguishes from siblings like keywords_cluster or keywords_gaps by specifying the data source.
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 suggestion generation but provides no explicit guidance on when to use this tool versus alternatives like keywords_search_console or keywords_gaps. No exclusion criteria or usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
octo_reportC
Generate a comprehensive multi-module SEO report
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to report on | |
| keyword | No | Target keyword | |
| format | No | Report format | markdown |
| depth | No | Analysis depth | standard |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It only states the report is generated, with no details on read-only nature, authorization needs, runtime, or side effects. Critical missing information for mutation assessment.
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, highly concise and front-loaded with the key action. It wastes no words but could benefit from slight elaboration on output.
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 that generates a multi-module report, the description is too brief. It omits return format (though 'format' parameter exists), content, time expectations, and how it integrates with sibling tools, leaving the agent uncertain.
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?
Input schema has 100% coverage with brief descriptions for each parameter. The tool's main description adds no additional semantic value beyond what is already in the schema. Baseline score of 3 applies as schema does the work.
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 generates a comprehensive multi-module SEO report, indicating an aggregated function. However, it does not specify which modules are included, leaving some ambiguity. It is distinguishable from sibling tools that perform individual analyses.
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 on when to use this tool versus alternatives like audit_site or analytics_overview. The description lacks context for when this report is preferable or what prerequisites exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
octo_scoreB
Calculate the OctoScore (0-100) - weighted by Google ranking factors with letter grade and action items
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to score | |
| keyword | No | Target keyword for relevance scoring | |
| propertyId | No | GA4 property ID for engagement data | |
| siteUrl | No | GSC property URL for keyword data |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially explains behavior: it calculates a score and returns a grade/actions. However, it does not disclose side effects (likely none), required permissions, rate limits, or how optional parameters like propertyId affect behavior. The mention of 'weighted by Google ranking factors' adds context but omits specifics.
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 conveys essential information (verb, resource, output details). It is concise without being overly terse, though it could be improved by front-loading the verb more explicitly and adding a brief usage note.
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 no output schema, no annotations, and 4 parameters (3 optional), the description should explain the return format (e.g., structure of letter grade and action items) and prerequisites. It fails to do so, leaving the agent with insufficient information to invoke the tool correctly in complex scenarios.
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. The description adds no additional meaning beyond what the schema already provides; for example, it doesn't clarify how 'keyword' influences relevance scoring or when 'siteUrl' is necessary. It merely echoes the fact that these parameters exist.
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's purpose: to calculate an OctoScore on a 0-100 scale, weighted by Google ranking factors, and produce a letter grade and action items. It specifies the verb 'Calculate' and the resource 'OctoScore', making it distinct from sibling tools that focus on analytics, audits, or rankings.
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 on when to use this tool versus alternatives such as rank_check or audit_page. The description does not include any 'when-to-use' or 'when-not-to-use' information, forcing the agent to infer based on name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
performance_auditC
Run Lighthouse audit for performance, SEO, accessibility scores
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to audit | |
| device | No | Device type | mobile |
| categories | No | Lighthouse categories to audit |
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 runtime, resource intensity, or return format. The agent has no idea what the output will be.
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?
One concise sentence with no filler. Every word serves a 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 complexity of a Lighthouse audit and the absence of an output schema, the description fails to explain return values or behavior. The tool has 3 parameters but the description is too minimal.
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 baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions, which are already clear.
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 'Run' and the resource 'Lighthouse audit', specifying the audit categories. However, it does not distinguish from sibling tools like 'audit_page' or 'audit_site' which may also run audits.
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. With many sibling tools covering audits and performance, the description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
performance_compareB
Compare performance of multiple URLs side-by-side
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | URLs to compare (2-5) | |
| device | No | Device type | mobile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It only states 'compare performance' without specifying what metrics are compared, whether the operation is read-only, or what the response contains. Significant gaps for a comparison 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?
Single sentence is concise and front-loaded, but could benefit from additional details without becoming verbose. No wasted words, but scope is limited.
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?
Tool has 2 parameters, no output schema, and no annotations. The description is insufficient: no mention of return format, performance metrics, or read-only nature. For a comparison tool, more context is needed.
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?
Both parameters have schema descriptions (urls: 'URLs to compare (2-5)', device: 'Device type'), covering 100% of parameters. The tool description adds no additional meaning beyond what the schema already provides.
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 compares performance of multiple URLs side-by-side, which is a specific verb+resource combination that distinguishes it from sibling tools like performance_audit (single URL) and performance_cwv (focused on 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?
No guidance on when to use this tool versus alternatives (e.g., performance_audit for single URL, competitive_analyze for broader comparison). Description lacks context about prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
performance_cwvA
Get Core Web Vitals (LCP, INP, CLS) with pass/fail ratings
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to analyze | |
| strategy | No | Analysis strategy | mobile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. The word 'Get' implies a read-only operation, but it does not explicitly confirm no side effects, authentication needs, or data freshness. It is minimally adequate for a simple retrieval 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 a single, well-structured sentence with no wasted words. It front-loads the key 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 no output schema, the description mentions pass/fail ratings but omits return value structure. For a simple tool with few parameters, it is complete enough for basic use but could be improved with output details.
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. The description adds no additional meaning beyond the schema, which is acceptable but not valuable.
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 'Get', the resource 'Core Web Vitals', and specifies the exact metrics (LCP, INP, CLS) along with the outcome (pass/fail ratings). This distinguishes it well from sibling tools like performance_audit.
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 such as performance_audit or performance_compare. There are no prerequisites, exclusions, or context provided to help an agent decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rank_checkB
Check where a domain ranks in Google for given keywords
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Keywords to check rankings for | |
| domain | Yes | Your domain to find in results | |
| country | No | Google country code | us |
| language | No | Language code | en |
| device | No | Device type | desktop |
| numResults | No | How many results to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It does not disclose behavioral traits like whether it's read-only, rate limits, or return structure. The description is too brief to cover these aspects.
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?
Single sentence with no redundancy. However, it may be overly concise for a tool with 6 parameters; a bit more structure could improve readability without adding length.
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 complexity (6 parameters, no output schema, no annotations), the description is inadequate. It does not explain the return format, pagination, or limitations, leaving the agent underinformed.
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 parameters are well-described in the schema. The description adds no extra meaning beyond what's already in 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 action ('check') and the resource ('domain ranking in Google for given keywords'). It differentiates from siblings like 'rank_competitors' or 'rank_history' by focusing on a specific domain and keywords.
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 such as 'rank_competitors' or 'rank_history'. The description lacks context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rank_competitorsC
Get top ranking pages for a keyword
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Keyword to search | |
| numResults | No | Number of results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose any behavioral traits such as data source, rate limits, or whether the tool is read-only. It only states the basic action, leaving agents uninformed about side effects 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 very concise (6 words), but it sacrifices detail for brevity. It could be expanded slightly to clarify scope without losing efficiency.
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 lack of annotations and output schema, the description is insufficient. It does not explain what 'top ranking pages' means, how results are ordered, or what data is returned, leaving significant gaps for a tool with multiple siblings.
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% with clear parameter descriptions ('Keyword to search', 'Number of results'). The description adds no further meaning beyond the schema, which is adequate but not enhanced.
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 'Get top ranking pages for a keyword' indicates retrieving pages that rank highly for a given keyword, but it does not clarify the scope (e.g., from a specific domain, all competitors, or globally). The tool name suggests competitor analysis, but the description lacks this context.
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 on when to use this tool versus sibling tools like 'rank_check', 'competitive_analyze', or 'rank_history'. The description does not mention use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rank_historyB
Get historical ranking data with trend direction
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to get history for | |
| keywords | No | Filter to specific keywords | |
| days | No | Lookback period in days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It only states the basic function without disclosing important traits like data source, update frequency, rate limits, or any side effects. Minimal behavioral insight.
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 with no wasted words. However, it could be slightly expanded to include more contextual detail without sacrificing brevity.
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 absence of an output schema and annotations, the description is insufficient. It does not explain what the returned data looks like, any pagination, or how trend direction is derived, leaving the agent underinformed.
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% description coverage, so baseline is 3. The description adds no additional meaning to the parameters beyond what the schema already provides.
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 'Get' and the resource 'historical ranking data', and adds specific context 'with trend direction', which distinguishes it from sibling tools like 'rank_check' that focus on current rankings.
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 historical data and trend analysis, but does not explicitly state when to use this tool over alternatives such as 'rank_check' or 'rank_competitors'. No exclusions or prerequisite conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rank_serp_featuresB
Detect SERP features (featured snippet, PAA, knowledge panel, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Keyword to check SERP features for | |
| country | No | Google country code | us |
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 states detection of features but does not explain output format, pagination, rate limits, or authentication needs. The behavioral impact is underspecified.
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 concise sentence with zero wasted words. However, it omits information that could be included without sacrificing conciseness, such as output hints.
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?
No output schema is provided, so the description should explain what the tool returns. It fails to do so. Given the complexity (simple parameters but many siblings), the description is insufficient for an agent to fully understand usage.
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% (both 'keyword' and 'country' described). The description adds no new semantic meaning beyond the schema, leading to a baseline score of 3.
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 specifies a clear verb 'Detect' and resource 'SERP features', listing concrete examples (featured snippet, PAA, knowledge panel). It distinguishes from sibling tools like 'rank_check' which focus on positions, not feature detection.
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 'rank_check' or 'rank_competitors'. The description does not mention scenarios, prerequisites, or exclusions.
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.
25 tool updates
v1.0.0- First observed
analytics_overview - First observed
analytics_pages - First observed
analytics_realtime - First observed
analytics_traffic - First observed
audit_content - First observed
audit_links - First observed
audit_page - First observed
audit_site - First observed
audit_structured_data - First observed
competitive_analyze - First observed
competitive_content_gap - First observed
competitive_serp_share - First observed
keywords_cluster - First observed
keywords_gaps - First observed
keywords_search_console - First observed
keywords_suggestions - First observed
octo_report - First observed
octo_score - First observed
performance_audit - First observed
performance_compare - First observed
performance_cwv - First observed
rank_check - First observed
rank_competitors - First observed
rank_history - First observed
rank_serp_features
TDQS
Each tool has a clearly distinct purpose, grouped by domain (analytics, audit, competitive, keywords, performance, rank, reporting) with no overlapping functionality. For example, analytics_overview, analytics_pages, analytics_realtime, and analytics_traffic each target different aspects of analytics.
All tool names follow a consistent snake_case pattern with a domain-specific prefix (e.g., analytics_, audit_, competitive_) followed by a descriptive noun or verb, making them predictable and easy to navigate.
While at the upper end of the recommended range (25 tools), each tool covers a distinct SEO function. The count is justified by the breadth of SEO tasks (analytics, audits, rankings, keywords, competitive analysis, performance) without being excessive.
The tool set covers most core SEO workflows: analytics, audits, keyword research, rankings, performance, and competitive analysis. Minor gaps include missing backlink analysis (though link auditing exists) and deeper content optimization tools, but the surface is largely complete.
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
- CalmSEOOAuthcom.calmseo
SEO MCP server for keyword research, SERP analysis, audits, and Search Console workflows.
- RampifyOAuthdev.rampify
SEO MCP server: crawl your site, find AI-visibility gaps, and ship the fix from your coding agent.
An MCP server that integrates with Discord to provide AI-powered features.
- VibeSEOOAuthdev.vibeseo
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server that enables AI assistants to perform SEO automation tasks including keyword research, SERP analysis, and competitor analysis through Google Ads API integration.1-
- AlicenseAqualityDmaintenanceMCP server that gives AI assistants live access to Google Search Console and Bing Webmaster Tools for search performance, indexing, keyword research, and crawl health analysis directly in the chat.1013MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that connects AI assistants to SEO platforms like Google Search Console, GA4, Bing Webmaster Tools, and Adobe Analytics, enabling natural language queries about SEO performance.2,926MIT
- FlicenseAqualityDmaintenanceAn MCP server that provides Google Analytics and Search Console data as tools for AI assistants, enabling natural language queries for web analytics, SEO performance, and site insights.13-
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/itsjwill/seoctopus'
If you have feedback or need assistance with the MCP directory API, please join our Discord server