SEO MCP PRO
Enables Claude with 121 tools for website operations, Google Marketing, SEO, performance analysis, security auditing, monitoring, and accessibility testing.
README
SEO MCP PRO
A Model Context Protocol (MCP) server that provides Claude with 121 tools for website operations, Google Marketing, SEO, performance analysis, security auditing, monitoring, accessibility testing, and more.
Table of Contents
- Overview
- Free vs Pro
- Quick Start
- Tool Modules
- Configuration
- Claude Desktop Integration
- Web Dashboard (Pro)
- Dashboard REST API
- Architecture
- Commands
- OAuth Token Helper
- License
Overview
seo-mcp-pro is a comprehensive MCP server built with TypeScript in strict mode. It connects Claude to the full spectrum of website management tasks -- from Google Analytics reporting and Tag Manager configuration to SSL analysis, Core Web Vitals monitoring, and WCAG accessibility audits.
- 121 tools across 17 modules
- Zero external runtime frameworks -- uses
node:httpfor the optional dashboard - Built-in credential management with AES-256-GCM encryption (Pro)
- Per-service rate limiting and in-memory caching
Free vs Pro
SEO MCP PRO follows a hybrid open source model. The core MCP tools are free and open source. Advanced reporting, the web dashboard, and credential management require a Pro license.
| Feature | Free | Pro |
|---|---|---|
| Google Analytics 4 (GA4) tools | Yes | Yes |
| Google Tag Manager (GTM) tools | Yes | Yes |
| Google Search Console (GSC) tools | Yes | Yes |
| Google Ads tools | Yes | Yes |
| Google Business Profile tools | Yes | Yes |
| Indexing API tools | Yes | Yes |
| PageSpeed Insights / Lighthouse | Yes | Yes |
| Core Web Vitals / CrUX | Yes | Yes |
| Security auditing (SSL, headers, Safe Browsing) | Yes | Yes |
| SEO technical (robots, sitemaps, canonicals, etc.) | Yes | Yes |
| Monitoring (uptime, DNS, certificates) | Yes | Yes |
| Accessibility (WCAG, contrast, images) | Yes | Yes |
| Cloudflare integration | Yes | Yes |
| Utilities (tech detection, broken links, WHOIS) | Yes | Yes |
| Dashboard overview tool | Yes | Yes |
Site Health Report (report_site_health) |
-- | Yes |
SEO Audit Report (report_seo_audit) |
-- | Yes |
Executive Summary (report_executive_summary) |
-- | Yes |
| Web Dashboard (browser UI on port 3737) | -- | Yes |
| Encrypted Credential Store (AES-256-GCM) | -- | Yes |
| SSE Real-time Monitoring | -- | Yes |
Activating Pro
Set your license key as an environment variable:
SEO_MCP_PRO_KEY=SMCP-XXXX-XXXX-XXXX-XXXX
Or add it to your .env file. The server logs the active tier on startup.
Quick Start
Install from npm
# Run directly with npx (no install needed)
npx seo-mcp-pro
# Or install globally
npm install -g seo-mcp-pro
seo-mcp-pro
Install from source
git clone https://github.com/bypixels/SEO-MCP-PRO.git
cd SEO-MCP-PRO
pnpm install
pnpm build
pnpm start
Development
pnpm dev # Development mode with hot reload
Tool Modules
The server organizes its tools into 17 modules spanning 14 core categories:
| Module | Description | Example Tools |
|---|---|---|
| Google Tag Manager | Accounts, containers, workspaces, tags, triggers, variables, versions | gtm_list_containers, gtm_create_tag, gtm_publish_version |
| Google Analytics 4 | Accounts, properties, reports, realtime, funnels, custom dimensions/metrics, audiences, data streams, conversion events | ga4_run_report, ga4_run_realtime_report, ga4_run_funnel_report |
| Google Search Console | Sites, performance queries, top queries/pages, sitemaps, URL inspection, coverage | gsc_query_performance, gsc_top_queries, gsc_inspect_url |
| Google Ads | Customers, campaigns, ad groups, keywords, budgets, performance, search terms, keyword ideas | ads_list_campaigns, ads_create_campaign, ads_get_keyword_ideas |
| Google Business Profile | Accounts, locations, reviews, posts, insights, media | gbp_list_locations, gbp_reply_review, gbp_create_post |
| Indexing API | Submit URLs for indexing, check status, batch operations | indexing_publish, indexing_get_status, indexing_batch_publish |
| PageSpeed Insights | Page performance analysis via PSI API | psi_analyze |
| CrUX | Chrome UX Report data queries and historical trends | crux_query, crux_history |
| Core Web Vitals | LCP, INP, CLS aggregate reports | cwv_report |
| Lighthouse | Full Lighthouse audits via PSI API | lighthouse_audit |
| Security | SSL analysis, security headers, Safe Browsing, comprehensive audits | security_ssl_analyze, security_headers_check, security_audit |
| SEO Technical | Robots.txt, sitemaps, canonicals, redirects, structured data, headings, meta tags | seo_robots_analyze, seo_sitemap_analyze, seo_structured_data |
| Monitoring | Uptime, response time, DNS lookup/propagation, certificate checks | monitor_check_uptime, monitor_dns_lookup, monitor_certificate |
| Accessibility | WCAG audits, contrast checking, image alt text validation | a11y_audit, a11y_check_contrast, a11y_check_images |
| Utilities | Tech stack detection, broken link scanning, WHOIS, headers, screenshots | util_tech_detection, util_broken_links, util_whois_lookup |
| Cloudflare | Zones, DNS records, analytics, cache purge, firewall events | cf_get_zones, cf_create_dns_record, cf_purge_cache |
| Reports | Aggregated site health, SEO audit, executive summary | report_site_health, report_seo_audit, report_executive_summary |
Configuration
All configuration is handled through environment variables. Create a .env file in the project root:
SEO MCP PRO License
| Variable | Description |
|---|---|
SEO_MCP_PRO_KEY |
Pro license key (SMCP-XXXX-XXXX-XXXX-XXXX) |
Google OAuth 2.0
| Variable | Description |
|---|---|
GOOGLE_CLIENT_ID |
OAuth 2.0 client ID |
GOOGLE_CLIENT_SECRET |
OAuth 2.0 client secret |
GOOGLE_REDIRECT_URI |
OAuth redirect URI |
GOOGLE_REFRESH_TOKEN |
OAuth refresh token |
Google Service Account
| Variable | Description |
|---|---|
GOOGLE_SERVICE_ACCOUNT_KEY_FILE |
Path to service account JSON key file |
GOOGLE_SERVICE_ACCOUNT_IMPERSONATE |
Email address for domain-wide delegation |
API Keys
| Variable | Description |
|---|---|
GOOGLE_PAGESPEED_API_KEY |
PageSpeed Insights API key |
GOOGLE_SAFE_BROWSING_API_KEY |
Safe Browsing API key |
Google Ads
| Variable | Description |
|---|---|
GOOGLE_ADS_DEVELOPER_TOKEN |
Google Ads API developer token |
GOOGLE_ADS_LOGIN_CUSTOMER_ID |
Manager account customer ID |
Cloudflare
| Variable | Description |
|---|---|
CLOUDFLARE_API_TOKEN |
Cloudflare API token (preferred) |
CLOUDFLARE_EMAIL |
Cloudflare account email (legacy auth) |
CLOUDFLARE_API_KEY |
Cloudflare global API key (legacy auth) |
Dashboard (Pro)
| Variable | Description | Default |
|---|---|---|
DASHBOARD_ENABLED |
Enable the web dashboard | false |
DASHBOARD_PORT |
Dashboard HTTP port | 3737 |
DASHBOARD_API_KEY |
API key for dashboard access | -- |
DASHBOARD_AUTH_REQUIRED |
Require authentication for dashboard | false |
Claude Desktop Integration
Add the server to your claude_desktop_config.json:
{
"mcpServers": {
"seo-mcp-pro": {
"command": "npx",
"args": ["-y", "seo-mcp-pro"],
"env": {
"GOOGLE_PAGESPEED_API_KEY": "your-api-key",
"SEO_MCP_PRO_KEY": "SMCP-XXXX-XXXX-XXXX-XXXX"
}
}
}
}
Or if installed from source:
{
"mcpServers": {
"seo-mcp-pro": {
"command": "node",
"args": ["/path/to/SEO-MCP-PRO/dist/index.js"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id",
"GOOGLE_CLIENT_SECRET": "your-client-secret",
"GOOGLE_REFRESH_TOKEN": "your-refresh-token",
"GOOGLE_PAGESPEED_API_KEY": "your-api-key"
}
}
}
}
Once configured, Claude will have access to all available tools. Ask Claude to analyze your website's performance, check SEO issues, audit security headers, or manage your Google Marketing stack -- all through natural language.
Web Dashboard (Pro)
The server includes an optional self-contained web dashboard for browser-based access to all tools and reports. Requires a Pro license.
SEO_MCP_PRO_KEY=SMCP-... pnpm dashboard
Or set DASHBOARD_ENABLED=true and SEO_MCP_PRO_KEY in your .env file and run pnpm start.
The dashboard is available at http://localhost:3737 and provides:
- Tool browser -- Browse and execute all available tools
- Site reports -- Site health, SEO audit, and executive summary reports
- Real-time monitoring -- Server-Sent Events for live status updates
- Credential management -- Save and manage API keys through the UI (AES-256-GCM encrypted at rest)
- Status overview -- Authentication state, cache statistics, rate limit status
Dashboard REST API
When the dashboard is enabled (Pro), the following HTTP endpoints are available:
Health and Status
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/health |
Server health check |
GET |
/api/status/auth |
Authentication status |
GET |
/api/status/cache |
Cache statistics |
GET |
/api/status/rate-limits |
Rate limit status per service |
Tools and Reports
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/tools |
List all available tools |
POST |
/api/tool/:name |
Execute a tool (JSON body = tool input) |
GET |
/api/dashboard?url=X |
Dashboard overview for a URL |
GET |
/api/report/site-health?url=X |
Site health report |
GET |
/api/report/seo-audit?url=X |
SEO audit report |
Settings and Credentials
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/settings/schema |
Configuration schema |
GET |
/api/settings/credentials |
Retrieve saved credentials |
POST |
/api/settings/credentials |
Save credentials |
POST |
/api/settings/credentials/validate |
Validate credentials |
Monitoring
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/sse?url=X |
Server-Sent Events stream for real-time monitoring |
Architecture
src/
├── index.ts # Entry point
├── server.ts # MCP server setup and tool registration
├── licensing/ # License management (free vs pro)
│ ├── index.ts # Key validation, isPro(), getLicenseTier()
│ └── tiers.ts # Pro tool and feature definitions
├── auth/ # Authentication layer
│ ├── oauth.ts # Google OAuth 2.0 flow
│ ├── service-account.ts # Service account authentication
│ └── token-manager.ts # Automatic token refresh
├── tools/ # 14 tool modules
│ ├── google/ # GTM, GA4, GSC, Ads, Business Profile, PageSpeed, Indexing
│ ├── performance/ # Core Web Vitals, CrUX, Lighthouse
│ ├── security/ # SSL, headers, Safe Browsing
│ ├── seo-technical/ # Structured data, robots, sitemaps, canonicals
│ ├── accessibility/ # WCAG audits, contrast checking
│ ├── monitoring/ # Uptime, DNS, certificates
│ ├── integrations/ # Cloudflare
│ ├── utilities/ # Screenshots, tech detection, broken links
│ └── reports/ # Site health, SEO audit, executive summary
├── dashboard/ # Optional HTTP dashboard (Pro)
│ ├── http-server.ts # node:http server (zero frameworks)
│ ├── routes/ # API, SSE, and settings route handlers
│ ├── services/ # Credential store (AES-256-GCM), data orchestration
│ └── ui/ # Self-contained HTML dashboard
├── utils/ # Shared utilities
│ ├── rate-limiter.ts # Per-service rate limiting (bottleneck)
│ ├── cache.ts # In-memory + file cache
│ └── logger.ts # Structured JSON logging (winston)
├── config/ # Google API scopes, default values
└── types/ # TypeScript type definitions
Design Principles
- Zod validation on all tool inputs and outputs
- Per-service rate limiting via bottleneck (e.g., GTM: 50 req/min, GA4: 100 req/min, GSC: 1200 req/day)
- In-memory caching with 5-minute TTL (1000-item limit) and file cache fallback (1-hour TTL)
- Structured logging with Winston in JSON format
- Automatic token refresh for all Google API interactions
- stdio transport for Claude Desktop; optional HTTP transport for the dashboard
Commands
| Command | Description |
|---|---|
pnpm install |
Install dependencies |
pnpm build |
Build with tsup (ESM) |
pnpm start |
Run the MCP server (stdio transport) |
pnpm dashboard |
Run with web dashboard enabled (Pro) |
pnpm dev |
Development mode with hot reload |
pnpm test |
Run tests with vitest |
pnpm lint |
Lint with ESLint |
pnpm typecheck |
TypeScript type checking |
OAuth Token Helper
To obtain a Google OAuth refresh token for local development:
node get-token.cjs
This interactive script reads GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET from your .env file, opens a browser for the OAuth consent flow, and writes the resulting refresh token back to .env.
License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。