AEO Copilot MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AEO_COPILOT_API_KEY | Yes | Your AEO Copilot API key (starts with aeo_) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_brandsB | List all brands you have access to in AEO Copilot. |
| list_topicsA | List all topics configured for a brand. Topics group related prompts together (e.g. 'Product Comparisons', 'Feature Questions'). |
| get_resultsA | Get prompt execution results for a brand across AI engines (ChatGPT, Claude, Perplexity, Google AI Overviews). Each result includes a per-engine block with the full answer text ( |
| get_insightsA | Get analytics insights for a brand: overall visibility score, sentiment breakdown, competitive share, visibility trends over time, top-performing topics, and competitor breakdown. |
| get_recommendationsB | Get prioritised, actionable recommendations to improve your brand's AI visibility — based on prompt results and a technical audit of your website. |
| create_brandA | Create a new brand on your AEO Copilot account. Subject to your plan's brand limit — the API will return an error if you've reached it. |
| create_topicB | Create a topic cluster for a brand. Topics group related prompts (e.g. 'Pricing Questions', 'Product Comparisons'). |
| add_promptsA | Bulk-add prompts to a brand under a specific topic. Subject to your plan's monthly prompt limit — the API will return an error if you've reached it. |
| update_promptA | Edit a single prompt: its text, topic, or target page URL. Editing the text keeps all past results linked to the prompt — only future runs use the new wording. |
| update_promptsA | Bulk-edit up to 50 prompts in one call. Each update needs the prompt's id plus the fields to change (text, llm, topicId, recommendationPageUrl). Items are processed independently — the response reports how many updated and which failed, so you can retry just the failures. Editing text keeps past results linked; only future runs use the new wording. |
| list_promptsA | List all prompts for a brand with their ids, text, topic, target page, last run date, and paused state. Use this to discover prompt ids for update_prompt, update_prompts, and delete_prompts — including prompts that have never been run (which get_results cannot see). |
| list_deleted_promptsA | List recently deleted prompts for a brand that are still restorable (48-hour grace window), grouped by delete batch with sample texts and expiry. Use the batchId with restore_prompts to undo a deletion. |
| restore_promptsA | Restore a batch of recently deleted prompts (undo a delete_prompts call). Works while the batch is still inside the 48-hour grace window; get the batchId from list_deleted_prompts or from the delete_prompts response. |
| delete_promptsA | Delete 1 to 50 prompts by id. This is a soft delete: the prompts stop collecting data immediately, stay restorable from the web app's Recently deleted view for 48 hours, and are then permanently removed along with their results. Prompts you don't own are skipped and reported back, not failed. |
| run_brand_promptsA | Run all prompts for a brand across every enabled LLM (ChatGPT, Claude, Perplexity, Google AI Overviews). Optionally filter to a single topic. Returns the count of prompts run. |
| scan_brandA | Run a technical audit on the brand's website. Returns the full scan result — same data the dashboard's technical scan view shows (schema markup, sitemap, llms.txt, etc.). |
| create_indexA | Create an industry index — a brand-agnostic view of an industry that tracks every entity cited across prompts (no single brand is the focus). |
| list_indexesA | List all industry indexes you have access to in AEO Copilot. |
| add_index_topicB | Add a topic cluster to an industry index. Topics group related prompts (e.g. 'Pricing Questions', 'Best-of Comparisons'). |
| add_index_promptsC | Bulk-add prompts to a topic in an industry index. |
| run_index_promptsA | Run all prompts in an index across all 4 LLMs (ChatGPT, Claude, Perplexity, Google AI Overviews) and store full per-LLM results. No brand filter — every entity mentioned is captured. |
| get_index_resultsA | Get raw per-prompt results for an industry index across all 4 LLMs. Same shape as get_results minus the brand-mention fields — every cited entity is captured. |
| get_index_share_of_voiceB | Get the ranked entity list for an index by citation frequency, plus a concentration score (top-1 share % and HHI-style index showing how concentrated mentions are). |
| get_index_sourcesA | Get domains ranked by citation frequency across every LLM response in the index — which sources the AI engines lean on most. |
| get_index_whitespaceA | Find whitespace opportunities in an index: prompts and topics where no entity is consistently cited (threshold: fewer than 1 consistent entity across at least 50% of runs). These are gaps where a brand could establish authority. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 25 tools
Tools are mostly distinct thanks to consistent brand/index prefixes and clear resource nouns, but update_prompt and update_prompts overlap functionally since the bulk variant can also handle a single prompt. Overall, descriptions resolve most ambiguity and misselection risk is low.
All tool names follow a consistent snake_case verb_noun pattern with predictable verbs: list, create, get, add, update, delete, restore, run, scan. Brand/index distinctions are systematically encoded, e.g. run_brand_prompts vs run_index_prompts and get_results vs get_index_results.
25 tools sits at the heavy end of the borderline range for a single MCP server. The domain is broad enough that most tools serve a purpose, but several bulk/parallel variants (e.g. update_prompt vs update_prompts, brand vs index families) make the surface feel larger than necessary.
Prompt lifecycle coverage is strong: list, add, update, delete, restore, and run are all present. However, brands, topics, and indexes have create/add/list/get operations but no corresponding update or delete tools, and index prompts cannot be listed or removed outside of results, leaving notable dead ends.