Skip to main content
Glama

SEOctopus

Your AI's SEO brain. 23 tools. One MCP server.

Stop Googling SEO metrics. Let your AI pull them directly.

MCP Server Node TypeScript License Tools GA4 Search Console

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

rank_check

Live Google rankings for any keyword

No API key needed — uses stealth Playwright scraping with anti-detection

analytics_overview

Full GA4 dashboard in one call

Sessions, users, bounce rate, top pages, traffic sources — with period comparison

octo_score

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

rank_check

Where your domain ranks for specific keywords (scans top 100)

rank_history

Trend analysis: up, down, or stable over time (stored locally in SQLite)

rank_competitors

Who's ranking above you and why

rank_serp_features

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

analytics_overview

Sessions, users, bounce rate, top pages, traffic sources — with comparison periods

analytics_pages

Per-page performance sorted by pageviews, engagement, or conversions

analytics_traffic

Traffic breakdown by source, medium, campaign, or channel

analytics_realtime

Right-now data: active users, current pages, live events

Arm 3: SEO Auditing

Just pass a URL. No setup needed.

Tool

What You Get

audit_page

Full on-page audit: title, meta, headings, images, canonical, OG tags — with scoring

audit_site

BFS crawl of your entire site with issue aggregation (respects robots.txt)

audit_structured_data

JSON-LD validation with required/recommended field checking

audit_content

Word count, Flesch readability, keyword density, heading hierarchy

audit_links

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

keywords_search_console

Your actual keyword performance: clicks, impressions, CTR, avg position

keywords_suggestions

Google Autocomplete + People Also Ask expansion from a seed keyword

keywords_gaps

Quick wins: keywords where you have high impressions but poor position (positions 4-20)

keywords_cluster

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

competitive_analyze

Side-by-side comparison: word count, headings, images, structured data, load time

competitive_content_gap

Topics and headings your competitors cover that you don't

competitive_serp_share

Your share of SERP real estate vs competitors across a keyword set

Arm 6: Performance & Core Web Vitals

Tool

What You Get

performance_audit

Lighthouse scores: performance, SEO, accessibility, best practices

performance_compare

Run Lighthouse on 2-5 URLs and compare side-by-side

performance_cwv

LCP, INP, CLS with pass/fail ratings against Google's thresholds

Arm 7: OctoScore

Tool

What You Get

octo_score

Weighted 0-100 SEO score with letter grade (A-F) and prioritized recommendations

Arm 8: Reports

Tool

What You Get

octo_report

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 chromium

Add 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.json
  1. Go to Google Cloud Console

  2. Create a new project (or use existing)

  3. Enable Google Analytics Data API and Search Console API

  4. Create OAuth2 credentials → Desktop application

  5. Download the credentials JSON file

  6. 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.json

Under 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         # Vitest

Want 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.

Join The Agentic Advantage


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 tools
analytics_overviewA

Get Google Analytics overview: sessions, users, bounce rate, top pages, sources

ParametersJSON Schema
NameRequiredDescriptionDefault
propertyIdYesGA4 property ID
dateRangeNoDate range: last7days, last28days, last90days, lastYear, or YYYY-MM-DD:YYYY-MM-DDlast28days
compareWithNoCompare with: previousPeriod or previousYear

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
propertyIdYesGA4 property ID
dateRangeNoDate rangelast28days
orderByNoSort orderpageviews
limitNoNumber of pages to return

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
propertyIdYesGA4 property ID

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
propertyIdYesGA4 property ID
dateRangeNoDate rangelast28days
dimensionNoTraffic dimension to group bychannel

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to analyze
targetKeywordNoPrimary keyword for relevance scoring

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_pageB

Run a full on-page SEO audit on a URL

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to audit

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesStarting URL
maxPagesNoMaximum pages to crawl
maxDepthNoMaximum crawl depth

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to check

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesTarget keyword
yourUrlNoYour page URL for comparison
numCompetitorsNoNumber of competitors

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
yourUrlYesYour page URL
competitorUrlsYesCompetitor page URLs (up to 5)

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

competitive_serp_shareC

Calculate your share of SERP real estate vs competitors

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYesKeywords to check
domainYesYour domain

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as data requirements, rate limits, or side effects. The description only states the basic function without elaborating on what 'share' means or how it is computed.

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

Conciseness5/5

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

The description is a single sentence that is concise and front-loaded with the core action. No extraneous information is included.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description is too minimal. It does not explain what the output represents (e.g., percentage, number of features), nor does it provide context about the scope of 'SERP real estate' (e.g., organic vs paid). The tool's complexity is low, but completeness is still lacking for a calculation tool.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters ('Keywords to check' and 'Your domain'). The tool description adds no additional meaning beyond these basic schema descriptions, 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.

Purpose4/5

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

The description clearly states the tool calculates a share of SERP real estate versus competitors, using 'calculate' as a specific verb and specifying the resource. It distinguishes from sibling tools like rank_competitors and competitive_analyze, though 'SERP real estate' could be more precisely defined.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as competitive_analyze or competitive_content_gap. No prerequisites or contextual conditions are provided, leaving the agent to infer usage.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYesKeywords to cluster

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUrlYesSearch Console property URL
minImpressionsNoMinimum impressions threshold
maxPositionNoMax position to include
minPositionNoMin position (opportunity zone)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUrlYesSearch Console property URL
dateRangeNoDate rangelast28days
pageNoFilter to specific page URL
limitNoMax results
orderByNoSort orderclicks

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
seedYesSeed keyword
countryNoCountry codeus

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to report on
keywordNoTarget keyword
formatNoReport formatmarkdown
depthNoAnalysis depthstandard

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to score
keywordNoTarget keyword for relevance scoring
propertyIdNoGA4 property ID for engagement data
siteUrlNoGSC property URL for keyword data

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to audit
deviceNoDevice typemobile
categoriesNoLighthouse categories to audit

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYesURLs to compare (2-5)
deviceNoDevice typemobile

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to analyze
strategyNoAnalysis strategymobile

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYesKeywords to check rankings for
domainYesYour domain to find in results
countryNoGoogle country codeus
languageNoLanguage codeen
deviceNoDevice typedesktop
numResultsNoHow many results to scan

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesKeyword to search
numResultsNoNumber of results

TDQS

C2.5/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to get history for
keywordsNoFilter to specific keywords
daysNoLookback period in days

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesKeyword to check SERP features for
countryNoGoogle country codeus

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 25 tool updatesv1.0.0
    • First observedanalytics_overview
    • First observedanalytics_pages
    • First observedanalytics_realtime
    • First observedanalytics_traffic
    • First observedaudit_content
    • First observedaudit_links
    • First observedaudit_page
    • First observedaudit_site
    • First observedaudit_structured_data
    • First observedcompetitive_analyze
    • First observedcompetitive_content_gap
    • First observedcompetitive_serp_share
    • First observedkeywords_cluster
    • First observedkeywords_gaps
    • First observedkeywords_search_console
    • First observedkeywords_suggestions
    • First observedocto_report
    • First observedocto_score
    • First observedperformance_audit
    • First observedperformance_compare
    • First observedperformance_cwv
    • First observedrank_check
    • First observedrank_competitors
    • First observedrank_history
    • First observedrank_serp_features

TDQS

B3.4/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that enables AI assistants to perform SEO automation tasks including keyword research, SERP analysis, and competitor analysis through Google Ads API integration.
    1
    -
  • A
    license
    A
    quality
    D
    maintenance
    MCP 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.
    10
    13
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An 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,926
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    An 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

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