{
  "$schema": "https://modelcontextprotocol.io/schemas/server-card.json",
  "name": "seopro-ai",
  "title": "SEOPro AI MCP Server",
  "description": "Research, generate, publish, index and measure SEO content for the websites in a SEOPro AI account.",
  "version": "1.0.0",
  "websiteUrl": "https://seoproai.co/mcp",
  "documentationUrl": "https://seoproai.co/mcp",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://api.seoproai.co/api/mcp",
      "authentication": {
        "type": "oauth2",
        "protectedResourceMetadata": "https://api.seoproai.co/.well-known/oauth-protected-resource/api/mcp",
        "alternative": {
          "type": "api_key",
          "in": "header",
          "name": "Authorization",
          "format": "Bearer sk_..."
        }
      }
    }
  ],
  "tools": [
    {
      "name": "list_websites",
      "title": "List Account Websites",
      "description": "List the websites in the user's account with the numeric website_id needed by every other tool.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_website_stats",
      "title": "Get Website Content Stats",
      "description": "Total articles, keywords tracked, published posts and whether SEO autopilot is enabled.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_search_performance",
      "title": "Get Search Performance",
      "description": "Google Search Console summary: clicks, impressions, CTR, average position, top keywords, AI-assistant traffic and device/country breakdowns.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_top_search_keywords",
      "title": "Find Top Search Keywords",
      "description": "Top search keywords with clicks, impressions, CTR and average position — useful for finding positions 5-15 quick wins.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_search_trends",
      "title": "Get Search Trends",
      "description": "Monthly search-performance trends over the last N months to spot growth or decay.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_ai_search_traffic",
      "title": "Measure AI Search Traffic",
      "description": "Traffic arriving from ChatGPT, Perplexity, Claude, Gemini and other AI assistants, broken down per source.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "run_seo_audit",
      "title": "Run Technical SEO Audit",
      "description": "Technical audit of any URL: meta tags, headings, images, links, performance, content quality, security and social metadata, with a scored result.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": true
      }
    },
    {
      "name": "check_ai_citations",
      "title": "Check AI Citations",
      "description": "Check whether ChatGPT, Claude, Gemini and Perplexity mention or cite a website when answering questions in its niche.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": true
      }
    },
    {
      "name": "get_backlink_profile",
      "title": "Get Backlink Profile",
      "description": "Backlink totals, unique sources, available Link Credits and the most recent earned backlinks.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_keyword_plan",
      "title": "Get Keyword Content Plan",
      "description": "The scheduled keyword/content plan: planned keywords, their scheduled dates and statuses.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "generate_keyword_plan",
      "title": "Generate Keyword Content Plan",
      "description": "Generate an AI keyword/content plan, optionally guided by topic instructions and primary/secondary keywords.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": true
      }
    },
    {
      "name": "generate_article",
      "title": "Generate SEO Article",
      "description": "Start generating an SEO article for a target keyword. Returns immediately; generation takes 5-10 minutes in the background.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": true
      }
    },
    {
      "name": "get_article_status",
      "title": "Check Article Generation Status",
      "description": "Article generation and publication status per date, used to poll a generation started by generate_article.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "list_articles",
      "title": "List Website Articles",
      "description": "List drafts and published articles newest first, optionally filtered by status.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_article",
      "title": "Review Article Draft",
      "description": "Read a single article by blog_id, with the full HTML content on request.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "publish_article",
      "title": "Publish Article to CMS",
      "description": "Publish an article to the connected CMS (WordPress, Shopify, Webflow and others), optionally as an unpublished draft.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "request_indexing",
      "title": "Request Search Engine Indexing",
      "description": "Submit up to 50 URLs to Google and Bing for indexing. Requires the auto-indexing feature and explicit user confirmation.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "get_indexing_status",
      "title": "Get Indexing Status",
      "description": "Auto-indexing stats: how many URLs are indexed, pending or failed.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    }
  ]
}
