seocli
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., "@seocliaudit https://example.com for SEO issues"
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.
seocli — SEO Crawling & Auditing CLI for AI Agents
"审计一下 example.com 的 SEO" → agent invokes
seocli, returns structured issue report.
seocli is a dual-mode SEO auditing tool built for AI agent integration:
CLI mode —
seocli https://example.com→ structured JSON on stdoutMCP mode — tools for Claude Code and any MCP-compatible agent framework
Crawl any website, extract SEO data, detect issues, get actionable JSON output.
Install
pip install seocli[js,mcp]
# Optional: JS rendering for SPAs
pip install playwright && playwright install chromiumRelated MCP server: mcp-seo
Quick Start
# Quick audit — JSON printed to stdout
seocli https://example.com --quiet
# Deep crawl with output file
seocli https://example.com --depth 5 --json report.json
# Local dev server (no delay)
seocli http://localhost:3000 --delay 0
# JavaScript-rendered SPA
seocli https://spa-site.com --jsMCP Integration
seocli ships with an MCP server — register it in your agent's MCP configuration:
Claude Code
Add to ~/.claude/mcp.json:
{
"mcpServers": {
"seocli": {
"command": "python3",
"args": ["-m", "seocli.server"]
}
}
}Then restart Claude Code. These tools become available:
Tool | Description |
| Full crawl + audit. Returns pages, issues, links, stats as JSON. |
| Quick shallow crawl + grouped issue summary. Faster. |
| Start async crawl (large sites). Returns |
| Poll async session for incremental results + progress. |
| Get final results of an async session. |
| Resource: most recent audit result as JSON. |
| Resource: 0-100 site health score with letter grade. |
Async Audits (Large Sites)
For sites with 50+ pages, use the async flow to avoid long blocking waits:
1. seocli_audit_start(url) → session_id
2. seocli_audit_poll(session_id) → incremental issues + progress
3. seocli_audit_results(session_id) → final reportAgent Prompt Templates
Ready-to-use prompt snippets for AI agents: see prompts/ directory.
File | For |
| Claude Code |
| Cursor IDE |
| Any MCP agent |
Any MCP Host
seocli uses the standard Model Context Protocol — it works with any MCP-compatible client. Just point your MCP host at python3 -m seocli.server.
Agent Prompt Example
When configuring an agent to use seocli, describe it like this:
You have access to the `seocli_audit` MCP tool. When the user says
"audit example.com for SEO issues", call it with the URL. Parse the
`issues` array from the result and present:
- Errors first (🔴), grouped by category
- Warnings second (🟡), grouped by category
- Key stats: pages crawled, response time, issue countAgent Decision Guide
When to use --js
The site is a known SPA (React/Vue/Angular with client-side rendering)
Tags don't appear in raw HTML:
curl <url>returns no meta tagsDefault: no JS (faster, lighter, fewer dependencies)
When to use --delay
Own/local site:
--delay 0(fastest, no artificial wait)Other people's sites:
--delay 1.0at minimum (be polite)The delay is seconds between requests —
1.0= 1 request/second
When to use --respect-robots
Other people's sites: keep enabled (default: on)
Own site with restrictive robots.txt: use
--no-robots
Finding Priority (high → low)
Priority | Type | Category | Example |
🔴 1 | error | SEO | Missing title tag |
🔴 2 | error | Technical | 404, 5xx status codes |
🔴 3 | error | Indexability | noindex on critical pages |
🟡 4 | warning | SEO | Title too long/short |
🟡 5 | warning | Social | Missing OG/Twitter tags |
🟡 6 | warning | Technical | Missing canonical URL |
🔴 7 | error | Content | Broken image, missing alt text |
🟡 8 | warning | Content | Thin content (< 300 words) |
🟡 9 | warning | Performance | Slow page load (> 2s) |
🔵 10 | info | Technical | Redirect detected (verify) |
JSON Output Structure
{
"url": "https://example.com",
"stats": {
"crawled": 42,
"discovered": 85,
"depth": 3,
"speed": 5.2,
"elapsed_seconds": 8.1
},
"pages": [
{
"url": "https://example.com/",
"status_code": 200,
"title": "Page Title",
"meta_description": "Description...",
"h1": "Heading",
"h2": ["Subheading"],
"word_count": 450,
"lang": "en",
"canonical_url": "...",
"og_tags": { "og:title": "...", "og:description": "...", "og:image": "..." },
"twitter_tags": { "twitter:card": "summary_large_image" },
"json_ld": [{ "@type": "WebSite", ... }],
"analytics": { "gtag": true, "ga4_id": "G-XXXXX" },
"images": [{ "src": "...", "alt": "...", "width": "", "height": "" }],
"hreflang": [{ "hreflang": "en", "href": "..." }],
"internal_links": 15,
"external_links": 3,
"response_time": 234.5,
"size": 12450,
"viewport": "width=device-width, initial-scale=1",
"robots": "index, follow",
"is_internal": true,
"depth": 0,
"linked_from": ["https://example.com/other"]
}
],
"links": [
{
"source_url": "https://example.com/",
"target_url": "https://example.com/about",
"anchor_text": "About us",
"is_internal": true,
"target_domain": "example.com",
"target_status": 200,
"placement": "body"
}
],
"issues": [
{
"url": "https://example.com/page",
"type": "error",
"category": "SEO",
"issue": "Missing Title Tag",
"details": "Page has no title tag"
}
]
}Issue Classification
Issue Types
Type | Meaning | Action |
| Must fix | Missing title, 404, noindex, broken images |
| Should fix | Title too long/short, thin content, slow page |
| Note | Redirect detected, informative findings |
Issue Categories
SEO · Technical · Content · Mobile · Accessibility · Social · Structured Data · Performance · Indexability · Duplication
What's New in v0.4.0
GEO (Generative Engine Optimization) — AI Search Readiness
First-of-its-kind GEO category: checks if pages are optimized for AI search engines (ChatGPT, Perplexity, Google AI Overviews). 8 new rules covering: AI crawler blocking, content structure for AI models, source citations, author attribution (E-E-A-T), publish dates, FAQ schema detection, and more.
Custom Rules DSL
Define your own SEO checks in .seocli-rules.yaml — no Python code needed. 8 check types: field_exists, field_matches_regex, list_min_items, and more. URL include/exclude patterns via glob. See .seocli-rules.example.yaml.
GitHub Action
Official CI/CD integration: auto-audit on PRs, comment results, fail on errors. See .github/workflows/seo-audit.yml.
What's New in v0.3.0
MCP Deepening — AI Agent Native
Async audits:
seocli_audit_start/seocli_audit_poll/seocli_audit_results— incremental reporting for large sitesMCP Resources:
seocli://audit/score(0-100 health score) andseocli://audit/latest(cached result)Prompt templates: Ready-to-use agent prompts for Claude Code, Cursor, and any MCP agent in
prompts/
What's New in v0.2.0
New Rule Categories
Category | New Rules | Type |
Security | HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Page Served Over HTTP, HTTP on Form Pages | error |
Accessibility | ARIA Landmarks, Positive Tabindex, Missing Skip Link, Potential Contrast Issues | error/warning |
Structured Data | JSON-LD @context validation, @type validation, Schema.org itemtype | warning |
Performance | Images Without Dimensions (CLS), Large DOM Size, Missing font-display, No Preconnect Hints, Render-Blocking Resources | warning/info |
SSL | HTTPS usage check | error |
New Output Formats
Format | Flag | Description |
JSON |
| Structured JSON for AI agents and programmatic use |
CSV |
| Issues + Pages as CSV for spreadsheet analysis |
Markdown |
| Human-readable report with emoji-coded issues |
HTML |
| Standalone HTML report with styled table |
CI/CD Integration
# Fail if any errors found (exit code 1)
seocli https://example.com --fail-on error
# Fail if any warnings or errors found
seocli https://example.com --fail-on warningTesting
seocli now includes a comprehensive test suite. Run with:
pip install seocli[dev]
python -m pytest tests/ -vRule Count: 25 → 60+
v0.2.0 more than doubles the number of SEO audit rules from 25 to over 60, covering security headers, accessibility deep-dive, structured data quality, SSL/HTTPS, and Core Web Vitals static signals.
CLI Usage
Scenario | Command |
Quick audit |
|
Quiet (agent) |
|
Save to file |
|
Local dev |
|
Polite crawl |
|
SPA audit |
|
Deep crawl |
|
No duplication check |
|
Options
seocli <url> [options]
positional:
url Website URL to audit
options:
--depth N Max crawl depth (default: 3)
--max-urls N Max URLs to crawl (default: 500)
--delay SECONDS Seconds between requests (default: 0 = no limit)
--js Enable JavaScript rendering (requires playwright)
--respect-robots Respect robots.txt (default: on)
--no-robots Ignore robots.txt
--concurrency N Max concurrent requests (default: 5)
--json FILE Save JSON output to file
--quiet, -q Suppress progress output
--no-duplicate-check Skip duplicate content detection (faster on large sites)
--format {json,csv,markdown,md,html} Output format (default: json)
--fail-on {error,warning,info,none} CI gate: exit 1 if issues at this level exist
--rules FILE Custom rules config (.yaml or .json)
--help Show this helpCustom Rules
Define your own SEO checks in .seocli-rules.yaml:
# Run with custom rules
seocli https://example.com --rules .seocli-rules.yaml
# Example: check all product pages have >300 words
# See .seocli-rules.example.yaml for more examples8 check types: field_exists, field_not_empty, field_min_length, field_max_length, field_matches_regex, field_not_matches_regex, list_min_items, url_matches_pattern. URL include/exclude patterns via glob.
GitHub Action
# .github/workflows/seo-audit.yml
# Auto-audits on PR, comments results, fails on errors
# See .github/workflows/seo-audit.ymlExtras
JS Rendering
pip install seocli[js]
playwright install chromium
seocli https://spa-site.com --jsMCP Only
pip install seocli[mcp]
python -m seocli.serverLicense
MIT
Related Tools
Project | Description |
seo-review-board (archived) | Multi-agent SEO 评审框架模板 — 角色定义、场景模板、评分系统 |
12-Factor AI 爬虫,可与 seocli 配合做内容审计 | |
多源搜索 MCP,seocli 可调用做关键词研究 |
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables SEO auditing and site analysis by crawling websites, identifying issues, and generating reports like sitemaps and markdown exports.594MIT
- Alicense-qualityDmaintenanceEnables AI agents to perform comprehensive SEO audits on web pages, including meta tags, headings, links, images, performance, and more, via a CLI or MCP server.1MIT

Seonix SEO MCPofficial
AlicenseAqualityBmaintenanceLets any AI agent audit any website for SEO, GEO/AEO, and speed problems, reporting issues and recommendations without modifying the site.4MIT- Alicense-qualityBmaintenanceEnables LLM agents to crawl and audit websites for technical SEO and GEO issues, providing actionable fixes via tools like crawl_site and explain_issue.7097MIT
Related MCP Connectors
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
SEO MCP server: crawl your site, find AI-visibility gaps, and ship the fix from your coding agent.
Technical SEO + GEO (AI-search) site audits: hosted crawls, prioritized fixes, report diffs.
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/lennney/seocli'
If you have feedback or need assistance with the MCP directory API, please join our Discord server