{
  "openapi": "3.1.0",
  "info": {
    "title": "Reaudit API for Muse Connectors",
    "version": "1.0.0",
    "description": "REST API exposing Reaudit MCP capabilities for Meta Muse and other agent connectors.\n\nMuse does not support MCP — use this OpenAPI spec with OAuth 2.0 PKCE or Bearer API keys (`rau_*`).\n\nDocuments 245 MCP tools (208 unique HTTP path/method pairs; see x-mcp-tool-catalog). Target: 235 user tools.\n\nAuth docs: https://reaudit.io/auth.md\n\nSetup guide: https://docs.reaudit.io/muse-connector",
    "contact": {
      "name": "Reaudit",
      "url": "https://reaudit.io"
    },
    "termsOfService": "https://reaudit.io/terms"
  },
  "servers": [
    {
      "url": "https://reaudit.io",
      "description": "Reaudit production"
    }
  ],
  "tags": [
    {
      "name": "ActionGrids",
      "description": "ActionGrids operations for Reaudit AI visibility platform"
    },
    {
      "name": "Alerts",
      "description": "Alerts operations for Reaudit AI visibility platform"
    },
    {
      "name": "Analytics",
      "description": "Analytics operations for Reaudit AI visibility platform"
    },
    {
      "name": "Attribution",
      "description": "Attribution operations for Reaudit AI visibility platform"
    },
    {
      "name": "Audits",
      "description": "Audits operations for Reaudit AI visibility platform"
    },
    {
      "name": "Bing",
      "description": "Bing operations for Reaudit AI visibility platform"
    },
    {
      "name": "CRO",
      "description": "CRO operations for Reaudit AI visibility platform"
    },
    {
      "name": "ClientPortal",
      "description": "ClientPortal operations for Reaudit AI visibility platform"
    },
    {
      "name": "CompetitorAds",
      "description": "CompetitorAds operations for Reaudit AI visibility platform"
    },
    {
      "name": "Content",
      "description": "Content operations for Reaudit AI visibility platform"
    },
    {
      "name": "ContextManager",
      "description": "ContextManager operations for Reaudit AI visibility platform"
    },
    {
      "name": "Entity",
      "description": "Entity operations for Reaudit AI visibility platform"
    },
    {
      "name": "General",
      "description": "General operations for Reaudit AI visibility platform"
    },
    {
      "name": "GitHubFixer",
      "description": "GitHubFixer operations for Reaudit AI visibility platform"
    },
    {
      "name": "Indexing",
      "description": "Indexing operations for Reaudit AI visibility platform"
    },
    {
      "name": "PaidIntelligence",
      "description": "PaidIntelligence operations for Reaudit AI visibility platform"
    },
    {
      "name": "Projects",
      "description": "Projects operations for Reaudit AI visibility platform"
    },
    {
      "name": "Prompts",
      "description": "Prompts operations for Reaudit AI visibility platform"
    },
    {
      "name": "Publishing",
      "description": "Publishing operations for Reaudit AI visibility platform"
    },
    {
      "name": "Reddit",
      "description": "Reddit operations for Reaudit AI visibility platform"
    },
    {
      "name": "Reports",
      "description": "Reports operations for Reaudit AI visibility platform"
    },
    {
      "name": "Skills",
      "description": "Skills operations for Reaudit AI visibility platform"
    },
    {
      "name": "Social",
      "description": "Social operations for Reaudit AI visibility platform"
    },
    {
      "name": "Sources",
      "description": "Sources operations for Reaudit AI visibility platform"
    },
    {
      "name": "Strategy",
      "description": "Strategy operations for Reaudit AI visibility platform"
    },
    {
      "name": "Taxonomy",
      "description": "Taxonomy operations for Reaudit AI visibility platform"
    },
    {
      "name": "Usage",
      "description": "Usage operations for Reaudit AI visibility platform"
    },
    {
      "name": "Visibility",
      "description": "Visibility operations for Reaudit AI visibility platform"
    }
  ],
  "paths": {
    "/api/mcp/v1/account": {
      "get": {
        "operationId": "get_usage_summary",
        "summary": "Get Usage Summary",
        "description": "Get your current usage summary including prompts, content, images, and audits used vs limits.",
        "tags": [
          "Usage"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/action-grids": {
      "get": {
        "operationId": "list_action_grids",
        "summary": "List Action Grids",
        "description": "List optimization task boards (action grids) for a project.",
        "tags": [
          "ActionGrids"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "create_action_grid",
        "summary": "Create Action Grid",
        "description": "Create an optimization task board with categorized items. Use for SEO tasks, content optimization, or any workflow.",
        "tags": [
          "ActionGrids"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/action-grids/{gridId}": {
      "get": {
        "operationId": "get_action_grid",
        "summary": "Get Action Grid",
        "description": "Get an action grid with all items, grouped by category and showing progress.",
        "tags": [
          "ActionGrids"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "gridId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "delete": {
        "operationId": "delete_action_grid",
        "summary": "Delete Action Grid",
        "description": "Delete an action grid.",
        "tags": [
          "ActionGrids"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "gridId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/action-grids/{gridId}/items": {
      "post": {
        "operationId": "add_grid_items",
        "summary": "Add Grid Items",
        "description": "Add new items to an existing action grid.",
        "tags": [
          "ActionGrids"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "gridId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "put": {
        "operationId": "update_grid_item",
        "summary": "Update Grid Item",
        "description": "Update status, priority, assignee, or notes of an action grid item.",
        "tags": [
          "ActionGrids"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "gridId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/agent-analytics": {
      "get": {
        "operationId": "get_agent_analytics",
        "summary": "Get Agent Analytics",
        "description": "SAMPLE-LEVEL AI bot crawl detail from the Reaudit JS tracker (React / WordPress / Webflow / Wix snippet). Only counts bots that hit a tracked page AND execute the script — NOT a complete count. DO NOT use for total bot-crawl volume; use get_cloudflare_analytics for authoritative totals. Use this only when Cloudflare is not connected, OR for page-by-page detail beyond what Cloudflare returns.",
        "tags": [
          "Analytics"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/analytics-hub": {
      "get": {
        "operationId": "get_analytics_hub",
        "summary": "Get Analytics Hub",
        "description": "Get unified analytics data across all connected sources (GA4, GSC, Bing, Clarity, Reaudit tracking) in a single call. Sections: overview (KPIs, charts), behavior (scroll depth, clicks, exits), pages (per-page metrics), compare (period-over-period).",
        "tags": [
          "Analytics"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/analytics-hub/alerts": {
      "get": {
        "operationId": "list_analytics_alerts",
        "summary": "List Analytics Alerts",
        "description": "List all analytics alerts for a project. Alerts monitor metrics like sessions, bot crawls, AI referrals and notify via email when thresholds are crossed.",
        "tags": [
          "Analytics"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "create_analytics_alert",
        "summary": "Create Analytics Alert",
        "description": "Create an analytics alert that monitors a metric and sends email notifications when a threshold condition is met. Checked every 6 hours.",
        "tags": [
          "Analytics"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "delete_analytics_alert",
        "summary": "Delete Analytics Alert",
        "description": "Delete an analytics alert by its ID.",
        "tags": [
          "Analytics"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true
      }
    },
    "/api/mcp/v1/analytics/query": {
      "post": {
        "operationId": "query_analytics",
        "summary": "Query Analytics",
        "description": "Execute a flexible analytics query with custom metrics (mentions, citations, sentiment, visibility_rate), dimensions (platform, date, week, month), filters, and time grains. Use this for building custom reports and dashboards.",
        "tags": [
          "Analytics"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/analytics/citations": {
      "get": {
        "operationId": "get_citation_analytics",
        "summary": "Get Citation Analytics",
        "description": "Get citation analytics showing trends, top cited domains, and platform breakdown for your brand mentions.",
        "tags": [
          "Analytics"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-mcp-sibling-operationIds": [
          "get_citation_analytics",
          "get_visibility_lift",
          "get_paid_intelligence_roi"
        ]
      }
    },
    "/api/mcp/v1/analytics/wordpress": {
      "get": {
        "operationId": "get_wordpress_analytics",
        "summary": "Get Wordpress Analytics",
        "description": "Get WordPress AI bot tracking analytics showing which AI crawlers are visiting your site and which pages they access.",
        "tags": [
          "Analytics"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/attribution": {
      "get": {
        "operationId": "get_revenue_attribution",
        "summary": "Get Revenue Attribution",
        "description": "Get unified revenue attribution data merging GA4, Cloudflare, Reaudit tracking, and Stripe. ",
        "tags": [
          "Attribution"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/audits": {
      "post": {
        "operationId": "run_audit",
        "summary": "Run Audit",
        "description": "Run a new SEO audit for a project. Crawls the website, analyzes SEO, content quality, \n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Audits"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "x-poll-operationId": "list_audits",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "get": {
        "operationId": "list_audits",
        "summary": "List Audits",
        "description": "List SEO audits. Shows audit status, scores, and basic info for each audited page.",
        "tags": [
          "Audits"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/audits/{auditId}": {
      "get": {
        "operationId": "get_audit_details",
        "summary": "Get Audit Details",
        "description": "Get detailed results of a specific SEO audit including scores, recommendations, technical issues, and page speed metrics.",
        "tags": [
          "Audits"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/audits/{auditId}/recommendations": {
      "get": {
        "operationId": "get_audit_recommendations",
        "summary": "Get Audit Recommendations",
        "description": "Get prioritized SEO recommendations from an audit, grouped by impact level (critical, high, medium, low).",
        "tags": [
          "Audits"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/audits/crawlability": {
      "post": {
        "operationId": "check_crawlability",
        "summary": "Check Crawlability (AI bots)",
        "description": "Lightweight, free check of whether AI crawlers (GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, ChatGPT-User, Google-Extended, CCBot) can actually reach a URL. For each bot it reports whether robots.txt allows it AND whether the live server serves the page when impersonating that bot's User-Agent — catching silent WAF/CDN blocks that robots.txt analysis alone misses. Pass `url` for an ad-hoc page or `projectId` to use the project default domain. Optionally restrict to one bot with `crawlerIdentity`. Unlike run_audit, this consumes no credits.",
        "tags": [
          "Audits"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/bing-webmaster": {
      "get": {
        "operationId": "get_bing_search_performance",
        "summary": "Get Bing Search Performance",
        "description": "Get Bing search performance data including clicks, impressions, CTR, average position, top queries, and top pages. ",
        "tags": [
          "Bing"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-mcp-sibling-operationIds": [
          "get_bing_search_performance",
          "get_bing_crawl_health",
          "get_bing_backlinks"
        ]
      },
      "post": {
        "operationId": "submit_urls_to_bing",
        "summary": "Submit Urls To Bing",
        "description": "Submit URLs to Bing for crawling and indexing. Maximum 100 URLs per submission. URLs must start with http/https.",
        "tags": [
          "Bing"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/projects/{projectId}/branded-domains": {
      "get": {
        "operationId": "list_branded_domains",
        "summary": "List Branded Domains",
        "description": "List additional domains registered as brand-owned: subsidiary websites (product brands, regional sites) and controlled profiles on external platforms (Reddit, YouTube). These count alongside settings.website in citation analytics. Use after list_domains when cited sibling sites show as third-party.",
        "tags": [
          "Projects"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "add_branded_domain",
        "summary": "Add Branded Domain",
        "description": "Register an additional domain as brand-owned so citations count as yours in visibility reports. Use for other company websites (e.g. languagecert.org for PeopleCert) or platform profiles (reddit.com with a /r/subreddit/* pattern). Does not change what AI cites — only how Reaudit classifies citations.",
        "tags": [
          "Projects"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "remove_branded_domain",
        "summary": "Remove Branded Domain",
        "description": "Remove a previously registered brand-owned domain.",
        "tags": [
          "Projects"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/calendar": {
      "get": {
        "operationId": "get_content_calendar",
        "summary": "Get Content Calendar",
        "description": "Get your content calendar showing scheduled, planned, and published content across social media, WordPress, blog, and GTM strategy items. Events are ordered soonest-first so the first scheduled social slot is the next post. Filter by project, date range, or limit results.",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/dashboard/chatgpt-ads-summary": {
      "get": {
        "operationId": "get_chatgpt_ads_summary",
        "summary": "ChatGPT Ads — 7-Day Summary",
        "description": "Get a 7-day performance rollup of a project's ChatGPT Ads (OpenAI Ads) campaigns. Returns spend, impressions, clicks, CTR, CPC, and conversions, plus pixel / Conversions API connection status. Returns a helpful \"not connected\" message if the project has no active OpenAI Ads connection.",
        "tags": [
          "CompetitorAds"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/chatgpt-performance": {
      "get": {
        "operationId": "get_chatgpt_ads_performance",
        "summary": "ChatGPT Ads — Daily Performance",
        "description": "Get a daily ChatGPT Ads (OpenAI Ads) performance series for a project, plus aggregate totals. Use this to answer questions about CPC, CTR, or spend trends over time, or to drive cross-channel \"paid + organic\" comparisons. Lookback window is configurable (1-90 days, default 30).",
        "tags": [
          "CompetitorAds"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/chatgpt-insights": {
      "get": {
        "operationId": "get_chatgpt_campaign_insights",
        "summary": "ChatGPT Ads — Campaign Insights",
        "description": "Live ChatGPT Ads (OpenAI Ads) performance for a SPECIFIC campaign over a date range. Returns impressions, clicks, spend, CTR, CPC, CPM, and conversions either daily (one row per day) or aggregated for the whole window. Use this when the user asks about a specific campaign by ID — for project-level rollups use get_chatgpt_ads_performance instead.",
        "tags": [
          "CompetitorAds"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scope",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-mcp-sibling-operationIds": [
          "get_chatgpt_campaign_insights",
          "get_chatgpt_ad_group_insights",
          "get_chatgpt_ad_insights"
        ]
      }
    },
    "/api/chatgpt-ads/competitor-summary": {
      "get": {
        "operationId": "get_chatgpt_competitor_ad_summary",
        "summary": "ChatGPT Competitor Ads — Summary",
        "description": "Adthena-style competitor ad intelligence for ChatGPT Search (NOT OpenAI Ads). Returns ad presence rate, total carousel cards observed, unique advertisers, and own/competitor/other splits across the project's tracked prompts. Sponsored cards are captured from ChatGPT responses; data accumulates as tracked prompts run.",
        "tags": [
          "CompetitorAds"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/chatgpt-ads/top-advertisers": {
      "get": {
        "operationId": "get_chatgpt_top_advertisers",
        "summary": "ChatGPT Competitor Ads — Top Advertisers",
        "description": "Top advertisers seen in ChatGPT sponsored carousel cards across the project's tracked prompts. Each advertiser is tagged as your brand, a tracked competitor, or other. Use this to answer \"who is buying ChatGPT ads on my prompts?\" and to spot new entrants.",
        "tags": [
          "CompetitorAds"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/chatgpt-ads/competitor-changes": {
      "get": {
        "operationId": "get_chatgpt_competitor_ad_changes",
        "summary": "ChatGPT Competitor Ads — What Changed This Week",
        "description": "Week-over-week diff of ChatGPT competitor ads on the project's tracked prompts. Surfaces new advertisers, lost advertisers, and presence-rate shifts (last 7 days vs prior 7 days). Use this to drive a \"competitive movement\" feed without scrubbing through raw data.",
        "tags": [
          "CompetitorAds"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/chatgpt-ads/creatives": {
      "get": {
        "operationId": "get_chatgpt_ad_creatives",
        "summary": "ChatGPT Sponsored Ads — Raw Creatives",
        "description": "Project ID with tracked prompts",
        "tags": [
          "CompetitorAds"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "x-mcp-sibling-operationIds": [
          "get_chatgpt_ad_creatives",
          "get_google_ai_ad_creatives"
        ]
      }
    },
    "/api/mcp/v1/chatgpt-ads/competitor-summary": {
      "get": {
        "operationId": "get_google_ai_competitor_ad_summary",
        "summary": "Google AI Mode Competitor Ads — Summary",
        "description": "Adthena-style competitor ad intelligence for Google AI Mode Search (NOT Google Ads API). Returns ad presence rate, sponsored placements observed, unique advertisers, and own/competitor/other splits across the project's tracked prompts.",
        "tags": [
          "CompetitorAds"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/chatgpt-ads/top-advertisers": {
      "get": {
        "operationId": "get_google_ai_top_advertisers",
        "summary": "Google AI Mode Competitor Ads — Top Advertisers",
        "description": "Top advertisers seen in Google AI Mode sponsored placements across the project's tracked prompts. Each advertiser is tagged as your brand, a tracked competitor, or other.",
        "tags": [
          "CompetitorAds"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/chatgpt-ads/competitor-changes": {
      "get": {
        "operationId": "get_google_ai_competitor_ad_changes",
        "summary": "Google AI Mode Competitor Ads — What Changed This Week",
        "description": "Week-over-week diff of Google AI Mode competitor ads on the project's tracked prompts. Surfaces new advertisers, lost advertisers, and presence-rate shifts.",
        "tags": [
          "CompetitorAds"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/client-portal/engagement-plan": {
      "post": {
        "operationId": "plan_client_engagement",
        "summary": "Plan Client Engagement",
        "description": "Parse an agency engagement brief (e.g. Krotos 90-day AI visibility pilot) into a structured plan: objectives, portal modules, action items, GTM strategy shell, and a manual checklist. Saves as draft unless dryRun is true.",
        "tags": [
          "ClientPortal"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "patch": {
        "operationId": "apply_client_engagement_plan",
        "summary": "Apply Client Engagement Plan",
        "description": "Apply the saved engagement plan draft: writes portal config (objectives, dates, modules, action items), creates a GTM strategy shell, and merges competitors on the project. Requires confirm: true.",
        "tags": [
          "ClientPortal"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "get": {
        "operationId": "get_client_engagement_plan",
        "summary": "Get Client Engagement Plan",
        "description": "Read the current engagement plan draft or applied record for a project.",
        "tags": [
          "ClientPortal"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/projects/{projectId}/client-portal": {
      "get": {
        "operationId": "get_client_portal_config",
        "summary": "Get Client Portal",
        "description": "Get the client portal configuration for a project: objectives, visible sections, requested tools, connection status, shared materials, and clients.",
        "tags": [
          "ClientPortal"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/client-portal": {
      "patch": {
        "operationId": "update_client_portal_config",
        "summary": "Update Client Portal",
        "description": "Update a project client portal: enable/disable, toggle sections (overview/deliverables/documents/milestones/actions/connections/meetings/activity), set requested tools, objectives/KPIs, and branding.",
        "tags": [
          "ClientPortal"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/client-portal/shared-items": {
      "post": {
        "operationId": "share_portal_item",
        "summary": "Share Portal Item",
        "description": "Share a material (report, content, document, file, or link) to a project client portal.",
        "tags": [
          "ClientPortal"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "unshare_portal_item",
        "summary": "Unshare Portal Item",
        "description": "Remove a shared material from a project client portal.",
        "tags": [
          "ClientPortal"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true
      }
    },
    "/api/mcp/v1/client-portal/milestones": {
      "get": {
        "operationId": "list_client_portal_milestones",
        "summary": "List Client Portal Milestones",
        "description": "List every strategy-board card for a project with its client-visibility flag, so you can choose what the client sees as milestones.",
        "tags": [
          "ClientPortal"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      },
      "patch": {
        "operationId": "set_client_portal_milestone_visibility",
        "summary": "Set Milestone Visibility",
        "description": "Show or hide a specific strategy-board card in the client portal milestones.",
        "tags": [
          "Visibility"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/content-radar": {
      "get": {
        "operationId": "list_content_radar_items",
        "summary": "List Content Radar Items",
        "description": "List competitor articles surfaced by the Content Radar (new pages from tracked competitors whose slug matches a tracked keyword). Use this to review what competitors just published.",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "x-mcp-sibling-operationIds": [
          "list_content_radar_items",
          "get_content_radar_item"
        ]
      }
    },
    "/api/mcp/v1/content-radar/analyze": {
      "post": {
        "operationId": "analyze_content_radar_item",
        "summary": "Analyze Content Radar Item",
        "description": "Crawl a competitor article and classify it: returns a create/skip recommendation, a summary, and a differentiation angle. The result is cached on the item. Use before deciding whether to counter an article.\n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/content-radar/scan": {
      "post": {
        "operationId": "scan_content_radar",
        "summary": "Scan Content Radar",
        "description": "Project ID to scan\n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/content-audit/inventory": {
      "post": {
        "operationId": "import_content_inventory",
        "summary": "Import Content Inventory",
        "description": "Build the auditable content inventory for a project by importing pages from Reaudit-generated content, ",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/content-audit/runs": {
      "post": {
        "operationId": "run_content_audit",
        "summary": "Run Content Audit",
        "description": "Audit a project's content inventory for AI search visibility and return a severity summary. Checks include \n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Audits"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "x-poll-operationId": "list_content_audit_findings",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/content-audit/findings": {
      "get": {
        "operationId": "list_content_audit_findings",
        "summary": "List Content Audit Findings",
        "description": "List the findings from a content audit run, sorted by severity. Defaults to the latest completed run for the ",
        "tags": [
          "Audits"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "runId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/content-audit/fix": {
      "post": {
        "operationId": "generate_content_fix",
        "summary": "Generate Content Fix",
        "description": "Generate an AI-optimized, grounded fix for a single content audit finding. For Reaudit-managed pages it drafts \n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "x-poll-operationId": "list_content_audit_findings",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/content-audit/apply-brief": {
      "post": {
        "operationId": "apply_content_audit_brief",
        "summary": "Apply Content Audit Brief",
        "description": "Parse a free-text client brief into a saved audit scope (destination, product line, path terms), then optionally ",
        "tags": [
          "Audits"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/content-audit/scopes": {
      "get": {
        "operationId": "list_content_audit_scopes",
        "summary": "List Content Audit Scopes",
        "description": "List saved content audit scopes (free-text name + URL path filters) for a project.",
        "tags": [
          "Audits"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "create_content_audit_scope",
        "summary": "Create Content Audit Scope",
        "description": "Create a saved content audit scope with a name and optional URL path filter terms. Use the returned scopeId on import/run.",
        "tags": [
          "Audits"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/content/generate": {
      "post": {
        "operationId": "generate_content",
        "summary": "Generate Content",
        "description": "Generate AI-powered content including blog posts, social media posts, newsletters, \n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "x-poll-operationId": "get_content_history",
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "x-mcp-sibling-operationIds": [
          "generate_content",
          "generate_ad_creative",
          "create_gap_campaign_brief",
          "create_ad_campaign"
        ]
      }
    },
    "/api/mcp/v1/content/history": {
      "get": {
        "operationId": "get_content_history",
        "summary": "Get Content History",
        "description": "Get your content generation history. Filter by project or content type. Set includeCrawlStatus:true (requires projectId) to also see each published article's freshness (based on last update/optimize date) and which AI bots crawled it — sourced from Cloudflare when connected (authoritative) or the Reaudit tracking plugin otherwise (sample-level).",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-mcp-sibling-operationIds": [
          "get_content_history",
          "list_ad_creatives",
          "list_ad_campaigns"
        ]
      }
    },
    "/api/mcp/v1/content/{contentId}": {
      "get": {
        "operationId": "get_content_details",
        "summary": "Get Content Details",
        "description": "Get full details of a generated content piece including the complete content and SEO data. Schema markup is available on request.",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "contentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "patch": {
        "operationId": "edit_content",
        "summary": "Edit Content",
        "description": "Edit an existing generated content article. Update title, body content (HTML), excerpt, SEO meta fields, tags, categories, slug, featured image, or author. Markdown content is auto-regenerated when HTML body is updated.",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "contentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "delete_content",
        "summary": "Delete Content",
        "description": "Delete a generated content article permanently. This action cannot be undone.",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "contentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/content/{contentId}/schema": {
      "patch": {
        "operationId": "edit_schema",
        "summary": "Edit Schema",
        "description": "Edit the JSON-LD schema markup of a content article. Supports full replacement or partial field updates (headline, description, slug/URLs, author, keywords, FAQ, mainEntityOfPage, etc.). Use get_content_details with includeSchema:true first to inspect current schema.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "contentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/content/knowledge-base": {
      "get": {
        "operationId": "search_knowledge_base",
        "summary": "Search Knowledge Base",
        "description": "Search your project knowledge base for relevant content. The knowledge base contains scraped content from your website that can be used for context.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "query",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/content/suggestions": {
      "get": {
        "operationId": "get_content_suggestions",
        "summary": "Get Content Suggestions",
        "description": "Get AI-generated content suggestions for your project based on SEO analysis and competitor research.",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/projects/{projectId}/context-records": {
      "get": {
        "operationId": "get_context_records",
        "summary": "get_context_records",
        "description": "Read the six distilled Brand Records (company, market, offerings, audience, strategy, execution). Prefer this over raw KB search for positioning questions.",
        "tags": [
          "ContextManager"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/projects/{projectId}/context-gaps": {
      "get": {
        "operationId": "list_context_gaps",
        "summary": "list_context_gaps",
        "description": "List open context-gap questions — one targeted question per thin Brand Record.",
        "tags": [
          "ContextManager"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "answer_context_gap",
        "summary": "answer_context_gap",
        "description": "Answer or skip a context gap. Answered text updates the Brand Record.",
        "tags": [
          "ContextManager"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/cro": {
      "get": {
        "operationId": "get_cro_dashboard",
        "summary": "Get Cro Dashboard",
        "description": "Get CRO overview: active goals, funnels, running tests, new insights, average CRO score, and recent page analyses.",
        "tags": [
          "CRO"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/cro/goals": {
      "get": {
        "operationId": "list_conversion_goals",
        "summary": "List Conversion Goals",
        "description": "List all conversion goals (macro and micro) for a project.",
        "tags": [
          "CRO"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "create_conversion_goal",
        "summary": "Create Conversion Goal",
        "description": "Create a new conversion goal. Types: event_based (track specific events), page_visit (track page visits), ga4_import, revenue.",
        "tags": [
          "CRO"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "delete_conversion_goal",
        "summary": "Delete Conversion Goal",
        "description": "Delete a conversion goal by ID.",
        "tags": [
          "CRO"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "goalId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/cro/goals/{goalId}/conversions": {
      "get": {
        "operationId": "get_goal_conversions",
        "summary": "Get Goal Conversions",
        "description": "Get conversion data for a specific goal over a date range.",
        "tags": [
          "CRO"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "goalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/cro/funnels": {
      "get": {
        "operationId": "list_funnels",
        "summary": "List Funnels",
        "description": "List all conversion funnels for a project.",
        "tags": [
          "CRO"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "create_funnel",
        "summary": "Create Funnel",
        "description": "Create a multi-step conversion funnel. Each step is a page_visit or event with a match pattern.",
        "tags": [
          "CRO"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "delete_funnel",
        "summary": "Delete Funnel",
        "description": "Delete a conversion funnel by ID.",
        "tags": [
          "CRO"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "funnelId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/cro/funnels/{funnelId}/analysis": {
      "get": {
        "operationId": "get_funnel_analysis",
        "summary": "Get Funnel Analysis",
        "description": "Analyze a funnel: step-by-step visitor counts, drop-off rates, and overall conversion rate.",
        "tags": [
          "CRO"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "funnelId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/cro/ab-tests": {
      "get": {
        "operationId": "list_ab_tests",
        "summary": "List Ab Tests",
        "description": "List all A/B tests for a project with their status and variants.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/cro/ab-tests/{testId}/results": {
      "get": {
        "operationId": "get_ab_test_results",
        "summary": "Get Ab Test Results",
        "description": "Get A/B test results with per-variant conversion rates and statistical significance.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "testId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/cro/landing-pages": {
      "get": {
        "operationId": "list_landing_pages",
        "summary": "List Landing Pages",
        "description": "List all analyzed landing pages with CRO scores and metrics.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/cro/landing-pages/analyze": {
      "post": {
        "operationId": "analyze_landing_page",
        "summary": "Analyze Landing Page",
        "description": "Trigger a full CRO analysis for a page URL: crawl content, extract elements, audit CTAs/trust signals, generate AI recommendations.\n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/cro/recommendations": {
      "get": {
        "operationId": "get_cro_recommendations",
        "summary": "Get Cro Recommendations",
        "description": "Get all CRO recommendations across analyzed pages, sorted by impact score. Includes copy suggestions and GEO statuses.",
        "tags": [
          "CRO"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/cro/insights": {
      "get": {
        "operationId": "list_cro_insights",
        "summary": "List Cro Insights",
        "description": "List proactive CRO insights (anomaly detection). Filter by status: new, acknowledged, resolved.",
        "tags": [
          "CRO"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/cro/insights/{insightId}": {
      "patch": {
        "operationId": "update_cro_insight",
        "summary": "Update Cro Insight",
        "description": "Update a CRO insight: change status or mark an action as completed.",
        "tags": [
          "CRO"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "parameters": [
          {
            "name": "insightId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/cro/strategy": {
      "get": {
        "operationId": "get_cro_strategy",
        "summary": "Get Cro Strategy",
        "description": "Get the CRO strategy playbook for a project: optimization priorities, hypothesis backlog, roadmap, copy recommendations, and notes.",
        "tags": [
          "Strategy"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "create_cro_strategy",
        "summary": "Create Cro Strategy",
        "description": "Create a CRO strategy playbook for a project. Includes optimization priorities, hypothesis backlog, roadmap, conversion goals plan, funnel notes, and copy recommendations.",
        "tags": [
          "Strategy"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/cro/strategy/{strategyId}": {
      "patch": {
        "operationId": "update_cro_strategy",
        "summary": "Update Cro Strategy",
        "description": "Update sections of a CRO strategy playbook. Pass only the fields you want to change.",
        "tags": [
          "Strategy"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "parameters": [
          {
            "name": "strategyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "delete_cro_strategy",
        "summary": "Delete Cro Strategy",
        "description": "Delete a CRO strategy playbook.",
        "tags": [
          "Strategy"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "strategyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/entity": {
      "get": {
        "operationId": "get_entity_authority",
        "summary": "Get Entity Authority",
        "description": "Check whether the brand is an established entity in the public knowledge graph (Wikidata item, English Wikipedia article, sameAs profiles) and get a 0-100 entity authority score with prioritized recommendations. Entity recognition is the strongest off-site prerequisite for AI citation — Wikipedia is the #1-cited source on ChatGPT. Uses free public Wikidata/Wikipedia APIs and disambiguates by matching the official website to the project domain.",
        "tags": [
          "Entity"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/github/connections": {
      "get": {
        "operationId": "list_repo_connections",
        "summary": "List GitHub repo connections",
        "description": "Show whether a Reaudit project has a GitHub repo connected via the ",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/github/fixes": {
      "post": {
        "operationId": "propose_seo_fixes",
        "summary": "Propose SEO/GEO fixes (read-only)",
        "description": "Run the Reaudit fix engine in preview mode against the project's \n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "GitHubFixer"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "x-read-only": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "x-mcp-sibling-operationIds": [
          "propose_seo_fixes",
          "open_seo_fix_pr"
        ]
      }
    },
    "/api/mcp/v1/indexing/connections": {
      "get": {
        "operationId": "list_indexing_connections",
        "summary": "List Indexing Connections",
        "description": "List all website indexing connections. These connections enable IndexNow instant indexing and Google Search Console integration.",
        "tags": [
          "Indexing"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "create_indexing_connection",
        "summary": "Create Indexing Connection",
        "description": "Create a new indexing connection for a website. This enables sitemap monitoring and IndexNow instant indexing.",
        "tags": [
          "Indexing"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/indexing/connections/{connectionId}/sync": {
      "post": {
        "operationId": "sync_indexing_connection",
        "summary": "Sync Indexing Connection",
        "description": "Trigger a sitemap sync for an indexing connection. This will fetch the latest URLs from the sitemap and submit new/updated URLs to search engines.",
        "tags": [
          "Indexing"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/optimization/report": {
      "get": {
        "operationId": "get_optimization_report",
        "summary": "Get Optimization Report",
        "description": "Get the full optimization report for a project — includes AI optimization metrics (robots.txt, llms.txt, page speed, AI readiness, static content, structured data), SEO score, technical issues, SEO recommendations, and content suggestions. This is the comprehensive view of what needs fixing.",
        "tags": [
          "Reports"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/agent-readiness": {
      "get": {
        "operationId": "scan_agent_readiness",
        "summary": "Scan Agent Readiness",
        "description": "The ID of the project whose site should be scanned for AI agent readiness",
        "tags": [
          "Audits"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/llms-txt/generate": {
      "post": {
        "operationId": "generate_llms_txt",
        "summary": "Generate Llms Txt",
        "description": "Generate an AI-optimized llms.txt file for your project. This file helps AI assistants \n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/content/translate": {
      "post": {
        "operationId": "translate_content",
        "summary": "Translate Content",
        "description": "Translate generated content to another language. Creates a new content entry with the \n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "x-poll-operationId": "get_content_history",
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/pages/detail": {
      "get": {
        "operationId": "get_page_performance",
        "summary": "Get Page Performance",
        "description": "Unified page command center: list owned pages with AI citations, bot crawls, and decay metrics; or pass url for detail (citations, bots, optimizer scores, PSI, IndexNow status).",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/paid-intelligence/search-terms": {
      "get": {
        "operationId": "get_search_term_report",
        "summary": "Get Search Term Report",
        "description": "Fetch the search term report for a Google Ads campaign. Shows actual search queries that triggered ads with spend, clicks, conversions, and conversion value. Essential for finding wasted spend and negative keyword opportunities.",
        "tags": [
          "Reports"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/paid-intelligence/negative-keywords": {
      "post": {
        "operationId": "add_negative_keywords",
        "summary": "Add Negative Keywords",
        "description": "Add negative keywords to a Google Ads campaign to block unwanted search terms. Confirm with the user before executing.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/paid-intelligence/keyword-performance": {
      "get": {
        "operationId": "get_keyword_performance",
        "summary": "Get Keyword Performance",
        "description": "Fetch live keyword-level performance for a Google Ads campaign. Returns each keyword with quality score, match type, impressions, clicks, conversions, and spend.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/paid-intelligence/ad-performance": {
      "get": {
        "operationId": "get_ad_performance",
        "summary": "Get Ad Performance",
        "description": "Fetch ad-level performance for a Google Ads campaign. Returns RSA headlines, descriptions, and per-ad metrics including CTR, conversions, and ROAS.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/paid-intelligence/bid-strategy": {
      "post": {
        "operationId": "set_campaign_bid",
        "summary": "Set Campaign Bid",
        "description": "Update the bidding strategy for a Google Ads campaign. Supports TARGET_CPA, TARGET_ROAS, MAXIMIZE_CONVERSIONS, MAXIMIZE_CONVERSION_VALUE. Confirm with the user before executing.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/paid-intelligence/meta-audience-insights": {
      "get": {
        "operationId": "meta_get_audience_insights",
        "summary": "Meta Get Audience Insights",
        "description": "Fetch audience breakdown insights for a Meta Ads campaign. Breaks down performance by age, gender, publisher platform, or placement position.",
        "tags": [
          "PaidIntelligence"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/paid-intelligence/meta-creative-performance": {
      "get": {
        "operationId": "meta_get_creative_performance",
        "summary": "Meta Get Creative Performance",
        "description": "Fetch ad-level creative performance for a Meta Ads campaign. Returns per-ad metrics including ad name, impressions, clicks, CTR, spend, and conversions.",
        "tags": [
          "PaidIntelligence"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/paid-intelligence/meta-campaign-status": {
      "post": {
        "operationId": "meta_set_campaign_status",
        "summary": "Meta Set Campaign Status",
        "description": "Pause or activate a Meta Ads campaign. Confirm with the user before executing.",
        "tags": [
          "PaidIntelligence"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/paid-intelligence/performance-comparison": {
      "get": {
        "operationId": "get_performance_comparison",
        "summary": "Get Performance Comparison",
        "description": "Compare campaign performance between two date ranges (e.g. this week vs last week). Returns metrics with absolute and percentage changes.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/content/{creativeId}": {
      "get": {
        "operationId": "get_ad_creative",
        "summary": "Get Ad Creative",
        "description": "Get full details of a specific ad creative including headlines, descriptions, GEO score breakdown, variants, and performance metrics.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "creativeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "delete": {
        "operationId": "delete_ad_creative",
        "summary": "Delete Ad Creative",
        "description": "Delete an ad creative by ID.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "creativeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/visibility-gaps": {
      "get": {
        "operationId": "list_visibility_gaps",
        "summary": "List Visibility Gaps",
        "description": "List AI visibility gaps detected for a project. Gaps are queries where your brand is absent, underperforming, or dominated by competitors in AI responses. Filter by gap type and status.",
        "tags": [
          "Visibility"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/visibility-gaps/{gapId}": {
      "get": {
        "operationId": "get_visibility_gap",
        "summary": "Get Visibility Gap",
        "description": "Get detailed information about a specific visibility gap including competitor data, geographic data, and suggested campaign brief.",
        "tags": [
          "Visibility"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "gapId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/content/{campaignId}": {
      "get": {
        "operationId": "get_ad_campaign",
        "summary": "Get Ad Campaign",
        "description": "Get detailed information about a specific ad campaign including budget, schedule, performance metrics, and visibility lift.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/social/connections": {
      "get": {
        "operationId": "list_ad_platform_connections",
        "summary": "List Ad Platform Connections",
        "description": "List all connected ad platform accounts (Google Ads, Meta Ads, LinkedIn Ads, X/Twitter Ads). Shows connection status and account details.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-mcp-sibling-operationIds": [
          "list_ad_platform_connections",
          "list_social_connections"
        ]
      }
    },
    "/api/ad-campaigns": {
      "post": {
        "operationId": "meta_create_campaign",
        "summary": "Meta Create Campaign",
        "description": "Create a Meta (Facebook/Instagram) Ads campaign. Starts in PAUSED status.\n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "PaidIntelligence"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "x-mcp-sibling-operationIds": [
          "meta_create_campaign",
          "linkedin_create_campaign",
          "twitter_create_campaign"
        ]
      }
    },
    "/api/ad-campaigns/{campaignId}": {
      "get": {
        "operationId": "meta_get_campaign_insights",
        "summary": "Meta Get Campaign Insights",
        "description": "Fetch Meta Ads campaign performance insights (impressions, clicks, CTR, spend, conversions) over a date range.",
        "tags": [
          "PaidIntelligence"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-mcp-sibling-operationIds": [
          "meta_get_campaign_insights",
          "linkedin_get_campaign_analytics",
          "twitter_get_campaign_stats"
        ]
      }
    },
    "/api/paid-intelligence/performance-comparison": {
      "get": {
        "operationId": "get_cross_platform_performance",
        "summary": "Get Cross Platform Performance",
        "description": "Get an aggregated performance view across all connected ad platforms (Google, Meta, LinkedIn, Twitter). Shows spend, clicks, impressions, and conversions per platform.",
        "tags": [
          "CRO"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/projects/{projectId}/settings": {
      "get": {
        "operationId": "get_project_settings",
        "summary": "Get Project Settings",
        "description": "Get all settings for a project including brand info, writing style, social media, competitors, author card, and more. Use this to read the current configuration of a project.",
        "tags": [
          "Projects"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "patch": {
        "operationId": "update_project_settings",
        "summary": "Update Project Settings",
        "description": "Update project settings including brand name, description, writing style, social media links, competitors, author card, industry, language, and more. Only provide the fields you want to change.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/projects/{projectId}/knowledge-documents": {
      "post": {
        "operationId": "create_knowledge_document",
        "summary": "Create Knowledge Document",
        "description": "The project ID",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/projects": {
      "get": {
        "operationId": "list_projects",
        "summary": "List Projects",
        "description": "List all projects in your Reaudit account. Returns project names, IDs, domains, and industries.",
        "tags": [
          "Projects"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "x-mcp-sibling-operationIds": [
          "list_projects",
          "set_active_project",
          "get_active_project"
        ]
      }
    },
    "/api/projects": {
      "post": {
        "operationId": "create_project",
        "summary": "Create Project",
        "description": "Create a new project for a brand and run the full onboarding pipeline: crawl the website, AI brand/industry analysis, SEO audit, competitor detection, and AI-visibility prompt suggestions. Takes 1-3 minutes. IMPORTANT: if this tool returns an error or times out, do NOT call it again with the same name - call list_projects to check whether the project was already created.\n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Projects"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "x-poll-operationId": "list_projects",
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/prompts": {
      "get": {
        "operationId": "list_prompt_topics",
        "summary": "List Prompt Topics",
        "description": "List all prompt topics (PromptSets) for a project. Topics contain prompts that are tracked to monitor brand visibility in AI responses.",
        "tags": [
          "Prompts"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "create_prompt_topic",
        "summary": "Create Prompt Topic",
        "description": "Create a new prompt topic with initial prompts. Topics group related prompts for organized tracking of brand visibility.",
        "tags": [
          "Prompts"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/prompts/{topicId}": {
      "patch": {
        "operationId": "add_prompts_to_topic",
        "summary": "Add Prompts To Topic",
        "description": "Add new prompts to an existing topic.",
        "tags": [
          "Prompts"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "topicId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "delete_prompt",
        "summary": "Delete Prompt",
        "description": "Delete a single prompt from a topic. Identify the prompt by its promptId (from list_prompt_topics) or, as a fallback, by exact promptText. Use this to remove wrong, outdated, or duplicate prompts without recreating the whole topic.",
        "tags": [
          "Prompts"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "topicId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-mcp-sibling-operationIds": [
          "delete_prompt",
          "delete_prompt_topic"
        ]
      },
      "put": {
        "operationId": "update_prompt",
        "summary": "Update Prompt",
        "description": "Edit an existing prompt in place — change its text (and optionally its language/region) without creating a new one. Identify the prompt by its promptId from list_prompt_topics. Use this to correct or rewrite a wrong prompt.",
        "tags": [
          "Prompts"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "parameters": [
          {
            "name": "topicId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "x-mcp-sibling-operationIds": [
          "update_prompt",
          "update_prompt_topic"
        ]
      }
    },
    "/api/mcp/v1/prompts/track": {
      "post": {
        "operationId": "track_prompt",
        "summary": "Track Prompt",
        "description": "Submit a prompt for AI tracking. The prompt will be sent to AI engines (ChatGPT, Perplexity, Google) to check if/how your brand is mentioned.",
        "tags": [
          "Prompts"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/prompts/analytics": {
      "get": {
        "operationId": "get_prompt_analytics",
        "summary": "Get Prompt Analytics",
        "description": "Get analytics for tracked prompts including brand mentions, sentiment, and visibility rates across AI platforms. Mention rates include Wilson 95% confidence intervals computed across scheduled runs (each run is one sample), so you can tell real visibility changes from single-run noise.",
        "tags": [
          "Prompts"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topicId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/prompts/suggestions": {
      "get": {
        "operationId": "generate_prompt_suggestions",
        "summary": "Generate Prompt Suggestions",
        "description": "Use AI to generate prompt suggestions based on your project and optional topic focus. Great for discovering new prompts to track.",
        "tags": [
          "Prompts"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topicId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/prompts/research": {
      "post": {
        "operationId": "generate_prompt_research",
        "summary": "Generate Prompt Research",
        "description": "Generate 30-40 AI search prompts grouped by topic with relevance scores (0-10), estimated monthly intent volume, GSC impressions/clicks (gsc mode), and Google Keyword Planner matched terms when configured. Supports keywords, url, brand, journeys, and gsc modes. Pass expandSessionId to add more non-duplicate prompts to an existing saved session. Returns sessionId for follow-up via get_prompt_research or expand.\n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Prompts"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "x-read-only": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "get": {
        "operationId": "list_prompt_research_sessions",
        "summary": "List Prompt Research Sessions",
        "description": "List saved prompt research sessions for a project (mode, prompt count, session ID, tracked count). Use get_prompt_research for full tables with relevance, volume, GSC, and Google keyword data.",
        "tags": [
          "Prompts"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-mcp-sibling-operationIds": [
          "list_prompt_research_sessions",
          "get_prompt_research"
        ]
      }
    },
    "/api/mcp/v1/wordpress/connections": {
      "get": {
        "operationId": "list_wordpress_connections",
        "summary": "List Wordpress Connections",
        "description": "List all connected WordPress sites. Use this to find the connectionId needed for publishing.",
        "tags": [
          "Publishing"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/wordpress/publish": {
      "post": {
        "operationId": "publish_to_wordpress",
        "summary": "Publish To Wordpress",
        "description": "Publish content to a WordPress site. Includes schema markup and markdown for AI search visibility.",
        "tags": [
          "Publishing"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/react/connections": {
      "get": {
        "operationId": "list_react_connections",
        "summary": "List React Connections",
        "description": "List all React/webhook connections for headless CMS publishing.",
        "tags": [
          "Publishing"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/react/publish": {
      "post": {
        "operationId": "publish_to_react",
        "summary": "Publish To React",
        "description": "The ID of the content to publish",
        "tags": [
          "Publishing"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/reddit": {
      "get": {
        "operationId": "list_reddit_monitors",
        "summary": "List Reddit Monitors",
        "description": "List monitored subreddits for a project. Shows active monitors, keywords tracked, and lead statistics.",
        "tags": [
          "Reddit"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-mcp-sibling-operationIds": [
          "list_reddit_monitors",
          "get_reddit_leads",
          "get_reddit_opportunities"
        ]
      },
      "patch": {
        "operationId": "update_reddit_lead",
        "summary": "Update Reddit Lead",
        "description": "Update a Reddit lead status (new, contacted, qualified, converted, dismissed). Optionally add notes.",
        "tags": [
          "Reddit"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "x-mcp-sibling-operationIds": [
          "update_reddit_lead",
          "update_reddit_opportunity"
        ]
      },
      "post": {
        "operationId": "discover_subreddits",
        "summary": "Discover Subreddits",
        "description": "Get subreddit discovery suggestions for a project based on its keywords, competitors, and AI-validated relevance. Read-only — does not add monitors.",
        "tags": [
          "Reddit"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "x-mcp-sibling-operationIds": [
          "discover_subreddits",
          "run_subreddit_discovery",
          "generate_reddit_opportunities"
        ]
      }
    },
    "/api/mcp/v1/reports": {
      "get": {
        "operationId": "list_reports",
        "summary": "List Reports",
        "description": "List saved analytics reports. Reports store reusable query configurations for dashboards.",
        "tags": [
          "Reports"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "create_report",
        "summary": "Create Report",
        "description": "Create a saved analytics report with custom metrics, dimensions, filters, and visualization settings.",
        "tags": [
          "Reports"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/reports/{reportId}": {
      "get": {
        "operationId": "get_report",
        "summary": "Get Report",
        "description": "Get details of a saved analytics report by ID.",
        "tags": [
          "Reports"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "delete": {
        "operationId": "delete_report",
        "summary": "Delete Report",
        "description": "Delete a saved analytics report.",
        "tags": [
          "Reports"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/reports/client-visibility": {
      "get": {
        "operationId": "generate_client_visibility_report",
        "summary": "Generate Client Visibility Report",
        "description": "Generate a short, client-facing AI Visibility Report PDF: mention rate with ChatGPT/Gemini split, competition ranking, Location/Persona/USP breakdown, and hospitality-style sources chart. Ideal for agency hotel handouts. Returns summary metrics and download instructions.\n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Visibility"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "x-read-only": true
      }
    },
    "/api/mcp/v1/alerts": {
      "get": {
        "operationId": "get_seo_alerts",
        "summary": "Get Seo Alerts",
        "description": "Get SEO alerts for your account. Shows unread alerts (visibility drops, crawl issues, ranking changes) or a summary of all alert activity.",
        "tags": [
          "Alerts"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/shopping-visibility": {
      "get": {
        "operationId": "get_shopping_visibility",
        "summary": "Get Shopping AI Visibility",
        "description": "Get Google Merchant Center Shopping AI visibility for a project: how your products surface in Shopping vs competitors, the organic Shopping funnel (impressions, clicks, CTR), product attribute completeness, and the top product feed issues that make products hard for AI systems to understand. Requires an active Merchant Center connection.",
        "tags": [
          "Visibility"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/skills": {
      "get": {
        "operationId": "list_skills",
        "summary": "List Skills",
        "description": "list_skills",
        "tags": [
          "Skills"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/social/opportunities": {
      "get": {
        "operationId": "list_content_opportunities",
        "summary": "List Content Opportunities",
        "description": "Answer \"what should I post about?\" using Reaudit data instead of guesswork. Merges four signals into one ranked list: visibility gaps (queries where AI engines do not mention the brand), pages that work (pages AI engines already crawl and cite), content audit findings (stale or hard-to-extract pages), and generated articles. Returns opportunity IDs to pass to create_social_campaign. Use this whenever the user asks what to post, wants a content plan, or asks to turn visibility gaps into content.",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/social/campaigns": {
      "post": {
        "operationId": "create_social_campaign",
        "summary": "Create Social Campaign",
        "description": "Turn chosen content opportunities into draft social posts, one per platform, optionally with AI-generated images. Posts are written in the project brand voice and grounded in the underlying signal (the gap query, the cited page, the audit finding). Everything is created as a DRAFT — this never publishes. Target channels with platforms, connectionIds, or postingSetId; with none of those it writes for every verified connection.",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/social/campaigns/approve": {
      "post": {
        "operationId": "approve_social_campaign",
        "summary": "Approve Social Campaign",
        "description": "Publish or schedule the drafts in a campaign. This is the point at which content becomes externally visible, so confirm with the user before calling it. Use action \"schedule\" with spacingMinutes to spread posts out, or \"publish_now\" to send them immediately.",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/social-listening": {
      "get": {
        "operationId": "list_social_mentions",
        "summary": "List Social Mentions",
        "description": "List Engage Online mentions (keyword matches + AI citations merged, same as dashboard).",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "x-mcp-sibling-operationIds": [
          "list_social_mentions",
          "list_social_keywords"
        ]
      },
      "post": {
        "operationId": "scan_social_keywords",
        "summary": "Scan Social Keywords",
        "description": "Run proactive keyword scan across configured sources (X, Reddit, YouTube, HN, LinkedIn).",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "x-mcp-sibling-operationIds": [
          "scan_social_keywords",
          "add_social_keyword"
        ]
      }
    },
    "/api/mcp/v1/social/posts": {
      "get": {
        "operationId": "list_social_posts",
        "summary": "List Social Posts",
        "description": "List social media posts including scheduled, published, draft, and failed posts. Scheduled posts are returned soonest-first (next post to publish is first). Filter by platform, status, or project.",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "patch": {
        "operationId": "update_social_post",
        "summary": "Update Social Post",
        "description": "Update a draft, scheduled, or failed social post in place — text, linkUrl, media, hashtags, schedule time, or LinkedIn share mode. LinkedIn defaults to native post; set linkedinShareType=article for a link preview card.",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "delete_social_post",
        "summary": "Delete Social Post",
        "description": "Delete or cancel a social post. Scheduled posts are removed from the publish queue first.",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true
      }
    },
    "/api/mcp/v1/social/generate": {
      "post": {
        "operationId": "generate_social_posts",
        "summary": "Generate Social Posts",
        "description": "Generate social media posts from an existing generated article (requires its contentId). Creates one draft per platform with native length — LinkedIn/Facebook get multi-paragraph posts from the article; X/Instagram stay short. To create posts from visibility signals instead of an article, use create_social_campaign.\n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/social/publish": {
      "post": {
        "operationId": "publish_social_post",
        "summary": "Publish Social Post",
        "description": "Publish a social media post immediately. The post must be in draft status.",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/social/bulk-import": {
      "post": {
        "operationId": "bulk_schedule_social_posts",
        "summary": "Bulk Schedule Social Posts",
        "description": "Queue up to 200 scheduled posts in one call from structured rows. Each row is validated independently against the target platform limits before anything is written, so bad rows are reported with row numbers instead of failing the batch. Does not consume the weekly AI generation quota.",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/social/generate-video": {
      "post": {
        "operationId": "generate_social_video",
        "summary": "Generate Social Video",
        "description": "Render a slideshow video from image URLs, with optional narration. Returns a public media URL ready to attach to a TikTok, YouTube, Instagram or Facebook post. Vertical output is 1080x1920. Costs credits based on output length.\n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/social/schedule": {
      "post": {
        "operationId": "schedule_social_post",
        "summary": "Schedule Social Post",
        "description": "Schedule a social media post for later publication.",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/social/cross-post": {
      "post": {
        "operationId": "cross_post_to_social",
        "summary": "Cross Post To Social",
        "description": "Publish content to multiple social media platforms at once. Supports text, media attachments, and platform-specific options like TikTok draft mode. Target channels either by connectionIds or by postingSetId (a saved group).",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/social/generate-text": {
      "post": {
        "operationId": "generate_social_text",
        "summary": "Generate Social Text",
        "description": "Description of what to post about (e.g., \"Announce our new feature launch with excitement\")",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/social/generate-image": {
      "post": {
        "operationId": "generate_social_image",
        "summary": "Generate Social Image",
        "description": "What the image should show\n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/social/grounding": {
      "get": {
        "operationId": "get_social_grounding",
        "summary": "Get Social Grounding",
        "description": "The project ID",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/social/brand-references": {
      "get": {
        "operationId": "list_brand_references",
        "summary": "List Brand References",
        "description": "The project ID",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "add_brand_references",
        "summary": "Add Brand References",
        "description": "The project ID",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/social/analytics": {
      "get": {
        "operationId": "get_social_analytics",
        "summary": "Get Social Analytics",
        "description": "Get social media analytics including views, likes, shares, comments, and clicks across all connected platforms.",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/social/analytics/audit": {
      "get": {
        "operationId": "audit_social_posts",
        "summary": "Audit Social Posts",
        "description": "Per-post audit report: status, platformPostId, platform URL, analytics snapshot, trackable link, and failure reasons. Use before debugging sync gaps.",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/social/analytics/impact": {
      "get": {
        "operationId": "get_social_post_impact",
        "summary": "Get Social Post Impact",
        "description": "Downstream site impact for one published post: tracker/GA4 sessions, landing pages, and Stripe revenue attributed via UTM campaign.",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "postId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/social/posting-sets": {
      "get": {
        "operationId": "list_posting_sets",
        "summary": "List Posting Sets",
        "description": "List saved groups of social channels. Use this when the user says \"post everywhere\" or names a group instead of individual accounts — pass the set ID to cross_post_to_social.",
        "tags": [
          "Social"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/social/hashtags": {
      "get": {
        "operationId": "list_project_hashtags",
        "summary": "List Project Hashtags",
        "description": "List the project hashtag library (brand tags the user owns). Call before generate_social_text. With projectId, generation injects pinned/default tags inline in post text.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "upsert_project_hashtag",
        "summary": "Upsert Project Hashtag",
        "description": "Add or update a hashtag in the project library. Pin brand-core tags with isPinned. Used inline in generated post text.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "delete_project_hashtag",
        "summary": "Delete Project Hashtag",
        "description": "Remove a hashtag from the project library by id or tag.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/social/hashtag-sets": {
      "get": {
        "operationId": "list_hashtag_sets",
        "summary": "List Hashtag Sets",
        "description": "List named hashtag sets (brand core, campaign). Default set feeds generate_social_text.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "upsert_hashtag_set",
        "summary": "Upsert Hashtag Set",
        "description": "Create a named hashtag set for the project. Set isDefault true for generation default.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/sources": {
      "get": {
        "operationId": "get_citation_sources",
        "summary": "Get Citation Sources",
        "description": "Get all citation sources for a project showing which URLs are being cited by AI models, their frequency, and which models cite them.",
        "tags": [
          "Sources"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/sources/citing-prompts": {
      "get": {
        "operationId": "get_citing_prompts",
        "summary": "Get Prompts Citing a URL",
        "description": "Reverse citation lookup: given a cited URL, list the tracked prompts that caused AI engines to cite it (with engines, citation counts, and whether your brand was mentioned). Use to understand WHY a specific third-party page (a roundup, competitor, or review site) keeps appearing in AI answers, and which prompts to target with your own content.",
        "tags": [
          "Prompts"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/sources/extract-author": {
      "post": {
        "operationId": "extract_author_info",
        "summary": "Extract Author Info",
        "description": "Extract author information from a URL including name, email, bio, and social links. Useful for outreach preparation.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/outreach": {
      "get": {
        "operationId": "list_outreach_opportunities",
        "summary": "List Outreach Opportunities",
        "description": "List outreach opportunities for a project. These are potential contacts for link building or content collaboration.",
        "tags": [
          "Sources"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "create_outreach_opportunity",
        "summary": "Create Outreach Opportunity",
        "description": "Create a new outreach opportunity manually. Use this to track potential link building or collaboration contacts.",
        "tags": [
          "Sources"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/sources/draft-reddit-reply": {
      "post": {
        "operationId": "draft_reddit_reply",
        "summary": "Draft Reddit Reply",
        "description": "Crawl an AI-cited Reddit thread and draft a helpful comment reply. Returns existing saved draft if available. Use after get_citation_sources to engage in discussions your buyers already have in AI answers.",
        "tags": [
          "Reddit"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/sources/decay": {
      "get": {
        "operationId": "get_citation_decay",
        "summary": "Get Citation Decay",
        "description": "Citation lifecycle metrics per URL: first cited date, rise to peak, peak weekly volume, half-life (2-week smoothed), and last cited. Sort by half-life to build a data-backed content refresh queue for owned pages.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/sources/youtube": {
      "get": {
        "operationId": "get_youtube_citation_breakdown",
        "summary": "Get YouTube Citation Breakdown",
        "description": "Structured breakdown of YouTube URLs cited in AI answers: top channels (with share and child videos), individual videos (length, channel, category), and video categories.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/strategies/{strategyId}/generate": {
      "post": {
        "operationId": "generate_strategy_step",
        "summary": "Generate Strategy Step",
        "description": "Generate AI content for a specific GTM strategy module step using Perplexity deep search. \n\n**Long-running:** may take 1–3+ minutes. If the HTTP call times out, poll the read endpoint documented in `x-poll-operationId` — do not retry the same POST (duplicate charges).",
        "tags": [
          "Strategy"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-long-running": true,
        "x-poll-operationId": "get_strategy_step_output",
        "x-destructive": true,
        "parameters": [
          {
            "name": "strategyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/strategies/{strategyId}/steps": {
      "get": {
        "operationId": "get_strategy_step_output",
        "summary": "Get Strategy Step Output",
        "description": "Get the full generated output of a specific strategy step including content, citations, and edit history. ",
        "tags": [
          "Strategy"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "strategyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "patch": {
        "operationId": "edit_strategy_step",
        "summary": "Edit Strategy Step",
        "description": "Edit the content of a strategy step. Use this to modify generated content, add additional information, ",
        "tags": [
          "Strategy"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "strategyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/strategies": {
      "get": {
        "operationId": "get_strategy_step_map",
        "summary": "Get Strategy Step Map",
        "description": "Get a reference map of all GTM strategy modules and steps. ",
        "tags": [
          "Strategy"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "stepMap",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-mcp-sibling-operationIds": [
          "get_strategy_step_map",
          "list_strategies"
        ]
      },
      "post": {
        "operationId": "create_strategy",
        "summary": "Create Strategy",
        "description": "Create a new GTM strategy session with business context. This starts the strategy generation process.",
        "tags": [
          "Strategy"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/strategies/{strategyId}": {
      "get": {
        "operationId": "get_strategy_details",
        "summary": "Get Strategy Details",
        "description": "Get detailed information about a specific GTM strategy including all module progress and outputs.",
        "tags": [
          "Strategy"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "strategyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/strategies/{strategyId}/content-items": {
      "get": {
        "operationId": "get_strategy_content_items",
        "summary": "Get Strategy Content Items",
        "description": "Get content items from a strategy's 90-day content calendar. Filter by status, week, or platform.",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "strategyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "patch": {
        "operationId": "update_content_item_status",
        "summary": "Update Content Item Status",
        "description": "Update a content item's status, notes, topic, platform, or planned date.",
        "tags": [
          "Content"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "parameters": [
          {
            "name": "strategyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/taxonomy": {
      "get": {
        "operationId": "list_models",
        "summary": "List AI Engines",
        "description": "List the AI engines (ChatGPT, Claude, Perplexity, Gemini, Copilot, Grok, Meta AI, DeepSeek) Reaudit tracks for this project. Marks which engines have actually returned data in the last 90 days.",
        "tags": [
          "Taxonomy"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-mcp-sibling-operationIds": [
          "list_models",
          "list_regions",
          "list_domains",
          "list_categories",
          "list_tags"
        ]
      }
    },
    "/api/mcp/v1/tracking/cloudflare": {
      "get": {
        "operationId": "get_cloudflare_analytics",
        "summary": "Cloudflare Analytics (AUTHORITATIVE bot crawl source)",
        "description": "AUTHORITATIVE source for AI bot crawl volume and AI referral traffic — sees every request at the CDN edge. PREFER THIS over get_agent_analytics for any \"how many bot hits / is GPTBot crawling me / how much AI referral traffic\" question. Returns AI bot crawls (all bots), optimization metrics (answer retrievals, demand signals, provider volume — search/assistant bots only), traffic overview, top crawled paths, AI referral traffic, and data transfer by bot. Use type=answerRetrievals for Cloudflare Optimization-tab numbers (excludes training crawlers). Requires an active Cloudflare connection for the project.",
        "tags": [
          "Analytics"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-mcp-sibling-operationIds": [
          "get_cloudflare_analytics",
          "get_ai_referral_performance"
        ]
      }
    },
    "/api/mcp/v1/tracking/click-surface": {
      "get": {
        "operationId": "get_google_click_surface",
        "summary": "Google Click Surface (probable AI Overview traffic)",
        "description": "Estimate how much Google/Bing search traffic arrived via an AI Overview or AI Mode citation rather than a classic blue link. Google exposes no AI Overview click source, so this classifies visits by browser navigation fingerprint (fresh-tab detection) and returns a RANGE plus an explicit indeterminate bucket — never an exact session count. Set validate=true to also run the cited-vs-uncited test, which checks whether the fingerprint actually tracks AI Overview citation coverage on this site or is just measuring its browser mix. Requires tracking snippets updated with navigation signal capture.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/tracking/wordpress": {
      "get": {
        "operationId": "get_page_citations",
        "summary": "Get Page Citations",
        "description": "Get page citations — which of your pages are being crawled by LLM bots (GPTBot, ClaudeBot, etc.), how often, and by which bots.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/tracking/webflow": {
      "get": {
        "operationId": "get_webflow_tracking",
        "summary": "Get Webflow Tracking",
        "description": "Get Webflow site bot tracking analytics. Shows AI bot visits, bot type breakdown, and top crawled pages.",
        "tags": [
          "Analytics"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/tracking/wix": {
      "get": {
        "operationId": "get_wix_tracking",
        "summary": "Get Wix Tracking",
        "description": "Get Wix site bot tracking analytics. Shows AI bot visits, bot type breakdown, and top crawled pages.",
        "tags": [
          "Analytics"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/usage/tokens": {
      "get": {
        "operationId": "get_token_usage",
        "summary": "Get Token Usage",
        "description": "Get a summary of your LLM token usage and costs over a specified period",
        "tags": [
          "Usage"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/usage/budget": {
      "get": {
        "operationId": "get_budget_status",
        "summary": "Get Budget Status",
        "description": "Get your current budget limits and usage status",
        "tags": [
          "Usage"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "put": {
        "operationId": "set_budget_limits",
        "summary": "Set Budget Limits",
        "description": "Set monthly budget limits for token usage and costs. Set to null to remove limits.",
        "tags": [
          "Usage"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-destructive": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "/api/mcp/v1/visibility/score": {
      "get": {
        "operationId": "get_visibility_score",
        "summary": "Get Visibility Score",
        "description": "Get the AI visibility score for a project, defined as the percentage of AI answers in the project's tracked prompt set that mention the brand (0–100%). Same metric as the dashboard's AI Visibility tile. Also returns supporting metadata: total mentions, total answers, citation rate, sentiment distribution, and per-engine breakdown.",
        "tags": [
          "Visibility"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/visibility/mentions": {
      "get": {
        "operationId": "get_brand_mentions",
        "summary": "Get Brand Mentions",
        "description": "Get recent brand mentions across AI platforms like ChatGPT, Claude, and Perplexity. Shows the prompts that triggered mentions and sentiment analysis.",
        "tags": [
          "Visibility"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/visibility/responses": {
      "get": {
        "operationId": "get_ai_responses",
        "summary": "Get Raw AI Responses",
        "description": "Show what the AI engines literally said. Returns the FULL verbatim answer text (not a truncated excerpt) collected per run/engine for the project's tracked prompts, with the brands detected and citations parsed out. Use when the user asks \"what did ChatGPT/Perplexity actually say about my brand?\" or wants to compare how different engines answered the same prompt. Filter to one prompt with the `prompt` argument.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/visibility/competitors": {
      "get": {
        "operationId": "get_competitor_comparison",
        "summary": "Get Competitor Comparison",
        "description": "Compare your AI visibility with competitors. Shows ranking, mention counts, and sentiment comparison.",
        "tags": [
          "Visibility"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/visibility/brand-alignment": {
      "get": {
        "operationId": "get_brand_alignment",
        "summary": "Get Brand Alignment",
        "description": "Show how AI perceives the brand (category, peers/competitors, audience, reputation, per-engine presence) versus the brand's confirmed reality. Includes a perception scorecard — five categories (Trust & Reliability, Quality & Performance, Value & Experience, Market Position, Innovation & Appeal) scored 0-100 — and a per-competitor gap analysis (where the brand leads or trails). When the user has confirmed ground truth in the Brand Alignment page, also returns an alignment score, the specific mismatches (wrong category, wrong/missing competitors, absent from its own category), and the prioritized site-data fixes, each with corrective tracking (whether published fixes are being reflected in AI answers). Use when a prospect or user says \"those are not my competitors\" or \"that is not my industry\", to explain why AI mis-categorizes the brand, or to check if a published fix is working.",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/visibility/fact-check": {
      "get": {
        "operationId": "get_brand_fact_check",
        "summary": "Get Brand Fact Check",
        "description": "Show whether what AI engines say about the brand is FACTUALLY TRUE. Returns an accuracy score (0-100), the specific claims AI got wrong — pricing, specs, features, availability, policies — each paired with the correction from the brand's own approved knowledge base, plus the source domains driving the wrong answers labelled owned / competitor / third-party so the fix can be routed (update your page, out-publish a competitor, or ask a publisher to correct the record). Verdicts are conservative: a claim is only \"inaccurate\" when the knowledge base explicitly contradicts it; missing evidence is \"unverifiable\", never \"inaccurate\". Use when the user asks whether AI is saying something wrong about them, mentions hallucinations or outdated pricing/specs in ChatGPT, or asks which page is causing a wrong answer. Distinct from get_sentiment_report (how AI FEELS about the brand) and get_brand_alignment (how AI CATEGORIZES it).",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/visibility/sentiment": {
      "get": {
        "operationId": "get_sentiment_report",
        "summary": "Get Sentiment Report",
        "description": "Dedicated sentiment breakdown across AI engines for a project: overall average, positive/neutral/negative distribution, per-platform table, and daily trend. Use when the user asks about sentiment / tone / how AI engines feel about the brand.",
        "tags": [
          "Visibility"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true,
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/mcp/v1/sentiment/themes": {
      "get": {
        "operationId": "get_sentiment_themes",
        "summary": "Get Sentiment Themes",
        "description": "Semantic themes (clusters of the claims AI engines make about the brand and competitors), each labeled and split positive/neutral/negative, with sample claims AND the ranked source domains driving each theme (classified owned / competitor / third-party). Use when the user asks \"what narratives are forming about us?\", \"what are AI engines saying, by topic?\", \"which source is driving this negative narrative?\", or wants the recurring negative talking points to fix.",
        "tags": [
          "Visibility"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    },
    "/api/mcp/v1/analytics/performance-matrix": {
      "get": {
        "operationId": "get_performance_matrix",
        "summary": "Get Performance Matrix",
        "description": "Configurable 2-D grid that crosses two dimensions (topic, model, region, competitor) and shows one metric (visibility %, share of voice %, sentiment 0-100, or average position). Use for questions like \"which topics do I own on ChatGPT but not Perplexity?\" or \"where is a competitor outperforming my brand?\".",
        "tags": [
          "General"
        ],
        "security": [
          {
            "BearerAuth": []
          },
          {
            "OAuth2": [
              "full_access"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing Bearer token / OAuth token"
          },
          "403": {
            "description": "Forbidden — plan does not include MCP access or project not allowed"
          },
          "412": {
            "description": "Precondition failed — e.g. missing knowledge base for fact check"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "x-read-only": true
      }
    }
  },
  "x-mcp-tool-catalog": [
    {
      "operationId": "get_usage_summary",
      "method": "GET",
      "path": "/api/mcp/v1/account",
      "summary": "Get Usage Summary",
      "readOnly": true
    },
    {
      "operationId": "list_action_grids",
      "method": "GET",
      "path": "/api/mcp/v1/action-grids",
      "summary": "List Action Grids",
      "readOnly": true
    },
    {
      "operationId": "create_action_grid",
      "method": "POST",
      "path": "/api/mcp/v1/action-grids",
      "summary": "Create Action Grid",
      "readOnly": false
    },
    {
      "operationId": "get_action_grid",
      "method": "GET",
      "path": "/api/mcp/v1/action-grids/{gridId}",
      "summary": "Get Action Grid",
      "readOnly": true
    },
    {
      "operationId": "delete_action_grid",
      "method": "DELETE",
      "path": "/api/mcp/v1/action-grids/{gridId}",
      "summary": "Delete Action Grid",
      "readOnly": false
    },
    {
      "operationId": "add_grid_items",
      "method": "POST",
      "path": "/api/mcp/v1/action-grids/{gridId}/items",
      "summary": "Add Grid Items",
      "readOnly": false
    },
    {
      "operationId": "update_grid_item",
      "method": "PUT",
      "path": "/api/mcp/v1/action-grids/{gridId}/items",
      "summary": "Update Grid Item",
      "readOnly": false
    },
    {
      "operationId": "get_agent_analytics",
      "method": "GET",
      "path": "/api/mcp/v1/agent-analytics",
      "summary": "Get Agent Analytics",
      "readOnly": true
    },
    {
      "operationId": "get_analytics_hub",
      "method": "GET",
      "path": "/api/mcp/v1/analytics-hub",
      "summary": "Get Analytics Hub",
      "readOnly": true
    },
    {
      "operationId": "list_analytics_alerts",
      "method": "GET",
      "path": "/api/mcp/v1/analytics-hub/alerts",
      "summary": "List Analytics Alerts",
      "readOnly": true
    },
    {
      "operationId": "create_analytics_alert",
      "method": "POST",
      "path": "/api/mcp/v1/analytics-hub/alerts",
      "summary": "Create Analytics Alert",
      "readOnly": false
    },
    {
      "operationId": "delete_analytics_alert",
      "method": "DELETE",
      "path": "/api/mcp/v1/analytics-hub/alerts",
      "summary": "Delete Analytics Alert",
      "readOnly": false
    },
    {
      "operationId": "query_analytics",
      "method": "POST",
      "path": "/api/mcp/v1/analytics/query",
      "summary": "Query Analytics",
      "readOnly": true
    },
    {
      "operationId": "get_citation_analytics",
      "method": "GET",
      "path": "/api/mcp/v1/analytics/citations",
      "summary": "Get Citation Analytics",
      "readOnly": true
    },
    {
      "operationId": "get_wordpress_analytics",
      "method": "GET",
      "path": "/api/mcp/v1/analytics/wordpress",
      "summary": "Get Wordpress Analytics",
      "readOnly": true
    },
    {
      "operationId": "get_revenue_attribution",
      "method": "GET",
      "path": "/api/mcp/v1/attribution",
      "summary": "Get Revenue Attribution",
      "readOnly": true
    },
    {
      "operationId": "run_audit",
      "method": "POST",
      "path": "/api/mcp/v1/audits",
      "summary": "Run Audit",
      "readOnly": false
    },
    {
      "operationId": "list_audits",
      "method": "GET",
      "path": "/api/mcp/v1/audits",
      "summary": "List Audits",
      "readOnly": true
    },
    {
      "operationId": "get_audit_details",
      "method": "GET",
      "path": "/api/mcp/v1/audits/{auditId}",
      "summary": "Get Audit Details",
      "readOnly": true
    },
    {
      "operationId": "get_audit_recommendations",
      "method": "GET",
      "path": "/api/mcp/v1/audits/{auditId}/recommendations",
      "summary": "Get Audit Recommendations",
      "readOnly": true
    },
    {
      "operationId": "check_crawlability",
      "method": "POST",
      "path": "/api/mcp/v1/audits/crawlability",
      "summary": "Check Crawlability (AI bots)",
      "readOnly": true
    },
    {
      "operationId": "get_bing_search_performance",
      "method": "GET",
      "path": "/api/mcp/v1/bing-webmaster",
      "summary": "Get Bing Search Performance",
      "readOnly": true
    },
    {
      "operationId": "get_bing_crawl_health",
      "method": "GET",
      "path": "/api/mcp/v1/bing-webmaster",
      "summary": "Get Bing Crawl Health",
      "readOnly": true
    },
    {
      "operationId": "submit_urls_to_bing",
      "method": "POST",
      "path": "/api/mcp/v1/bing-webmaster",
      "summary": "Submit Urls To Bing",
      "readOnly": false
    },
    {
      "operationId": "get_bing_backlinks",
      "method": "GET",
      "path": "/api/mcp/v1/bing-webmaster",
      "summary": "Get Bing Backlinks",
      "readOnly": true
    },
    {
      "operationId": "list_branded_domains",
      "method": "GET",
      "path": "/api/mcp/v1/projects/{projectId}/branded-domains",
      "summary": "List Branded Domains",
      "readOnly": true
    },
    {
      "operationId": "add_branded_domain",
      "method": "POST",
      "path": "/api/mcp/v1/projects/{projectId}/branded-domains",
      "summary": "Add Branded Domain",
      "readOnly": false
    },
    {
      "operationId": "remove_branded_domain",
      "method": "DELETE",
      "path": "/api/mcp/v1/projects/{projectId}/branded-domains",
      "summary": "Remove Branded Domain",
      "readOnly": false
    },
    {
      "operationId": "get_content_calendar",
      "method": "GET",
      "path": "/api/mcp/v1/calendar",
      "summary": "Get Content Calendar",
      "readOnly": true
    },
    {
      "operationId": "get_chatgpt_ads_summary",
      "method": "GET",
      "path": "/api/dashboard/chatgpt-ads-summary",
      "summary": "ChatGPT Ads — 7-Day Summary",
      "readOnly": true
    },
    {
      "operationId": "get_chatgpt_ads_performance",
      "method": "GET",
      "path": "/api/chatgpt-performance",
      "summary": "ChatGPT Ads — Daily Performance",
      "readOnly": true
    },
    {
      "operationId": "get_chatgpt_campaign_insights",
      "method": "GET",
      "path": "/api/chatgpt-insights",
      "summary": "ChatGPT Ads — Campaign Insights",
      "readOnly": true
    },
    {
      "operationId": "get_chatgpt_ad_group_insights",
      "method": "GET",
      "path": "/api/chatgpt-insights",
      "summary": "ChatGPT Ads — Ad-Group Insights",
      "readOnly": true
    },
    {
      "operationId": "get_chatgpt_ad_insights",
      "method": "GET",
      "path": "/api/chatgpt-insights",
      "summary": "ChatGPT Ads — Ad Insights",
      "readOnly": true
    },
    {
      "operationId": "get_chatgpt_competitor_ad_summary",
      "method": "GET",
      "path": "/api/chatgpt-ads/competitor-summary",
      "summary": "ChatGPT Competitor Ads — Summary",
      "readOnly": true
    },
    {
      "operationId": "get_chatgpt_top_advertisers",
      "method": "GET",
      "path": "/api/chatgpt-ads/top-advertisers",
      "summary": "ChatGPT Competitor Ads — Top Advertisers",
      "readOnly": true
    },
    {
      "operationId": "get_chatgpt_competitor_ad_changes",
      "method": "GET",
      "path": "/api/chatgpt-ads/competitor-changes",
      "summary": "ChatGPT Competitor Ads — What Changed This Week",
      "readOnly": true
    },
    {
      "operationId": "get_chatgpt_ad_creatives",
      "method": "GET",
      "path": "/api/mcp/v1/chatgpt-ads/creatives",
      "summary": "ChatGPT Sponsored Ads — Raw Creatives",
      "readOnly": true
    },
    {
      "operationId": "get_google_ai_competitor_ad_summary",
      "method": "GET",
      "path": "/api/mcp/v1/chatgpt-ads/competitor-summary",
      "summary": "Google AI Mode Competitor Ads — Summary",
      "readOnly": true
    },
    {
      "operationId": "get_google_ai_top_advertisers",
      "method": "GET",
      "path": "/api/mcp/v1/chatgpt-ads/top-advertisers",
      "summary": "Google AI Mode Competitor Ads — Top Advertisers",
      "readOnly": true
    },
    {
      "operationId": "get_google_ai_competitor_ad_changes",
      "method": "GET",
      "path": "/api/mcp/v1/chatgpt-ads/competitor-changes",
      "summary": "Google AI Mode Competitor Ads — What Changed This Week",
      "readOnly": true
    },
    {
      "operationId": "get_google_ai_ad_creatives",
      "method": "GET",
      "path": "/api/mcp/v1/chatgpt-ads/creatives",
      "summary": "Google AI Mode Sponsored Ads — Raw Creatives",
      "readOnly": true
    },
    {
      "operationId": "plan_client_engagement",
      "method": "POST",
      "path": "/api/mcp/v1/client-portal/engagement-plan",
      "summary": "Plan Client Engagement",
      "readOnly": false
    },
    {
      "operationId": "apply_client_engagement_plan",
      "method": "PATCH",
      "path": "/api/mcp/v1/client-portal/engagement-plan",
      "summary": "Apply Client Engagement Plan",
      "readOnly": false
    },
    {
      "operationId": "get_client_engagement_plan",
      "method": "GET",
      "path": "/api/mcp/v1/client-portal/engagement-plan",
      "summary": "Get Client Engagement Plan",
      "readOnly": true
    },
    {
      "operationId": "get_client_portal_config",
      "method": "GET",
      "path": "/api/projects/{projectId}/client-portal",
      "summary": "Get Client Portal",
      "readOnly": true
    },
    {
      "operationId": "update_client_portal_config",
      "method": "PATCH",
      "path": "/api/mcp/v1/client-portal",
      "summary": "Update Client Portal",
      "readOnly": false
    },
    {
      "operationId": "share_portal_item",
      "method": "POST",
      "path": "/api/mcp/v1/client-portal/shared-items",
      "summary": "Share Portal Item",
      "readOnly": false
    },
    {
      "operationId": "unshare_portal_item",
      "method": "DELETE",
      "path": "/api/mcp/v1/client-portal/shared-items",
      "summary": "Unshare Portal Item",
      "readOnly": false
    },
    {
      "operationId": "list_client_portal_milestones",
      "method": "GET",
      "path": "/api/mcp/v1/client-portal/milestones",
      "summary": "List Client Portal Milestones",
      "readOnly": true
    },
    {
      "operationId": "set_client_portal_milestone_visibility",
      "method": "PATCH",
      "path": "/api/mcp/v1/client-portal/milestones",
      "summary": "Set Milestone Visibility",
      "readOnly": false
    },
    {
      "operationId": "list_content_radar_items",
      "method": "GET",
      "path": "/api/mcp/v1/content-radar",
      "summary": "List Content Radar Items",
      "readOnly": true
    },
    {
      "operationId": "get_content_radar_item",
      "method": "GET",
      "path": "/api/mcp/v1/content-radar",
      "summary": "Get Content Radar Item",
      "readOnly": true
    },
    {
      "operationId": "analyze_content_radar_item",
      "method": "POST",
      "path": "/api/mcp/v1/content-radar/analyze",
      "summary": "Analyze Content Radar Item",
      "readOnly": false
    },
    {
      "operationId": "scan_content_radar",
      "method": "POST",
      "path": "/api/mcp/v1/content-radar/scan",
      "summary": "Scan Content Radar",
      "readOnly": false
    },
    {
      "operationId": "import_content_inventory",
      "method": "POST",
      "path": "/api/mcp/v1/content-audit/inventory",
      "summary": "Import Content Inventory",
      "readOnly": false
    },
    {
      "operationId": "run_content_audit",
      "method": "POST",
      "path": "/api/mcp/v1/content-audit/runs",
      "summary": "Run Content Audit",
      "readOnly": false
    },
    {
      "operationId": "list_content_audit_findings",
      "method": "GET",
      "path": "/api/mcp/v1/content-audit/findings",
      "summary": "List Content Audit Findings",
      "readOnly": true
    },
    {
      "operationId": "generate_content_fix",
      "method": "POST",
      "path": "/api/mcp/v1/content-audit/fix",
      "summary": "Generate Content Fix",
      "readOnly": false
    },
    {
      "operationId": "apply_content_audit_brief",
      "method": "POST",
      "path": "/api/mcp/v1/content-audit/apply-brief",
      "summary": "Apply Content Audit Brief",
      "readOnly": false
    },
    {
      "operationId": "list_content_audit_scopes",
      "method": "GET",
      "path": "/api/mcp/v1/content-audit/scopes",
      "summary": "List Content Audit Scopes",
      "readOnly": true
    },
    {
      "operationId": "create_content_audit_scope",
      "method": "POST",
      "path": "/api/mcp/v1/content-audit/scopes",
      "summary": "Create Content Audit Scope",
      "readOnly": false
    },
    {
      "operationId": "generate_content",
      "method": "POST",
      "path": "/api/mcp/v1/content/generate",
      "summary": "Generate Content",
      "readOnly": false
    },
    {
      "operationId": "get_content_history",
      "method": "GET",
      "path": "/api/mcp/v1/content/history",
      "summary": "Get Content History",
      "readOnly": true
    },
    {
      "operationId": "get_content_details",
      "method": "GET",
      "path": "/api/mcp/v1/content/{contentId}",
      "summary": "Get Content Details",
      "readOnly": true
    },
    {
      "operationId": "edit_content",
      "method": "PATCH",
      "path": "/api/mcp/v1/content/{contentId}",
      "summary": "Edit Content",
      "readOnly": false
    },
    {
      "operationId": "edit_schema",
      "method": "PATCH",
      "path": "/api/mcp/v1/content/{contentId}/schema",
      "summary": "Edit Schema",
      "readOnly": false
    },
    {
      "operationId": "delete_content",
      "method": "DELETE",
      "path": "/api/mcp/v1/content/{contentId}",
      "summary": "Delete Content",
      "readOnly": false
    },
    {
      "operationId": "search_knowledge_base",
      "method": "GET",
      "path": "/api/mcp/v1/content/knowledge-base",
      "summary": "Search Knowledge Base",
      "readOnly": true
    },
    {
      "operationId": "get_content_suggestions",
      "method": "GET",
      "path": "/api/mcp/v1/content/suggestions",
      "summary": "Get Content Suggestions",
      "readOnly": true
    },
    {
      "operationId": "get_context_records",
      "method": "GET",
      "path": "/api/mcp/v1/projects/{projectId}/context-records",
      "summary": "get_context_records",
      "readOnly": false
    },
    {
      "operationId": "list_context_gaps",
      "method": "GET",
      "path": "/api/mcp/v1/projects/{projectId}/context-gaps",
      "summary": "list_context_gaps",
      "readOnly": false
    },
    {
      "operationId": "answer_context_gap",
      "method": "POST",
      "path": "/api/mcp/v1/projects/{projectId}/context-gaps",
      "summary": "answer_context_gap",
      "readOnly": false
    },
    {
      "operationId": "get_cro_dashboard",
      "method": "GET",
      "path": "/api/mcp/v1/cro",
      "summary": "Get Cro Dashboard",
      "readOnly": true
    },
    {
      "operationId": "list_conversion_goals",
      "method": "GET",
      "path": "/api/mcp/v1/cro/goals",
      "summary": "List Conversion Goals",
      "readOnly": true
    },
    {
      "operationId": "create_conversion_goal",
      "method": "POST",
      "path": "/api/mcp/v1/cro/goals",
      "summary": "Create Conversion Goal",
      "readOnly": false
    },
    {
      "operationId": "delete_conversion_goal",
      "method": "DELETE",
      "path": "/api/mcp/v1/cro/goals",
      "summary": "Delete Conversion Goal",
      "readOnly": false
    },
    {
      "operationId": "get_goal_conversions",
      "method": "GET",
      "path": "/api/mcp/v1/cro/goals/{goalId}/conversions",
      "summary": "Get Goal Conversions",
      "readOnly": true
    },
    {
      "operationId": "list_funnels",
      "method": "GET",
      "path": "/api/mcp/v1/cro/funnels",
      "summary": "List Funnels",
      "readOnly": true
    },
    {
      "operationId": "create_funnel",
      "method": "POST",
      "path": "/api/mcp/v1/cro/funnels",
      "summary": "Create Funnel",
      "readOnly": false
    },
    {
      "operationId": "delete_funnel",
      "method": "DELETE",
      "path": "/api/mcp/v1/cro/funnels",
      "summary": "Delete Funnel",
      "readOnly": false
    },
    {
      "operationId": "get_funnel_analysis",
      "method": "GET",
      "path": "/api/mcp/v1/cro/funnels/{funnelId}/analysis",
      "summary": "Get Funnel Analysis",
      "readOnly": true
    },
    {
      "operationId": "list_ab_tests",
      "method": "GET",
      "path": "/api/mcp/v1/cro/ab-tests",
      "summary": "List Ab Tests",
      "readOnly": true
    },
    {
      "operationId": "get_ab_test_results",
      "method": "GET",
      "path": "/api/mcp/v1/cro/ab-tests/{testId}/results",
      "summary": "Get Ab Test Results",
      "readOnly": true
    },
    {
      "operationId": "list_landing_pages",
      "method": "GET",
      "path": "/api/mcp/v1/cro/landing-pages",
      "summary": "List Landing Pages",
      "readOnly": true
    },
    {
      "operationId": "analyze_landing_page",
      "method": "POST",
      "path": "/api/mcp/v1/cro/landing-pages/analyze",
      "summary": "Analyze Landing Page",
      "readOnly": false
    },
    {
      "operationId": "get_cro_recommendations",
      "method": "GET",
      "path": "/api/mcp/v1/cro/recommendations",
      "summary": "Get Cro Recommendations",
      "readOnly": true
    },
    {
      "operationId": "list_cro_insights",
      "method": "GET",
      "path": "/api/mcp/v1/cro/insights",
      "summary": "List Cro Insights",
      "readOnly": true
    },
    {
      "operationId": "update_cro_insight",
      "method": "PATCH",
      "path": "/api/mcp/v1/cro/insights/{insightId}",
      "summary": "Update Cro Insight",
      "readOnly": false
    },
    {
      "operationId": "get_cro_strategy",
      "method": "GET",
      "path": "/api/mcp/v1/cro/strategy",
      "summary": "Get Cro Strategy",
      "readOnly": true
    },
    {
      "operationId": "create_cro_strategy",
      "method": "POST",
      "path": "/api/mcp/v1/cro/strategy",
      "summary": "Create Cro Strategy",
      "readOnly": false
    },
    {
      "operationId": "update_cro_strategy",
      "method": "PATCH",
      "path": "/api/mcp/v1/cro/strategy/{strategyId}",
      "summary": "Update Cro Strategy",
      "readOnly": false
    },
    {
      "operationId": "delete_cro_strategy",
      "method": "DELETE",
      "path": "/api/mcp/v1/cro/strategy/{strategyId}",
      "summary": "Delete Cro Strategy",
      "readOnly": false
    },
    {
      "operationId": "get_entity_authority",
      "method": "GET",
      "path": "/api/mcp/v1/entity",
      "summary": "Get Entity Authority",
      "readOnly": true
    },
    {
      "operationId": "list_repo_connections",
      "method": "GET",
      "path": "/api/mcp/v1/github/connections",
      "summary": "List GitHub repo connections",
      "readOnly": true
    },
    {
      "operationId": "propose_seo_fixes",
      "method": "POST",
      "path": "/api/mcp/v1/github/fixes",
      "summary": "Propose SEO/GEO fixes (read-only)",
      "readOnly": true
    },
    {
      "operationId": "open_seo_fix_pr",
      "method": "POST",
      "path": "/api/mcp/v1/github/fixes",
      "summary": "Open a SEO/GEO fix pull request",
      "readOnly": false
    },
    {
      "operationId": "list_indexing_connections",
      "method": "GET",
      "path": "/api/mcp/v1/indexing/connections",
      "summary": "List Indexing Connections",
      "readOnly": true
    },
    {
      "operationId": "create_indexing_connection",
      "method": "POST",
      "path": "/api/mcp/v1/indexing/connections",
      "summary": "Create Indexing Connection",
      "readOnly": false
    },
    {
      "operationId": "sync_indexing_connection",
      "method": "POST",
      "path": "/api/mcp/v1/indexing/connections/{connectionId}/sync",
      "summary": "Sync Indexing Connection",
      "readOnly": false
    },
    {
      "operationId": "get_optimization_report",
      "method": "GET",
      "path": "/api/mcp/v1/optimization/report",
      "summary": "Get Optimization Report",
      "readOnly": true
    },
    {
      "operationId": "scan_agent_readiness",
      "method": "GET",
      "path": "/api/mcp/v1/agent-readiness",
      "summary": "Scan Agent Readiness",
      "readOnly": true
    },
    {
      "operationId": "generate_llms_txt",
      "method": "POST",
      "path": "/api/mcp/v1/llms-txt/generate",
      "summary": "Generate Llms Txt",
      "readOnly": false
    },
    {
      "operationId": "translate_content",
      "method": "POST",
      "path": "/api/mcp/v1/content/translate",
      "summary": "Translate Content",
      "readOnly": false
    },
    {
      "operationId": "get_page_performance",
      "method": "GET",
      "path": "/api/mcp/v1/pages/detail",
      "summary": "Get Page Performance",
      "readOnly": true
    },
    {
      "operationId": "get_search_term_report",
      "method": "GET",
      "path": "/api/mcp/v1/paid-intelligence/search-terms",
      "summary": "Get Search Term Report",
      "readOnly": true
    },
    {
      "operationId": "add_negative_keywords",
      "method": "POST",
      "path": "/api/mcp/v1/paid-intelligence/negative-keywords",
      "summary": "Add Negative Keywords",
      "readOnly": false
    },
    {
      "operationId": "get_keyword_performance",
      "method": "GET",
      "path": "/api/mcp/v1/paid-intelligence/keyword-performance",
      "summary": "Get Keyword Performance",
      "readOnly": true
    },
    {
      "operationId": "get_ad_performance",
      "method": "GET",
      "path": "/api/mcp/v1/paid-intelligence/ad-performance",
      "summary": "Get Ad Performance",
      "readOnly": true
    },
    {
      "operationId": "set_campaign_bid",
      "method": "POST",
      "path": "/api/mcp/v1/paid-intelligence/bid-strategy",
      "summary": "Set Campaign Bid",
      "readOnly": false
    },
    {
      "operationId": "meta_get_audience_insights",
      "method": "GET",
      "path": "/api/mcp/v1/paid-intelligence/meta-audience-insights",
      "summary": "Meta Get Audience Insights",
      "readOnly": true
    },
    {
      "operationId": "meta_get_creative_performance",
      "method": "GET",
      "path": "/api/mcp/v1/paid-intelligence/meta-creative-performance",
      "summary": "Meta Get Creative Performance",
      "readOnly": true
    },
    {
      "operationId": "meta_set_campaign_status",
      "method": "POST",
      "path": "/api/mcp/v1/paid-intelligence/meta-campaign-status",
      "summary": "Meta Set Campaign Status",
      "readOnly": false
    },
    {
      "operationId": "get_performance_comparison",
      "method": "GET",
      "path": "/api/mcp/v1/paid-intelligence/performance-comparison",
      "summary": "Get Performance Comparison",
      "readOnly": true
    },
    {
      "operationId": "generate_ad_creative",
      "method": "POST",
      "path": "/api/mcp/v1/content/generate",
      "summary": "Generate Ad Creative",
      "readOnly": false
    },
    {
      "operationId": "list_ad_creatives",
      "method": "GET",
      "path": "/api/mcp/v1/content/history",
      "summary": "List Ad Creatives",
      "readOnly": true
    },
    {
      "operationId": "get_ad_creative",
      "method": "GET",
      "path": "/api/mcp/v1/content/{creativeId}",
      "summary": "Get Ad Creative",
      "readOnly": true
    },
    {
      "operationId": "delete_ad_creative",
      "method": "DELETE",
      "path": "/api/mcp/v1/content/{creativeId}",
      "summary": "Delete Ad Creative",
      "readOnly": false
    },
    {
      "operationId": "list_visibility_gaps",
      "method": "GET",
      "path": "/api/mcp/v1/visibility-gaps",
      "summary": "List Visibility Gaps",
      "readOnly": true
    },
    {
      "operationId": "get_visibility_gap",
      "method": "GET",
      "path": "/api/mcp/v1/visibility-gaps/{gapId}",
      "summary": "Get Visibility Gap",
      "readOnly": true
    },
    {
      "operationId": "create_gap_campaign_brief",
      "method": "POST",
      "path": "/api/mcp/v1/content/generate",
      "summary": "Create Gap Campaign Brief",
      "readOnly": false
    },
    {
      "operationId": "list_ad_campaigns",
      "method": "GET",
      "path": "/api/mcp/v1/content/history",
      "summary": "List Ad Campaigns",
      "readOnly": true
    },
    {
      "operationId": "get_ad_campaign",
      "method": "GET",
      "path": "/api/mcp/v1/content/{campaignId}",
      "summary": "Get Ad Campaign",
      "readOnly": true
    },
    {
      "operationId": "create_ad_campaign",
      "method": "POST",
      "path": "/api/mcp/v1/content/generate",
      "summary": "Create Ad Campaign",
      "readOnly": false
    },
    {
      "operationId": "list_ad_platform_connections",
      "method": "GET",
      "path": "/api/mcp/v1/social/connections",
      "summary": "List Ad Platform Connections",
      "readOnly": true
    },
    {
      "operationId": "get_visibility_lift",
      "method": "GET",
      "path": "/api/mcp/v1/analytics/citations",
      "summary": "Get Visibility Lift",
      "readOnly": true
    },
    {
      "operationId": "get_paid_intelligence_roi",
      "method": "GET",
      "path": "/api/mcp/v1/analytics/citations",
      "summary": "Get Paid Intelligence Roi",
      "readOnly": true
    },
    {
      "operationId": "meta_create_campaign",
      "method": "POST",
      "path": "/api/ad-campaigns",
      "summary": "Meta Create Campaign",
      "readOnly": false
    },
    {
      "operationId": "meta_get_campaign_insights",
      "method": "GET",
      "path": "/api/ad-campaigns/{campaignId}",
      "summary": "Meta Get Campaign Insights",
      "readOnly": true
    },
    {
      "operationId": "linkedin_create_campaign",
      "method": "POST",
      "path": "/api/ad-campaigns",
      "summary": "Linkedin Create Campaign",
      "readOnly": false
    },
    {
      "operationId": "linkedin_get_campaign_analytics",
      "method": "GET",
      "path": "/api/ad-campaigns/{campaignId}",
      "summary": "Linkedin Get Campaign Analytics",
      "readOnly": true
    },
    {
      "operationId": "twitter_create_campaign",
      "method": "POST",
      "path": "/api/ad-campaigns",
      "summary": "Twitter Create Campaign",
      "readOnly": false
    },
    {
      "operationId": "twitter_get_campaign_stats",
      "method": "GET",
      "path": "/api/ad-campaigns/{campaignId}",
      "summary": "Twitter Get Campaign Stats",
      "readOnly": true
    },
    {
      "operationId": "get_cross_platform_performance",
      "method": "GET",
      "path": "/api/paid-intelligence/performance-comparison",
      "summary": "Get Cross Platform Performance",
      "readOnly": true
    },
    {
      "operationId": "get_project_settings",
      "method": "GET",
      "path": "/api/mcp/v1/projects/{projectId}/settings",
      "summary": "Get Project Settings",
      "readOnly": true
    },
    {
      "operationId": "create_knowledge_document",
      "method": "POST",
      "path": "/api/mcp/v1/projects/{projectId}/knowledge-documents",
      "summary": "Create Knowledge Document",
      "readOnly": false
    },
    {
      "operationId": "update_project_settings",
      "method": "PATCH",
      "path": "/api/mcp/v1/projects/{projectId}/settings",
      "summary": "Update Project Settings",
      "readOnly": false
    },
    {
      "operationId": "list_projects",
      "method": "GET",
      "path": "/api/mcp/v1/projects",
      "summary": "List Projects",
      "readOnly": true
    },
    {
      "operationId": "create_project",
      "method": "POST",
      "path": "/api/projects",
      "summary": "Create Project",
      "readOnly": false
    },
    {
      "operationId": "set_active_project",
      "method": "GET",
      "path": "/api/mcp/v1/projects",
      "summary": "Set Active Project",
      "readOnly": false
    },
    {
      "operationId": "get_active_project",
      "method": "GET",
      "path": "/api/mcp/v1/projects",
      "summary": "Get Active Project",
      "readOnly": true
    },
    {
      "operationId": "list_prompt_topics",
      "method": "GET",
      "path": "/api/mcp/v1/prompts",
      "summary": "List Prompt Topics",
      "readOnly": true
    },
    {
      "operationId": "create_prompt_topic",
      "method": "POST",
      "path": "/api/mcp/v1/prompts",
      "summary": "Create Prompt Topic",
      "readOnly": false
    },
    {
      "operationId": "add_prompts_to_topic",
      "method": "PATCH",
      "path": "/api/mcp/v1/prompts/{topicId}",
      "summary": "Add Prompts To Topic",
      "readOnly": false
    },
    {
      "operationId": "delete_prompt",
      "method": "DELETE",
      "path": "/api/mcp/v1/prompts/{topicId}",
      "summary": "Delete Prompt",
      "readOnly": false
    },
    {
      "operationId": "update_prompt",
      "method": "PUT",
      "path": "/api/mcp/v1/prompts/{topicId}",
      "summary": "Update Prompt",
      "readOnly": false
    },
    {
      "operationId": "update_prompt_topic",
      "method": "PUT",
      "path": "/api/mcp/v1/prompts/{topicId}",
      "summary": "Update Prompt Topic",
      "readOnly": false
    },
    {
      "operationId": "delete_prompt_topic",
      "method": "DELETE",
      "path": "/api/mcp/v1/prompts/{topicId}",
      "summary": "Delete Prompt Topic",
      "readOnly": false
    },
    {
      "operationId": "track_prompt",
      "method": "POST",
      "path": "/api/mcp/v1/prompts/track",
      "summary": "Track Prompt",
      "readOnly": false
    },
    {
      "operationId": "get_prompt_analytics",
      "method": "GET",
      "path": "/api/mcp/v1/prompts/analytics",
      "summary": "Get Prompt Analytics",
      "readOnly": true
    },
    {
      "operationId": "generate_prompt_suggestions",
      "method": "GET",
      "path": "/api/mcp/v1/prompts/suggestions",
      "summary": "Generate Prompt Suggestions",
      "readOnly": true
    },
    {
      "operationId": "generate_prompt_research",
      "method": "POST",
      "path": "/api/mcp/v1/prompts/research",
      "summary": "Generate Prompt Research",
      "readOnly": true
    },
    {
      "operationId": "list_prompt_research_sessions",
      "method": "GET",
      "path": "/api/mcp/v1/prompts/research",
      "summary": "List Prompt Research Sessions",
      "readOnly": true
    },
    {
      "operationId": "get_prompt_research",
      "method": "GET",
      "path": "/api/mcp/v1/prompts/research",
      "summary": "Get Prompt Research",
      "readOnly": true
    },
    {
      "operationId": "list_wordpress_connections",
      "method": "GET",
      "path": "/api/mcp/v1/wordpress/connections",
      "summary": "List Wordpress Connections",
      "readOnly": true
    },
    {
      "operationId": "publish_to_wordpress",
      "method": "POST",
      "path": "/api/mcp/v1/wordpress/publish",
      "summary": "Publish To Wordpress",
      "readOnly": false
    },
    {
      "operationId": "list_react_connections",
      "method": "GET",
      "path": "/api/mcp/v1/react/connections",
      "summary": "List React Connections",
      "readOnly": true
    },
    {
      "operationId": "publish_to_react",
      "method": "POST",
      "path": "/api/mcp/v1/react/publish",
      "summary": "Publish To React",
      "readOnly": false
    },
    {
      "operationId": "list_reddit_monitors",
      "method": "GET",
      "path": "/api/mcp/v1/reddit",
      "summary": "List Reddit Monitors",
      "readOnly": true
    },
    {
      "operationId": "get_reddit_leads",
      "method": "GET",
      "path": "/api/mcp/v1/reddit",
      "summary": "Get Reddit Leads",
      "readOnly": true
    },
    {
      "operationId": "update_reddit_lead",
      "method": "PATCH",
      "path": "/api/mcp/v1/reddit",
      "summary": "Update Reddit Lead",
      "readOnly": false
    },
    {
      "operationId": "get_reddit_opportunities",
      "method": "GET",
      "path": "/api/mcp/v1/reddit",
      "summary": "Get Reddit Opportunities",
      "readOnly": true
    },
    {
      "operationId": "update_reddit_opportunity",
      "method": "PATCH",
      "path": "/api/mcp/v1/reddit",
      "summary": "Update Reddit Opportunity",
      "readOnly": false
    },
    {
      "operationId": "discover_subreddits",
      "method": "POST",
      "path": "/api/mcp/v1/reddit",
      "summary": "Discover Subreddits",
      "readOnly": true
    },
    {
      "operationId": "run_subreddit_discovery",
      "method": "POST",
      "path": "/api/mcp/v1/reddit",
      "summary": "Run Subreddit Discovery",
      "readOnly": false
    },
    {
      "operationId": "generate_reddit_opportunities",
      "method": "POST",
      "path": "/api/mcp/v1/reddit",
      "summary": "Generate Reddit Opportunities",
      "readOnly": false
    },
    {
      "operationId": "list_reports",
      "method": "GET",
      "path": "/api/mcp/v1/reports",
      "summary": "List Reports",
      "readOnly": true
    },
    {
      "operationId": "create_report",
      "method": "POST",
      "path": "/api/mcp/v1/reports",
      "summary": "Create Report",
      "readOnly": false
    },
    {
      "operationId": "get_report",
      "method": "GET",
      "path": "/api/mcp/v1/reports/{reportId}",
      "summary": "Get Report",
      "readOnly": true
    },
    {
      "operationId": "delete_report",
      "method": "DELETE",
      "path": "/api/mcp/v1/reports/{reportId}",
      "summary": "Delete Report",
      "readOnly": false
    },
    {
      "operationId": "generate_client_visibility_report",
      "method": "GET",
      "path": "/api/mcp/v1/reports/client-visibility",
      "summary": "Generate Client Visibility Report",
      "readOnly": true
    },
    {
      "operationId": "get_seo_alerts",
      "method": "GET",
      "path": "/api/mcp/v1/alerts",
      "summary": "Get Seo Alerts",
      "readOnly": true
    },
    {
      "operationId": "get_shopping_visibility",
      "method": "GET",
      "path": "/api/mcp/v1/shopping-visibility",
      "summary": "Get Shopping AI Visibility",
      "readOnly": true
    },
    {
      "operationId": "list_skills",
      "method": "GET",
      "path": "/api/mcp/v1/skills",
      "summary": "List Skills",
      "readOnly": true
    },
    {
      "operationId": "list_content_opportunities",
      "method": "GET",
      "path": "/api/mcp/v1/social/opportunities",
      "summary": "List Content Opportunities",
      "readOnly": true
    },
    {
      "operationId": "create_social_campaign",
      "method": "POST",
      "path": "/api/mcp/v1/social/campaigns",
      "summary": "Create Social Campaign",
      "readOnly": false
    },
    {
      "operationId": "approve_social_campaign",
      "method": "POST",
      "path": "/api/mcp/v1/social/campaigns/approve",
      "summary": "Approve Social Campaign",
      "readOnly": false
    },
    {
      "operationId": "list_social_mentions",
      "method": "GET",
      "path": "/api/mcp/v1/social-listening",
      "summary": "List Social Mentions",
      "readOnly": true
    },
    {
      "operationId": "list_social_keywords",
      "method": "GET",
      "path": "/api/mcp/v1/social-listening",
      "summary": "List Social Keywords",
      "readOnly": true
    },
    {
      "operationId": "scan_social_keywords",
      "method": "POST",
      "path": "/api/mcp/v1/social-listening",
      "summary": "Scan Social Keywords",
      "readOnly": false
    },
    {
      "operationId": "add_social_keyword",
      "method": "POST",
      "path": "/api/mcp/v1/social-listening",
      "summary": "Add Social Keyword",
      "readOnly": false
    },
    {
      "operationId": "list_social_connections",
      "method": "GET",
      "path": "/api/mcp/v1/social/connections",
      "summary": "List Social Connections",
      "readOnly": true
    },
    {
      "operationId": "list_social_posts",
      "method": "GET",
      "path": "/api/mcp/v1/social/posts",
      "summary": "List Social Posts",
      "readOnly": true
    },
    {
      "operationId": "generate_social_posts",
      "method": "POST",
      "path": "/api/mcp/v1/social/generate",
      "summary": "Generate Social Posts",
      "readOnly": false
    },
    {
      "operationId": "publish_social_post",
      "method": "POST",
      "path": "/api/mcp/v1/social/publish",
      "summary": "Publish Social Post",
      "readOnly": false
    },
    {
      "operationId": "bulk_schedule_social_posts",
      "method": "POST",
      "path": "/api/mcp/v1/social/bulk-import",
      "summary": "Bulk Schedule Social Posts",
      "readOnly": false
    },
    {
      "operationId": "generate_social_video",
      "method": "POST",
      "path": "/api/mcp/v1/social/generate-video",
      "summary": "Generate Social Video",
      "readOnly": false
    },
    {
      "operationId": "schedule_social_post",
      "method": "POST",
      "path": "/api/mcp/v1/social/schedule",
      "summary": "Schedule Social Post",
      "readOnly": false
    },
    {
      "operationId": "update_social_post",
      "method": "PATCH",
      "path": "/api/mcp/v1/social/posts",
      "summary": "Update Social Post",
      "readOnly": false
    },
    {
      "operationId": "delete_social_post",
      "method": "DELETE",
      "path": "/api/mcp/v1/social/posts",
      "summary": "Delete Social Post",
      "readOnly": false
    },
    {
      "operationId": "cross_post_to_social",
      "method": "POST",
      "path": "/api/mcp/v1/social/cross-post",
      "summary": "Cross Post To Social",
      "readOnly": false
    },
    {
      "operationId": "generate_social_text",
      "method": "POST",
      "path": "/api/mcp/v1/social/generate-text",
      "summary": "Generate Social Text",
      "readOnly": false
    },
    {
      "operationId": "generate_social_image",
      "method": "POST",
      "path": "/api/mcp/v1/social/generate-image",
      "summary": "Generate Social Image",
      "readOnly": false
    },
    {
      "operationId": "get_social_grounding",
      "method": "GET",
      "path": "/api/mcp/v1/social/grounding",
      "summary": "Get Social Grounding",
      "readOnly": true
    },
    {
      "operationId": "list_brand_references",
      "method": "GET",
      "path": "/api/mcp/v1/social/brand-references",
      "summary": "List Brand References",
      "readOnly": true
    },
    {
      "operationId": "add_brand_references",
      "method": "POST",
      "path": "/api/mcp/v1/social/brand-references",
      "summary": "Add Brand References",
      "readOnly": false
    },
    {
      "operationId": "get_social_analytics",
      "method": "GET",
      "path": "/api/mcp/v1/social/analytics",
      "summary": "Get Social Analytics",
      "readOnly": true
    },
    {
      "operationId": "audit_social_posts",
      "method": "GET",
      "path": "/api/mcp/v1/social/analytics/audit",
      "summary": "Audit Social Posts",
      "readOnly": true
    },
    {
      "operationId": "get_social_post_impact",
      "method": "GET",
      "path": "/api/mcp/v1/social/analytics/impact",
      "summary": "Get Social Post Impact",
      "readOnly": true
    },
    {
      "operationId": "list_posting_sets",
      "method": "GET",
      "path": "/api/mcp/v1/social/posting-sets",
      "summary": "List Posting Sets",
      "readOnly": true
    },
    {
      "operationId": "list_project_hashtags",
      "method": "GET",
      "path": "/api/mcp/v1/social/hashtags",
      "summary": "List Project Hashtags",
      "readOnly": true
    },
    {
      "operationId": "upsert_project_hashtag",
      "method": "POST",
      "path": "/api/mcp/v1/social/hashtags",
      "summary": "Upsert Project Hashtag",
      "readOnly": false
    },
    {
      "operationId": "delete_project_hashtag",
      "method": "DELETE",
      "path": "/api/mcp/v1/social/hashtags",
      "summary": "Delete Project Hashtag",
      "readOnly": false
    },
    {
      "operationId": "list_hashtag_sets",
      "method": "GET",
      "path": "/api/mcp/v1/social/hashtag-sets",
      "summary": "List Hashtag Sets",
      "readOnly": true
    },
    {
      "operationId": "upsert_hashtag_set",
      "method": "POST",
      "path": "/api/mcp/v1/social/hashtag-sets",
      "summary": "Upsert Hashtag Set",
      "readOnly": false
    },
    {
      "operationId": "get_citation_sources",
      "method": "GET",
      "path": "/api/mcp/v1/sources",
      "summary": "Get Citation Sources",
      "readOnly": true
    },
    {
      "operationId": "get_citing_prompts",
      "method": "GET",
      "path": "/api/mcp/v1/sources/citing-prompts",
      "summary": "Get Prompts Citing a URL",
      "readOnly": true
    },
    {
      "operationId": "extract_author_info",
      "method": "POST",
      "path": "/api/mcp/v1/sources/extract-author",
      "summary": "Extract Author Info",
      "readOnly": true
    },
    {
      "operationId": "list_outreach_opportunities",
      "method": "GET",
      "path": "/api/mcp/v1/outreach",
      "summary": "List Outreach Opportunities",
      "readOnly": true
    },
    {
      "operationId": "create_outreach_opportunity",
      "method": "POST",
      "path": "/api/mcp/v1/outreach",
      "summary": "Create Outreach Opportunity",
      "readOnly": false
    },
    {
      "operationId": "draft_reddit_reply",
      "method": "POST",
      "path": "/api/mcp/v1/sources/draft-reddit-reply",
      "summary": "Draft Reddit Reply",
      "readOnly": false
    },
    {
      "operationId": "get_citation_decay",
      "method": "GET",
      "path": "/api/mcp/v1/sources/decay",
      "summary": "Get Citation Decay",
      "readOnly": true
    },
    {
      "operationId": "get_youtube_citation_breakdown",
      "method": "GET",
      "path": "/api/mcp/v1/sources/youtube",
      "summary": "Get YouTube Citation Breakdown",
      "readOnly": true
    },
    {
      "operationId": "generate_strategy_step",
      "method": "POST",
      "path": "/api/mcp/v1/strategies/{strategyId}/generate",
      "summary": "Generate Strategy Step",
      "readOnly": false
    },
    {
      "operationId": "get_strategy_step_output",
      "method": "GET",
      "path": "/api/mcp/v1/strategies/{strategyId}/steps",
      "summary": "Get Strategy Step Output",
      "readOnly": true
    },
    {
      "operationId": "edit_strategy_step",
      "method": "PATCH",
      "path": "/api/mcp/v1/strategies/{strategyId}/steps",
      "summary": "Edit Strategy Step",
      "readOnly": false
    },
    {
      "operationId": "get_strategy_step_map",
      "method": "GET",
      "path": "/api/mcp/v1/strategies",
      "summary": "Get Strategy Step Map",
      "readOnly": true
    },
    {
      "operationId": "list_strategies",
      "method": "GET",
      "path": "/api/mcp/v1/strategies",
      "summary": "List Strategies",
      "readOnly": true
    },
    {
      "operationId": "get_strategy_details",
      "method": "GET",
      "path": "/api/mcp/v1/strategies/{strategyId}",
      "summary": "Get Strategy Details",
      "readOnly": true
    },
    {
      "operationId": "create_strategy",
      "method": "POST",
      "path": "/api/mcp/v1/strategies",
      "summary": "Create Strategy",
      "readOnly": false
    },
    {
      "operationId": "get_strategy_content_items",
      "method": "GET",
      "path": "/api/mcp/v1/strategies/{strategyId}/content-items",
      "summary": "Get Strategy Content Items",
      "readOnly": true
    },
    {
      "operationId": "update_content_item_status",
      "method": "PATCH",
      "path": "/api/mcp/v1/strategies/{strategyId}/content-items",
      "summary": "Update Content Item Status",
      "readOnly": false
    },
    {
      "operationId": "list_models",
      "method": "GET",
      "path": "/api/mcp/v1/taxonomy",
      "summary": "List AI Engines",
      "readOnly": true
    },
    {
      "operationId": "list_regions",
      "method": "GET",
      "path": "/api/mcp/v1/taxonomy",
      "summary": "List Regions",
      "readOnly": true
    },
    {
      "operationId": "list_domains",
      "method": "GET",
      "path": "/api/mcp/v1/taxonomy",
      "summary": "List Domains",
      "readOnly": true
    },
    {
      "operationId": "list_categories",
      "method": "GET",
      "path": "/api/mcp/v1/taxonomy",
      "summary": "List Categories",
      "readOnly": true
    },
    {
      "operationId": "list_tags",
      "method": "GET",
      "path": "/api/mcp/v1/taxonomy",
      "summary": "List Tags",
      "readOnly": true
    },
    {
      "operationId": "get_cloudflare_analytics",
      "method": "GET",
      "path": "/api/mcp/v1/tracking/cloudflare",
      "summary": "Cloudflare Analytics (AUTHORITATIVE bot crawl source)",
      "readOnly": true
    },
    {
      "operationId": "get_google_click_surface",
      "method": "GET",
      "path": "/api/mcp/v1/tracking/click-surface",
      "summary": "Google Click Surface (probable AI Overview traffic)",
      "readOnly": true
    },
    {
      "operationId": "get_ai_referral_performance",
      "method": "GET",
      "path": "/api/mcp/v1/tracking/cloudflare",
      "summary": "Get Ai Referral Performance",
      "readOnly": true
    },
    {
      "operationId": "get_page_citations",
      "method": "GET",
      "path": "/api/mcp/v1/tracking/wordpress",
      "summary": "Get Page Citations",
      "readOnly": true
    },
    {
      "operationId": "get_webflow_tracking",
      "method": "GET",
      "path": "/api/mcp/v1/tracking/webflow",
      "summary": "Get Webflow Tracking",
      "readOnly": true
    },
    {
      "operationId": "get_wix_tracking",
      "method": "GET",
      "path": "/api/mcp/v1/tracking/wix",
      "summary": "Get Wix Tracking",
      "readOnly": true
    },
    {
      "operationId": "get_token_usage",
      "method": "GET",
      "path": "/api/mcp/v1/usage/tokens",
      "summary": "Get Token Usage",
      "readOnly": true
    },
    {
      "operationId": "get_budget_status",
      "method": "GET",
      "path": "/api/mcp/v1/usage/budget",
      "summary": "Get Budget Status",
      "readOnly": true
    },
    {
      "operationId": "set_budget_limits",
      "method": "PUT",
      "path": "/api/mcp/v1/usage/budget",
      "summary": "Set Budget Limits",
      "readOnly": false
    },
    {
      "operationId": "get_visibility_score",
      "method": "GET",
      "path": "/api/mcp/v1/visibility/score",
      "summary": "Get Visibility Score",
      "readOnly": true
    },
    {
      "operationId": "get_brand_mentions",
      "method": "GET",
      "path": "/api/mcp/v1/visibility/mentions",
      "summary": "Get Brand Mentions",
      "readOnly": true
    },
    {
      "operationId": "get_ai_responses",
      "method": "GET",
      "path": "/api/mcp/v1/visibility/responses",
      "summary": "Get Raw AI Responses",
      "readOnly": true
    },
    {
      "operationId": "get_competitor_comparison",
      "method": "GET",
      "path": "/api/mcp/v1/visibility/competitors",
      "summary": "Get Competitor Comparison",
      "readOnly": true
    },
    {
      "operationId": "get_brand_alignment",
      "method": "GET",
      "path": "/api/mcp/v1/visibility/brand-alignment",
      "summary": "Get Brand Alignment",
      "readOnly": true
    },
    {
      "operationId": "get_brand_fact_check",
      "method": "GET",
      "path": "/api/mcp/v1/visibility/fact-check",
      "summary": "Get Brand Fact Check",
      "readOnly": true
    },
    {
      "operationId": "get_sentiment_report",
      "method": "GET",
      "path": "/api/mcp/v1/visibility/sentiment",
      "summary": "Get Sentiment Report",
      "readOnly": true
    },
    {
      "operationId": "get_sentiment_themes",
      "method": "GET",
      "path": "/api/mcp/v1/sentiment/themes",
      "summary": "Get Sentiment Themes",
      "readOnly": true
    },
    {
      "operationId": "get_performance_matrix",
      "method": "GET",
      "path": "/api/mcp/v1/analytics/performance-matrix",
      "summary": "Get Performance Matrix",
      "readOnly": true
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "rau_*",
        "description": "Reaudit MCP API key from Dashboard → Settings → MCP API Keys. Prefix `rau_`. Read-only keys hide mutating operations."
      },
      "OAuth2": {
        "type": "oauth2",
        "description": "OAuth 2.0 authorization code + PKCE (recommended for Muse directory connectors).",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://reaudit.io/api/oauth/authorize",
            "tokenUrl": "https://reaudit.io/api/oauth/token",
            "scopes": {
              "full_access": "Full access to Reaudit MCP REST API on behalf of the user"
            }
          }
        }
      }
    },
    "schemas": {
      "ApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "description": "Response payload when success is true"
          },
          "error": {
            "type": "string",
            "description": "Error code when success is false"
          },
          "error_description": {
            "type": "string"
          }
        },
        "required": [
          "success"
        ]
      }
    }
  }
}
