Short answer: AEO skills are plain folders of instructions that teach a coding agent such as Claude Code how to fix a specific answer-engine problem in your repo and prove the fix worked.
We have published 24 of them in the open AEO Toolkit. The audit engine has 58 rules, and every rule maps to exactly one skill, so a failing rule always has a single next step. They do not promise citations: a skill removes a known blocker, and whether an engine then cites you is something you measure afterwards.
What is an agent skill, and how is it different from an MCP tool?
A skill is a directory with a SKILL.md file in it. The file starts with a short description of when the skill applies, and the agent reads that description to decide whether to load the rest. You do not name the skill. If you ask the agent why GPTBot is blocked, the crawler-access skill activates because its description matches.
An MCP tool is a different kind of thing. It performs one typed action, such as crawling a site or reading Search Console, and returns data. It has no opinion about what the data means or what to do about it.
| MCP tool | Agent skill | |
|---|---|---|
| Answers | What is wrong, and how is it performing? | How do I fix it here, and how do I know it worked? |
| Form | A typed call to a server | A folder of Markdown the agent reads |
| Carries | Data | Judgement: when it matters, when to leave it alone, per-stack recipes |
| Needs a server | Yes | No |
Neither replaces the other. We run three read-only MCP servers for detection and measurement, covered in the platform article. The skills sit on top of them.
The API and MCP servers the skills build onWhy do MCP tools alone not fix a site?
Tools detect. They do not decide. An audit that says a rule failed does not tell an agent whether the failure is real, which fix is safe, or how a Next.js project differs from a WordPress one.
Left alone, an agent tends to fix the score instead of the site. The standard example is adding FAQ schema to a page that has no visible FAQ, just to flip a rule from red to green. Each skill names the cases where a failing rule is fine to leave, and tells the agent to say which findings it chose not to fix and why.
The audit engine has 58 rules. A map in the toolkit assigns each one to exactly one skill, and a test fails the build if a rule has no owner, a mapped skill does not exist, or the router's copy of the map drifts.
What is the detect, decide, implement, verify loop?
Every skill follows the same four steps, so an agent behaves the same way whichever one it loads.
Detect
Run the rule or tool that finds the problem. Each skill has a no-MCP fallback, such as curl or view-source, so detection works with no server connected.
Decide
Judge whether it is really a problem here. A missing terms page on a one-page tool may be fine. A missing robots.txt on a store is not.
Implement
Apply the fix in the stack in front of the agent. Recipes for Next.js, Astro, WordPress and static HTML live in each skill's references folder, and the agent loads only the one it needs.
Verify
Re-run the same check. Confirm the target rule now passes and that nothing else regressed, then report the change in plain terms, such as AI crawlers can now read the pricing page.
What are the 24 skills?
One router, then 23 skills in five groups. The groups are ordered by dependency: each layer is wasted effort if the one above it is broken, so a site that blocks retrieval bots gains nothing from schema work until Access is fixed.
Start with the router. It reads an audit, groups the failing rules by owner, orders the work, and hands each group to the right skill.
The aeo router skill| Group | Skill | What it fixes |
|---|---|---|
| Router | aeo | Reads an audit, orders the work, hands each failure to its owner |
| Access | aeo-ai-crawler-access | AI bots blocked by robots.txt or a CDN; training versus search bots |
| Access | aeo-server-rendering | Content that only exists after JavaScript runs |
| Access | aeo-llms-txt | llms.txt, served without cannibalizing your pages |
| Access | aeo-indexability | Sitemaps, canonicals, noindex, redirects, hreflang, HTTPS |
| Identity | aeo-organization-entity | Organization JSON-LD, the @id graph, consistent identity |
| Identity | aeo-article-author-schema | Article and Person author markup |
| Identity | aeo-faq-qa-schema | FAQPage, QAPage and HowTo, honestly scoped |
| Identity | aeo-structured-data-validation | Invalid or conflicting structured data |
| Identity | aeo-product-schema | Product, Offer and Review markup for stores |
| Identity | aeo-local-business-schema | LocalBusiness, NAP consistency, Business Profile |
| Extractability | aeo-answer-first-content | Question headings, answer-first paragraphs, depth |
| Extractability | aeo-site-structure | Breadcrumbs and internal linking |
| Extractability | aeo-page-metadata | Titles, descriptions, Open Graph, lang, viewport, alt text |
| Extractability | aeo-content-freshness | Honest dates across the page, JSON-LD and sitemap |
| Extractability | aeo-eeat-trust-signals | About, contact, policies and outbound references |
| Off-site | aeo-citation-earning | Where competitors get cited, unlinked mentions, outreach |
| Measurement | aeo-visibility-tracking | Prompt sets, baselines, Perplexity citation share |
| Measurement | aeo-ai-referral-analytics | AI-assistant referral traffic in GA4 |
| Measurement | seo-bing-coverage | Google versus Bing gaps |
| Measurement | seo-traffic-drop | Traffic dropped; what caused it |
| Measurement | seo-cannibalization | Whether your own pages compete with each other |
| Measurement | seo-content-decay | Which content needs refreshing |
| Measurement | seo-high-intent-ctr | Buyer-intent searches that rank but lose the click |
Each skill has its own guide at docs.advancelabs.dev/aeo-toolkit/skills/ followed by the skill name. Two skills, aeo-product-schema and aeo-local-business-schema, have no audit rule yet, so the router asks whether the site is a store or serves a place before adding them.
Skill guides and install stepsHow do I install the skills?
Skills are plain directories, so installing one means copying it into your skills folder. There is no package to resolve and no server to run.
# one project
mkdir -p .claude/skills
cp -r path/to/aeo-toolkit/skills/aeo* .claude/skills/
# every project
cp -r path/to/aeo-toolkit/skills/* ~/.claude/skills/The MCP servers are optional for the aeo-prefixed skills, since each Detect step has a no-server fallback. The seo-prefixed and measurement skills read Search Console, GA4, Bing or Perplexity data, so they need the matching server connected. The source is open.
Skills source on GitHubWhat do the skills not do?
- They do not guarantee citations: A fix removes a known blocker. Whether an engine then cites you depends on competitors, the query and systems nobody outside those companies can see. The router tells the agent to say removes a known blocker, never will get you into ChatGPT.
- The visibility tools see one engine: check_ai_visibility and its siblings query Perplexity. A reading from them is Perplexity citations, not AI visibility in general, and one call is one sample of a non-deterministic answer.
- The audit shortlist is not the full audit: analyze_website_aeo returns a top-8 shortlist of failed findings. It never surfaces the E-E-A-T rules or several metadata rules, so an empty shortlist does not mean everything passes. The affected skills each carry their own Detect step for exactly this reason.
- They change nothing remotely: Every MCP tool is read-only. Code changes happen in your repo, where you can review them before anything ships.
If you would rather not run any of this yourself, our monthly maintenance does the same loop for you and re-checks the result.
Common questions
What are AEO skills for AI coding agents?
They are folders of instructions, each a SKILL.md plus optional reference files, that a coding agent such as Claude Code loads when a request matches. Each teaches one answer-engine fix: when it matters, how to implement it in your stack, and how to verify it. There are 24 in the open AEO Toolkit, and every one of the 58 audit rules maps to exactly one of them.
What is the difference between an agent skill and an MCP tool?
An MCP tool performs one typed action and returns data, such as crawling a site or reading Search Console. A skill carries the method around that data: how to decide whether a finding is real, how to fix it in your framework, and how to confirm the fix. The tools answer what is wrong and how it is performing; the skills answer how to fix it and how to know it worked.
Do the skills need the MCP servers?
The aeo-prefixed skills do not. Each has a fallback detection step using curl or view-source. The seo-prefixed and measurement skills read Search Console, GA4, Bing or Perplexity data, so they need the matching server connected. Connecting the servers makes detection and verification faster and more complete either way.
Will using the skills get my site cited by ChatGPT?
Not by themselves. A skill removes a known blocker, such as a blocked crawler or content that only renders in JavaScript. Whether an answer engine then cites you is measured afterwards, and the visibility tools in the toolkit query Perplexity only, so they cannot speak for ChatGPT, Gemini or Google AI Overviews.
Sources
Related guides
Want it done for you
Want this done and re-checked every month? Our monthly maintenance re-runs your buying questions in ChatGPT, Perplexity and Google, ships the fixes that keep you out of the answers, and reports what moved. Or run the free check on your site first at advancelabs.dev/tools/audit.
See how it works
