Skip to content

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.

Deletes · 3Changes · 3

18 tools: 3 can delete or cancel things, 3 change things and 12 only read.

Scanned Oct 21, 2026

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/mcp

Tools

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_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_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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

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