geoaeo
v0.3.0
Published
GEO and AEO artifacts for answer engines and agents
Downloads
671
Maintainers
Readme
geoaeo
geoaeo makes any app discoverable, quotable, and usable by AI answer engines and search —
SEO, GEO, and AEO in one tool. It audits a site, scores it 0–100, and generates the files
answer engines need. It ships a library, a CLI, and an MCP server, all at one version.
Install
npm install geoaeoThe package name is unscoped: geoaeo, geoaeo (CLI), and geoaeo-mcp (MCP server).
Create geoaeo.config.ts from geoaeo.config.example.ts.
The config holds the site facts used by every generator.
Quick start
Audit a live site:
npx geoaeo audit https://example.com
npx geoaeo audit https://example.com --jsonAudit a local build or source directory:
npx geoaeo audit ./apps/websiteScaffold a Next.js App Router site:
npx geoaeo init ./apps/website
npx geoaeo init ./apps/website --forceThe command detects the framework — Next.js, Astro, SvelteKit, Nuxt, or Remix — and writes
the routes that emit each artifact. Other directories receive static files. Existing files
stay unchanged unless you pass --force.
Generate artifacts
npx geoaeo gen llms
npx geoaeo gen llms-full --output public/llms-full.txt
npx geoaeo gen jsonld --type faq
npx geoaeo gen webmcp
npx geoaeo gen sitemap --output public/sitemap.xml
npx geoaeo gen robots
npx geoaeo gen ogimage --output public/og.svg
npx geoaeo gen rss --output public/feed.xml
npx geoaeo gen hreflang
npx geoaeo gen mdmirrorThe generators use the same config as the generated framework routes.
The JSON-LD generator supports software, product, faq, breadcrumb, organization,
website, article, howto, person, and review kinds.
Gate a build on the score
Use --ci in a pipeline to fail when a site drops below a minimum score:
npx geoaeo audit https://example.com --ci --min-score 85The command exits non-zero when the score is below the threshold.
Humanize copy
Run a report for Markdown and JSX files:
npx geoaeo humanize 'content/**/*.md' --checkRewrite prose in place:
npx geoaeo humanize 'src/**/*.tsx' --writeThe humanizer keeps YAML frontmatter, code fences, JSX tags, imports, class names, and expressions. It checks for em dashes, AI vocabulary, filler, hype, fake-depth tails, and title-case headings.
MCP setup
Use the stdio server in an MCP client such as Claude Code or Cursor:
{
"mcpServers": {
"geoaeo": {
"command": "npx",
"args": ["geoaeo-mcp"]
}
}
}The server exposes audit, gen, and humanize tools.
You can also run it through the CLI:
npx geoaeo mcpCommands
| Command | Purpose |
| --- | --- |
| audit <url-or-dir> | Score the site and list missing artifacts. |
| init [dir] | Add Next.js routes or static artifacts. |
| gen <artifact> | Print one generated artifact or write it to a file. |
| humanize <glob> | Check or rewrite prose files. |
| mcp | Run the MCP server over stdio. |
Development
npm test
npm run typecheck
npm run build