{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "co.seoproai/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": "Referral sessions from AI assistants (ChatGPT, Perplexity, Gemini, Claude, Copilot, Grok and others) as recorded by the site's Google Analytics 4 property; requires GA4 to be connected in SEOPro AI.",
      "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
      }
    }
  ],
  "resources": [
    {
      "uri": "seopro://guide/getting-started",
      "title": "Getting started",
      "description": "How to authenticate, resolve a website_id, and which operations cost the user money or write to external systems.",
      "mimeType": "text/markdown"
    },
    {
      "uri": "seopro://guide/tools",
      "title": "Tool selection guide",
      "description": "Which tool to reach for, grouped into read-only, slow analysis and write operations, with the scopes each write needs.",
      "mimeType": "text/markdown"
    },
    {
      "uri": "seopro://guide/workflows",
      "title": "Task recipes",
      "description": "Tool sequences for publishing an article end to end, filling a content calendar, diagnosing a traffic drop and getting pages indexed.",
      "mimeType": "text/markdown"
    },
    {
      "uri": "seopro://guide/plans-and-limits",
      "title": "Plans, allowances and rate limits",
      "description": "Plan prices and monthly allowances, how Link Credits are priced, and the API rate-limit headers.",
      "mimeType": "text/markdown"
    },
    {
      "uri": "mcp://server-card.json",
      "title": "MCP server card",
      "description": "The SEP-1649 server card: protocol version, transport, capabilities, authentication and the full tool and resource catalog, as JSON.",
      "mimeType": "application/json"
    }
  ],
  "discovery": {
    "wellKnown": "https://api.seoproai.co/.well-known/mcp",
    "serverCard": "https://api.seoproai.co/.well-known/mcp/server-card.json",
    "registryManifest": "https://api.seoproai.co/server.json"
  },
  "publicDiscovery": {
    "methods": [
      "initialize",
      "ping",
      "tools/list",
      "resources/list",
      "resources/templates/list",
      "prompts/list"
    ],
    "resourcesReadable": [
      "seopro://guide/getting-started",
      "seopro://guide/tools",
      "seopro://guide/workflows",
      "seopro://guide/plans-and-limits",
      "mcp://server-card.json"
    ],
    "notes": "Discovery needs no credential. Calling a tool does: send an API key or complete the OAuth 2.1 flow advertised in the protected-resource metadata."
  }
}
