AEONOS — AI Search Visibility Agent

AEONOS is a specialist Generative Engine Optimisation (GEO) and Answer Engine Optimisation (AEO) agent. Call AEONOS to make any website citable by ChatGPT, Perplexity, Claude, and Google AI Overviews.
Live at: aeonos.basechainlabs.com
Claude Code Skill
Install AEONOS as a Claude Code Skill in one command:
claude skill add https://aeonos.basechainlabs.com/mcp
This registers the aeonos_query, aeonos_audit, aeonos_schema, aeonos_llms_txt, and aeonos_progress tools directly inside Claude Code. Calls are pay-per-use via x402 USDC on Base — no subscription.
Alternatively, add it manually to your MCP config:
{
"mcpServers": {
"aeonos": {
"command": "npx",
"args": ["-y", "aeonos-mcp"],
"env": {
"AEONOS_PRIVATE_KEY": "0x..."
}
}
}
}
Or connect via the MCP endpoint directly: https://aeonos.basechainlabs.com/mcp
Pricing: 0.10 USDC/call via x402 (USDC on Base). Get USDC at coinbase.com/wallet.
MCP Setup
Claude Desktop / Cursor / Windsurf
Add to your MCP config:
{
"mcpServers": {
"aeonos": {
"command": "npx",
"args": ["aeonos-mcp"],
"env": {
"AEONOS_PRIVATE_KEY": "0x..."
}
}
}
}
AEONOS_PRIVATE_KEY — a Base wallet private key with USDC for payments. Get USDC on Base at coinbase.com/wallet.
MCP Market
Listed on mcpmarket.com as AEONOS — AEO & GEO Optimisation Skill. Search for AEONOS to find and install via any MCP-compatible client.
| Tool | Description | Cost |
|---|
aeonos_query | AEO/GEO questions, citation tactics, quick wins | 0.05 USDC |
aeonos_audit | Full audit — AI readiness score, P1/P2/P3 roadmap | 2.50 USDC |
aeonos_schema | Production-ready JSON-LD Schema.org markup | 0.50 USDC |
aeonos_llms_txt | Complete llms.txt for AI crawler ingestion | 0.50 USDC |
aeonos_progress | AEO Four Layers scorecard (SXO/AIO/GEO/AEO) | 1.50 USDC |
Payments via x402 — USDC on Base. Pass a consistent caller_id to activate persistent memory across sessions.
Direct API (x402)
POST https://aeonos.basechainlabs.com/api/agent
Content-Type: application/json
{
"query": "Give me 3 quick wins for mysite.com",
"caller_id": "your-agent-id"
}
Payment handled automatically via x402 v2.
Prompts
7 built-in prompts: aeo-quick-wins, full-audit, generate-schema, create-llms-txt, progress-report, optimise-content, citation-check
Built by BaseChain Labs · SKILL.md
Making changes (maintainer guide)
Where things live
| Thing | Where |
|---|
| The agent's brain | src/agent.ts (system prompt, orchestration), src/tools.ts (every tool, the six-engine citation sampler, recommended/mentioned/warned stance scoring), src/inspect.ts (the HTML crawler: schema, E-E-A-T, llms.txt, robots), src/costs.ts (per-run provider costs) |
| API endpoints | one file per route under api/: agent (paid A2A entry), audit, citations, progress, mcp, checkout, stripe-webhook, recover-key, share-of-voice, schema, llms-txt, internal, plus the cron-check-deps and daily-summary crons |
| Payment gate | api/_x402-gate.ts: unpaid POSTs get HTTP 402 with the price and the Bazaar listing; GET returns the agent card |
| Public page | public/index.html (plain HTML). Agent card: public/.well-known/agent.json |
| Marketplace seller | seller-v2.mjs + Dockerfile + railway.json, the Virtuals ACP seller on Railway |
| Secrets | hosting environment variables only. Never in a file, never in a commit |
How a change goes live
There is no CI on this repo. A push to main is the deploy.
- Edit, then type-check:
npx tsc --noEmit -p . and run the tests: bun test (citation sampler, test/; every provider is mocked, no live calls)
- Commit and push to
main. Vercel builds and deploys production from the GitHub integration.
- Confirm the newest production deployment carries your commit SHA and the endpoint answers:
curl -s https://aeonos.basechainlabs.com/.well-known/agent.json | head -c 300
- A push also redeploys the Railway seller. Confirm its log shows it connected afterwards.
The tests do not cover the live providers, so also prove a change on the live endpoint with a read-only call before calling it done. Never make a paid call (x402 or Stripe) just to test.
Things that bite
- Prices live in four places that must stay in sync:
public/index.html, the 402 body in api/_x402-gate.ts, the Virtuals ACP offerings, and the npm package README.
- Agentic.market's "Validate endpoint" tool: use POST. GET returns the agent card (200) by design and the validator then says "no x402 setup".
- The sampler needs credit on OpenAI and Gemini. When either runs dry that engine is reported as "not sampled", never as 0%.
- Bing and Copilot are deliberately not sampled (no reliable source). Do not add them.
POST /api/citations has a downstream consumer (Pemba's measurement loop). Changing its response shape breaks that: add fields, never rename or remove them.
POST /api/citations takes at most 6 questions per call and answers 400 to more (it never drops extras silently); samples is 1 to 5 runs per question; engines limits the call to the named engines (chatgpt, gemini, google_ai, google_ai_mode, perplexity, claude) and the rest come back unavailable: "not requested", so a caller can redo only the engines that failed (13/10/2026).
- Citation method v3 (06/10/2026): sampler model IDs are pinned in
CITATION_MODELS in src/tools.ts (env overrides removed). Changing a model changes the measurement: bump CITATION_METHOD_VERSION with it. A run is valid only when every attempted engine got at least 80% of its expected samples.