SEOPro AI
by alpha-ai-labs · remote · no sign-in to list tools · v1.2.0 · published by GitHub user alpha-ai-labs
Turn Search Console data into SEO actions, content, publishing, indexing, and AI insights.
18 tools: 3 can delete or cancel things, 3 change things and 12 only read.
Scanned Oct 21, 2026
- Deletes or cancels3Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads12Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http seo-agent https://api.seoproai.co/api/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
18 tools
Deletes or cancels 3Claude Code: deny
generate_keyword_planGenerate an AI keyword/content plan for the website.No findings
Why it is in this group
- The name "generate_keyword_plan" says "generate": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Generate an AI keyword/content plan for the website. Optionally guide it with topic instructions and comma-separated primary/secondary keywords. Can take a minute or two. Set replace_existing=true only after the user explicitly approves discarding the current plan's pending topics; that path also requires confirm_replace_existing=true.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
publish_articlePublish an article to the website's connected platform (WordPress, Shopify, Webflow, etc.).No findings
Why it is in this group
- The name "publish_article" says "publish": a word for a change that another call does not undo.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Publish an article to the website's connected platform (WordPress, Shopify, Webflow, etc.). Set publish_as_draft=true to push it as an unpublished draft in the CMS instead of going live. Before calling, show the user the article and destination and obtain explicit approval. Every call requires confirm_publish=true.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
request_indexingSubmit up to 50 URLs for search-engine indexing (Google/Bing) via SEOPro AI auto-indexing.No findings
Why it is in this group
- The name "request_indexing" says "request": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Submit up to 50 URLs for search-engine indexing (Google/Bing) via SEOPro AI auto-indexing. Requires the auto-indexing feature on the account. Show the exact URL list and obtain explicit user approval first; every call requires confirm_indexing=true.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 3Claude Code: ask
check_ai_citationsCheck whether AI assistants (ChatGPT, Claude, Gemini, Perplexity) mention or cite a website when answering questions in its niche.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Check whether AI assistants (ChatGPT, Claude, Gemini, Perplexity) mention or cite a website when answering questions in its niche. Takes 1-3 minutes; results are cached for 7 days.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
generate_articleStart generating an SEO article for a target keyword.No findings
Why it is in this group
- The name "generate_article" says "generate": a word for a change.
Description, as the server wrote it Start generating an SEO article for a target keyword. Returns immediately; generation takes 5-10 minutes in the background — poll get_article_status for the scheduled_date until it shows a blog. scheduled_date is YYYY-MM-DD and defaults to today (UTC). One article is generated per website per date; if that date already has an article the existing blog_id is returned. Counts toward the plan's monthly limit.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
run_seo_auditRun a technical SEO audit on any URL: meta tags, headings, images, links, performance, content quality, security and social metadata, with a scored result.No findings
Why it is in this group
- The name "run_seo_audit" says "run": a word for a change.
Description, as the server wrote it Run a technical SEO audit on any URL: meta tags, headings, images, links, performance, content quality, security and social metadata, with a scored result. Rate-limited for free accounts.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Only reads 12Claude Code: allow
get_ai_search_trafficShow traffic the website receives from AI assistants and AI search (ChatGPT, Perplexity, Claude, Gemini, etc.): sessions, engaged pages and per-source breakdowns.No findings
Why it is in this group
- The name "get_ai_search_traffic" says "get": a word for reading.
Description, as the server wrote it Show traffic the website receives from AI assistants and AI search (ChatGPT, Perplexity, Claude, Gemini, etc.): sessions, engaged pages and per-source breakdowns. Dates are YYYY-MM-DD; defaults to the last 30 days.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_articleRead a single article by blog_id.No findings
Why it is in this group
- The name "get_article" says "get": a word for reading.
Description, as the server wrote it Read a single article by blog_id. By default returns metadata and a short excerpt; set include_content=true for the full HTML content.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_article_statusCheck article generation/publication status per date.No findings
Why it is in this group
- The name "get_article_status" says "get": a word for reading.
Description, as the server wrote it Check article generation/publication status per date. Dates are YYYY-MM-DD and default to the current month. A date with has_blog=true and a blog_id means the article is ready to read via get_article.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_backlink_profileGet the website's backlink profile from the SEOPro AI backlink network: totals, unique sources, available credits and the most recent earned backlinks.No findings
Why it is in this group
- The name "get_backlink_profile" says "get": a word for reading.
Description, as the server wrote it Get the website's backlink profile from the SEOPro AI backlink network: totals, unique sources, available credits and the most recent earned backlinks.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_indexing_statusGet auto-indexing stats for the website: how many URLs are indexed, pending or failed.No findings
Why it is in this group
- The name "get_indexing_status" says "get": a word for reading.
Description, as the server wrote it Get auto-indexing stats for the website: how many URLs are indexed, pending or failed.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_keyword_planGet the website's scheduled keyword/content plan: which keywords are planned, their scheduled dates and statuses.No findings
Why it is in this group
- The name "get_keyword_plan" says "get": a word for reading.
Description, as the server wrote it Get the website's scheduled keyword/content plan: which keywords are planned, their scheduled dates and statuses.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_search_performanceGet the Google Search Console performance summary for a website: clicks, impressions, CTR, average position, top keywords, AI-assistant traffic sources and device/country breakdown…No findings
Why it is in this group
- The name "get_search_performance" says "get": a word for reading.
Description, as the server wrote it Get the Google Search Console performance summary for a website: clicks, impressions, CTR, average position, top keywords, AI-assistant traffic sources and device/country breakdowns. Dates are YYYY-MM-DD; defaults to the last 30 days.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_search_trendsGet monthly search-performance trends (clicks, impressions, CTR, average position) for the last N months.No findings
Why it is in this group
- The name "get_search_trends" says "get": a word for reading.
Description, as the server wrote it Get monthly search-performance trends (clicks, impressions, CTR, average position) for the last N months. Use to spot growth or decay.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_top_search_keywordsList the website's top search keywords with clicks, impressions, CTR and average position.No findings
Why it is in this group
- The name "get_top_search_keywords" says "get": a word for reading.
Description, as the server wrote it List the website's top search keywords with clicks, impressions, CTR and average position. Great for finding quick wins (positions 5-15 with high impressions). Dates are YYYY-MM-DD; defaults to the last 30 days.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_website_statsGet content stats for a website: total articles, keywords tracked, published posts and whether SEO autopilot is enabled.No findings
Why it is in this group
- The name "get_website_stats" says "get": a word for reading.
Description, as the server wrote it Get content stats for a website: total articles, keywords tracked, published posts and whether SEO autopilot is enabled.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_articlesList the website's articles (drafts and published), newest first.No findings
Why it is in this group
- The name "list_articles" says "list": a word for reading.
Description, as the server wrote it List the website's articles (drafts and published), newest first. Optionally filter by status (e.g. 'draft', 'published').
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_websitesList the websites in the user's SEOPro AI account.No findings
Why it is in this group
- The name "list_websites" says "list": a word for reading.
Description, as the server wrote it List the websites in the user's SEOPro AI account. Returns each website's numeric website_id (needed by most other tools), URL, platform and autopilot status. Call this first.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.2.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http seo-agent https://api.seoproai.co/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__seo-agent__list_websites",
"mcp__seo-agent__get_website_stats",
"mcp__seo-agent__get_search_performance",
"mcp__seo-agent__get_top_search_keywords",
"mcp__seo-agent__get_search_trends",
"mcp__seo-agent__get_ai_search_traffic",
"mcp__seo-agent__get_backlink_profile",
"mcp__seo-agent__get_keyword_plan",
"mcp__seo-agent__get_article_status",
"mcp__seo-agent__list_articles",
"mcp__seo-agent__get_article",
"mcp__seo-agent__get_indexing_status"
],
"ask": [
"mcp__seo-agent__run_seo_audit",
"mcp__seo-agent__check_ai_citations",
"mcp__seo-agent__generate_article"
],
"deny": [
"mcp__seo-agent__generate_keyword_plan",
"mcp__seo-agent__publish_article",
"mcp__seo-agent__request_indexing"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as seo-agent. Review it before you use it.
