# AirOps MCP connector

The AirOps connector lets Claude, ChatGPT, Cursor and other MCP clients run your AirOps workflows, grids, agents and brand kits through one governed endpoint, with each person signed in as themselves and every run logged.

Source: https://elaichi.ai/connectors/airops/

## Facts

| | |
| --- | --- |
| Application | AirOps |
| Category | Artificial Intelligence |
| AI tools | 43 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 43 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once AirOps is connected

- Which AirOps apps ran the most executions last week?
- Summarize yesterday's failed executions and what each app was doing.
- Run our blog brief app on these three uploaded files.

## Connect AirOps in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick AirOps.
2. Optionally set Share with, then press Connect.
3. Paste an AirOps API key. One person generates a token in AirOps and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which AirOps tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect AirOps to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect AirOps to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect AirOps to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect AirOps to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a AirOps tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with AirOps through Elaichi

### Run a content workflow from a chat

Content. Ask for a draft, a rewrite or a brief and have the right AirOps app run with your inputs. Check the result, rate it, and rerun it if the first pass missed the mark.

### Generate a grid of pages and pull the CSV

SEO. Kick off a grid run for a batch of keywords or product pages, then download the latest CSV straight into the conversation to review before anything ships.

### Keep the brand kit in front of every draft

Marketing. Look up a brand kit, its prompts and its analytics before a campaign, so copy produced elsewhere still matches the voice AirOps already knows.

### Watch, retry and cancel long runs

Operations. See which executions are still running, retry the ones that failed overnight, and cancel a job that was started with the wrong inputs.

### Talk to an AirOps agent with live context

Growth. Chat with an agent app you have already built in AirOps, passing along the customer or campaign details from the rest of your conversation.

### Feed research into a memory store

Content. Upload a file or add a document to a memory store so the next workflow run has the latest product sheet, interview notes or style guide to work from.

## Frequently asked questions

### How do I connect AirOps to Claude?

Connect AirOps in Elaichi by pasting the API key from your AirOps workspace. There is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp as the endpoint. Sign in to Elaichi when Claude asks and AirOps is ready to use.

### Does AirOps work with ChatGPT and Cursor as well as Claude?

Yes. Once AirOps is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect AirOps once and every client picks it up.

### What can an AI agent actually do with my AirOps data?

With AirOps connected, an agent can list your apps and run one with your inputs, check on executions and retry or cancel them, chat with an agent app, generate and download grid CSVs, add documents to a memory store, upload files, and look up brand kits with their prompts and analytics. Because AirOps has many actions, short concrete asks like "run the blog brief app for this topic" work better than long instructions.

### Does connecting AirOps give the AI access to my whole workspace?

No. AirOps runs through the API key of the person who connected it, so the agent sees only the apps, grids, memory stores and brand kits that key can reach. Elaichi can narrow that further with per-action restrictions, and it never widens it beyond what AirOps itself allows.

### Can my team share one AirOps connection?

Yes. One person connects AirOps with their API key and shares the connection with a team in Elaichi. Nobody else on the team ever sees or handles the key, and each person still signs in to Elaichi as themselves, so the audit log names who ran which AirOps workflow.

### Can I stop an agent from deleting or changing things in AirOps?

Yes. Restrictions in Elaichi apply per action, so you can allow reading brand kits and running executions while blocking deleting documents from a memory store or cancelling runs. A blocked AirOps action is never advertised to Claude, ChatGPT or Cursor, so no prompt can reach it.

### What happens to an AirOps connection when someone leaves?

Offboarding a person in Elaichi ends their access to AirOps at once, in every client they used. If they shared an AirOps connection with a team, it keeps working for everyone else. Disconnecting AirOps once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client at the same time.

## All 43 AirOps tools

Every tool below is callable through https://api.elaichi.ai/mcp once AirOps is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all AirOps apps** (List). List all apps in the airops workspace. Returns each app with id, uuid, name, description, created_at, and updated_at.
- **Get single AirOps app by ID** (Get). Get a single airops app by its uuid. Returns the app object including id, name, description, created_at, and updated_at. Required: id.
- **List all AirOps executions** (List). List executions for an Airops app. Returns execution records including id, status, uuid, inputs, output, runtime, credits_used, createdAt, and updatedAt. Required: airops_app_id.
- **AirOps executions execute** (Execute). Execute a published Airops app synchronously and return the result. Returns the airops_app_execution object including id, status, inputs, output, and createdAt/updatedAt. Required: app_uuid, inputs. Fails if the app exceeds capacity or runs longer than 10 minutes.
- **AirOps executions execute async** (Execute). Execute a published Airops app asynchronously and return the queued execution. Returns the airops_app_execution object including id, status, inputs, output, and createdAt/updatedAt. Required: app_uuid, inputs.
- **AirOps executions execute definition** (Execute). Execute a published Airops workflow definition synchronously. Returns the airops_app_execution object including id, status, inputs, output, and createdAt/updatedAt. Required: app_uuid, inputs, inputs_schema, definition. Fails if the app exceeds capacity or runs longer than 10 minutes.
- **AirOps executions execute definition async** (Execute). Execute a published Airops workflow definition asynchronously and return the queued execution. Returns the airops_app_execution object including id, status, inputs, output, and createdAt/updatedAt. Required: app_uuid, inputs, inputs_schema, definition.
- **AirOps executions webhook async execute** (Execute). Execute a published airops app asynchronously via incoming webhook. Returns the airops_app_execution object with execution details including id, status, inputs, output, and runtime. Required: app_uuid, inputs.
- **AirOps executions cancel** (Cancel). Cancel a pending or running airops execution. Returns an empty 204 response on success. Required: execution_uuid.
- **AirOps executions rate** (Action). Rate a successful airops execution as positive, neutral, or negative. Returns an empty 204 response on success. Required: execution_uuid, feedback.
- **AirOps executions retry** (Action). Retry an airops execution that is in error status from the last failed step. Returns an empty 204 response on success. Required: execution_uuid.
- **AirOps agent apps chat** (Action). Send a synchronous chat message to an AirOps Agent app. Returns the agent result object and the airops_app_execution record. Required: app_uuid, message.
- **AirOps agent apps chat async** (Action). Send a chat message to an AirOps Agent app asynchronously, without waiting for the response. Returns the session_id and the airops_app_execution record. Required: app_uuid, message.
- **AirOps files upload** (Upload). Upload a file to an airops workspace. Returns: id, created_at, updated_at, openapi, info, paths, components, servers. Required: file.
- **AirOps grids generate CSV** (Generate). Start an async CSV generation job for a sheet in airops. Returns: job_id, id, openapi, info, paths, components, servers. Required: grid_id, sheet_id.
- **AirOps grids download CSV** (Download). Check the status of a CSV generation job and get the download URL in airops. Returns: status, download_url, download_link, openapi, info, paths, components, servers. Required: grid_id, sheet_id, job_id.
- **AirOps grids download latest CSV** (Download). Download the latest generated CSV for a sheet in airops. Returns an empty 302 redirect response on success. Required: grid_id, sheet_id.
- **AirOps memory stores add document** (Add). Add a document to an airops memory store. Returns the created document with id, name, document_type, status, and sync_progress_percentage. Required: memory_store_id, name, text.
- **AirOps memory stores delete document** (Delete). Delete a document from an airops memory store. Returns an empty 204 response on success. Required: memory_store_id, document_id.
- **List all AirOps search memory stores** (List). Search an airops memory store by query string. Returns a matches array of search results, each with id, score, content, document_name, and metadata. Required: memory_store_id, query.
- **List all AirOps brand kits** (List). List airops brand kits. Returns: data, meta. The request body supports workspace_id, filters, includes, fields, and sort.
- **Get single AirOps brand kit by ID** (Get). Get a single airops brand kit by id. Returns: id, countries, created_at, updated_at, openapi, info, tags, servers, security, components, paths. Required: id.
- **List all AirOps brand kits analytics** (List). Query analytics data for a Brand Kit in airops. Returns data and meta. Required: brand_kit_id, metrics. Max 3 dimensions; limit 1-1000.
- **List all AirOps brand kits prompts** (List). List prompts for an airops Brand Kit. Returns prompt records with id, text, keyword, brand_mentioned, prompt_volume, topic_id, created_at, updated_at, mention_rate, citation_rate, mention_rate_trend, citation_rate_trend, query_fanouts, countries, persona_ids, platforms, est_answers_mo, topic, and tags. Required: brand_kit_id.
- **Get single AirOps brand kits prompt by ID** (Get). Get a single prompt for an airops Brand Kit by id. Returns the prompt record including id, text, keyword, brand_mentioned, prompt_volume, topic_id, created_at, updated_at, mention_rate, citation_rate, mention_rate_trend, citation_rate_trend, query_fanouts, countries, persona_ids, platforms, est_answers_mo, topic, and tags. Required: brand_kit_id, id.
- **List all AirOps brand kits topics** (List). List topics for a Brand Kit in airops. Returns a `data` array of topics with id, name, and color, plus pagination `meta`. Required: brand_kit_id.
- **Get single AirOps brand kits topic by ID** (Get). Get a single topic for a Brand Kit in airops by id. Returns the topic under `data` with id, name, and color. Required: brand_kit_id, id.
- **List all AirOps brand kits tags** (List). List tags in an AirOps Brand Kit. Returns: id, name, color, openapi, info, tags, servers, security, components, paths. Required: brand_kit_id. Max 100 per page.
- **Get single AirOps brand kits tag by ID** (Get). Get a single AirOps Brand Kit tag by id. Returns: id, name, color, openapi, info, tags, servers, security, components, paths. Required: brand_kit_id, id.
- **List all AirOps brand kits personas** (List). List personas in an airops Brand Kit. Returns: id, title, description, created_at, updated_at, openapi, info, tags, servers, security, components, paths. Required: brand_kit_id.
- **Get single AirOps brand kits persona by ID** (Get). Get a single airops Brand Kit persona by id. Returns: id, title, description, created_at, updated_at, openapi, info, tags, servers, security, components, paths. Required: brand_kit_id, id.
- **List all AirOps brand kits citations** (List). List citations for an Airops brand kit. Returns: url, domain, domain_name, domain_category, logo_url, citation_count, citation_count_trend, citation_share, citation_share_trend, citation_rate, citation_rate_trend, influence_score, influence_score_breakdown, page_type, brand_mentioned, brand_sentiment, mentioned_competitor_domains, domain_authority. Required: brand_kit_id.
- **Get single AirOps brand kits citation by ID** (Get). Get a single citation for an Airops brand kit. Returns the citation record including url, domain, citation_count, citation_rate, influence_score, brand_mentioned, and brand_sentiment. Required: brand_kit_id, id.
- **List all AirOps brand kits answers** (List). List AI answers for a brand kit in airops. Returns answer records including id, date, text, prompt, provider, country, citations, mentions, and brand_mentioned. Required: brand_kit_id.
- **Get single AirOps brand kits answer by ID** (Get). Get a single AI answer for a brand kit in airops. Returns the answer record including id, date, text, prompt, provider, country, citations, mentions, and brand_mentioned. Required: brand_kit_id, id.
- **List all AirOps brand kits competitors** (List). List competitors for an Airops brand kit. Returns: id, aeo_domain_id, name, domain_url, created_at, openapi, info, tags, servers, security, components, paths. Required: brand_kit_id.
- **Get single AirOps brand kits competitor by ID** (Get). Get a single competitor for an Airops brand kit by id. Returns: id, aeo_domain_id, name, domain_url, created_at, openapi, info, tags, servers, security, components, paths. Required: brand_kit_id, id.
- **List all AirOps brand kits content updates** (List). List content updates for a Brand Kit in airops. Returns a collection of content updates with id, url, type, source, brand_kit_id, workspace_id, created_at, updated_at, change_detection, metadata_entries. Required: brand_kit_id.
- **Create a AirOps brand kits content update** (Create). Create a content update for a Brand Kit in airops. Returns: id, url, type, source, brand_kit_id, workspace_id, created_at, updated_at, change_detection, metadata_entries, openapi, info, tags, servers, security, components, paths. Required: brand_kit_id, url, type.
- **Get single AirOps brand kits content update by ID** (Get). Get a single content update for a Brand Kit in airops by id. Returns: id, url, type, source, brand_kit_id, workspace_id, created_at, updated_at, change_detection, metadata_entries, openapi, info, tags, servers, security, components, paths. Required: brand_kit_id, id.
- **Delete a AirOps brand kits content update by ID** (Delete). Delete a content update for a Brand Kit in airops. Returns an empty 204 response on success. Required: brand_kit_id, id.
- **List all AirOps brand kits web pages** (List). List web page metrics for an Airops brand kit. Returns id, url, citations_count, clicks, impressions, traffic, and configured GA4/Amplitude events. Required: brand_kit_id.
- **List all AirOps brand kits sentiment theme answers** (List). Get individual AI answers with sentiment details for a specific theme in an AirOps brand kit. Returns: answers, pagination, error, openapi, info, tags, servers, security, components, paths. Required: brand_kit_id, sentiment_theme_id.
