generated: '2026-08-13' method: derived source: >- mcp/airops-mcp.yml + https://docs.airops.com/developers/tools.md bound against openapi/airops-api-openapi.yml note: >- The AirOps MCP server and the AirOps REST API are overlapping but NON-IDENTICAL projections of the same workspace core. The REST API is execution-first (run Workflows/Apps, poll executions, manage Memory Stores) plus a read-oriented Insights/Brand Kit surface; MCP is authoring-first (mutate Brand Kits, create prompts and tags, read and write Grids, ingest Knowledge Base documents). Live tools/list introspection is OAuth-gated (HTTP 401 "Invalid or missing access token" on 2026-08-13), so tools are bound by documented name + semantics rather than by fetched inputSchema; confidence is recorded honestly per row. Where a row is bound high, the backing operation's parameters + requestBody in the OpenAPI ARE the tool's real input contract. surfaces: openapi: file: openapi/airops-api-openapi.yml source: https://api.airops.com/public_api/openapi.yaml operations: 42 gated: false mcp: url: https://app.airops.com/mcp docs: https://docs.airops.com/developers/tools tools_documented: 76 gated: true gate_evidence: 'POST tools/list -> HTTP 401 {"error":"Invalid or missing access token"}' graphql: present: false coverage: tools_documented: 76 tools_bound_to_rest: 20 mcp_only: 56 rest_operations_total: 42 rest_operations_with_tool: 20 rest_only: 22 crosswalk: - tool: list_brand_kits category: Brand Kits rest: [listBrandKits] binding: rest confidence: high note: POST /public_api/brand_kits/list — same list+filter contract. - tool: get_brand_kit category: Brand Kits rest: [getBrandKit] binding: rest confidence: high - tool: get_insights_settings category: Brand Kits rest: [getBrandKit] binding: rest confidence: medium note: >- MCP splits the Brand Kit read into a brand-management view and an AEO-settings view; REST exposes one getBrandKit with include options. - tool: list_topics category: Topics rest: [listBrandKitsTopics] binding: rest confidence: high - tool: list_personas category: Personas rest: [listBrandKitsPersonas] binding: rest confidence: high - tool: list_tags category: Tags rest: [listBrandKitsTags] binding: rest confidence: high - tool: list_aeo_prompts category: AEO Prompts rest: [listBrandKitsPrompts] binding: rest confidence: high - tool: list_aeo_citations category: Citations rest: [listBrandKitsCitations] binding: rest confidence: high - tool: get_aeo_citation category: Citations rest: [getBrandKitsCitation] binding: rest confidence: high note: REST models the single-citation read as POST .../citations/show. - tool: list_answers category: Answers rest: [listBrandKitsAnswers] binding: rest confidence: high - tool: get_answer category: Answers rest: [getBrandKitsAnswer] binding: rest confidence: high - tool: get_prompt_answers category: Answers rest: [listBrandKitsAnswers] binding: rest confidence: medium note: Expressed in REST as an answers list filtered by prompt. - tool: query_analytics category: Analytics rest: [getBrandKitsAnalytic] binding: rest confidence: high note: >- POST .../analytics — metrics/dimensions/grain/date-range body. Documented caps apply to both surfaces (max 3 dimensions, 1,000 rows). - tool: get_sentiment_theme_answers category: Analytics rest: [getBrandKitsSentimentThemeAnswer] binding: rest confidence: high - tool: list_pages category: Page Analytics rest: [listBrandKitsWebPages] binding: rest confidence: high note: REST Web Pages combines AEO + Google Search Console + GA4 per URL. - tool: get_page_details category: Page Analytics rest: [listBrandKitsWebPages] binding: rest confidence: medium note: No single-web-page GET in the spec; modelled as a filtered list. - tool: get_page_prompts category: Page Analytics rest: [listBrandKitsPrompts, listBrandKitsWebPages] binding: rest confidence: low note: Composite — no REST operation returns prompts scoped to a page. - tool: search_knowledge_base category: Knowledge Bases rest: [searchMemoryStore] binding: rest confidence: high note: >- "Knowledge Base" (product name) and "Memory Store" / vector_stores (API path) are the same resource under two names. - tool: knowledge_base_add_file category: Knowledge Bases rest: [addDocumentToMemoryStore, workspaceFileUpload] binding: rest confidence: medium - tool: knowledge_base_update_document_metadata category: Knowledge Bases rest: [updateDocumentInMemoryStore] binding: rest confidence: high - tool: knowledge_base_delete_document category: Knowledge Bases rest: [deleteDocumentFromMemoryStore] binding: rest confidence: high mcp_only: - tool: list_workspaces reason: No public REST operation lists workspaces. - tool: update_brand_kit reason: Brand Kit mutation is MCP/UI only; REST Brand Kit surface is read-only. - tool: publish_brand_kit reason: No REST publish operation. - tool: create_brand_kit_recap_entry reason: No REST equivalent. - tool: suggest_brand_kit_edits reason: Server-side AI composite with no REST backing. - tool: create_topic reason: REST Topics surface is list/get only. - tool: update_topic reason: REST Topics surface is list/get only. - tool: delete_topic reason: REST Topics surface is list/get only. - tool: manage_brand_kit_product_line reason: Brand Kit entity mutation — MCP only. - tool: manage_brand_kit_competitor reason: REST Competitors surface is list/get only. - tool: manage_brand_kit_audience reason: Brand Kit entity mutation — MCP only. - tool: manage_brand_kit_region reason: Brand Kit entity mutation — MCP only. - tool: manage_brand_kit_content_type reason: Brand Kit entity mutation — MCP only. - tool: manage_brand_kit_content_sample reason: Brand Kit entity mutation — MCP only. - tool: manage_brand_kit_writing_rule reason: Brand Kit entity mutation — MCP only. - tool: manage_brand_kit_custom_variable reason: Brand Kit entity mutation — MCP only. - tool: create_brand_kit_direct_upload reason: Brand-asset direct upload — MCP only. - tool: manage_brand_kit_palette reason: Visual-identity mutation — MCP only. - tool: manage_brand_kit_palette_color reason: Visual-identity mutation — MCP only. - tool: manage_brand_kit_logo_variant reason: Visual-identity mutation — MCP only. - tool: manage_brand_kit_logo_size reason: Visual-identity mutation — MCP only. - tool: manage_brand_kit_font reason: Visual-identity mutation — MCP only. - tool: manage_brand_kit_type_size reason: Visual-identity mutation — MCP only. - tool: manage_brand_kit_usage_rule reason: Visual-identity mutation — MCP only. - tool: manage_brand_kit_visual_use_case reason: Visual-identity mutation — MCP only. - tool: manage_brand_kit_visual_example reason: Visual-identity mutation — MCP only. - tool: create_aeo_prompt reason: REST Prompts surface is list/get only. - tool: create_aeo_persona reason: REST Personas surface is list/get only. - tool: add_aeo_region reason: No REST operation adds a tracked region. - tool: create_aeo_tag reason: REST Tags surface is list/get only. - tool: update_aeo_tag reason: REST Tags surface is list/get only. - tool: delete_aeo_tag reason: REST Tags surface is list/get only. - tool: bulk_update_aeo_prompt_tags reason: Bulk tag mutation — MCP only. - tool: update_aeo_prompt_assignments reason: Staged prompt-assignment workflow — MCP only. - tool: get_aeo_prompt_assignments_status reason: Staged prompt-assignment workflow — MCP only. - tool: commit_aeo_prompt_assignments reason: Staged prompt-assignment workflow — MCP only. - tool: discard_aeo_prompt_assignments reason: Staged prompt-assignment workflow — MCP only. - tool: add_to_all_prompts reason: Bulk prompt-assignment helper — MCP only. - tool: list_aeo_domains reason: No REST operation lists citing domains; REST exposes citations only. - tool: analytics_chart reason: Rendering/visualization helper with no REST backing. - tool: list_reports reason: No REST Reports surface in the published OpenAPI. - tool: get_report reason: No REST Reports surface in the published OpenAPI. - tool: create_grid reason: >- REST Grids surface covers CSV generate/download only; Grid creation and cell I/O are MCP only. - tool: create_grid_sheet reason: Grid authoring — MCP only. - tool: list_grids reason: No REST operation lists Grids. - tool: read_grid reason: REST Grids exposes CSV export, not row reads. - tool: read_grid_cell reason: REST Grids exposes CSV export, not cell reads. - tool: write_grid reason: REST Grids has no write operation. - tool: add_grid_column reason: REST Grids has no schema-mutation operation. - tool: list_knowledge_bases reason: No REST operation lists vector stores. - tool: knowledge_base_manage reason: Create/update of a Knowledge Base has no REST operation. - tool: knowledge_base_create_direct_upload reason: Direct-upload handshake — MCP only. - tool: knowledge_base_add_urls reason: URL ingestion has no REST operation. - tool: knowledge_base_get_status reason: Ingestion status has no REST operation. - tool: knowledge_base_get_document reason: Single-document read has no REST operation. - tool: knowledge_base_delete reason: Vector-store deletion has no REST operation. rest_only: - capability: Workflow / App execution reason: >- The entire execution surface — the original AirOps API — has no MCP tool. Agents can read and author workspace context over MCP but cannot run a published Workflow/App through it. operations: - executeApp - asyncExecuteApp - WebhookAsyncExecuteApp - getExecution - getApp - POST /public_api/airops_apps/executions/{execution_uuid}/retry - PATCH /public_api/airops_apps/executions/{execution_uuid}/cancel - PATCH /public_api/airops_apps/executions/{execution_uuid}/feedback - GET /public_api/airops_apps - GET /public_api/airops_apps/:airops_app_id/executions - capability: Agent chat reason: Conversational agent endpoints are REST only. operations: [chatWithAgent, asyncChatWithAgent] - capability: Grid CSV export reason: >- REST exposes CSV generate/download; MCP exposes structured row/cell access. Neither surface is a superset of the other for Grids. operations: - POST /public_api/grids/{grid_id}/sheets/{sheet_id}/generate_csv - GET /public_api/grids/{grid_id}/sheets/{sheet_id}/download_csv/latest - capability: Content Updates reason: >- Content-update tracking (create/list/get/delete) is published in the OpenAPI with no corresponding MCP tool. operations: - listBrandKitsContentUpdates - createBrandKitsContentUpdates - getBrandKitsContentUpdate - destroyBrandKitsContentUpdates - capability: Reference reads by id reason: Single-record GETs with no dedicated MCP tool. operations: - getBrandKitsPrompt - getBrandKitsTopic - getBrandKitsPersona - getBrandKitsCompetitor - getBrandKitsTag - capability: Competitor listing reason: REST-only read; MCP exposes competitor mutation, not a list tool. operations: [listBrandKitsCompetitors] - capability: Workspace file upload reason: Generic file upload used by execution inputs. operations: [workspaceFileUpload]