geoaeo

SEO, GEO, and AEO site audits with llms.txt, JSON-LD, sitemap generators, framework scaffolding, and MCP tools.
21,203
Install
npm install geoaeo
Latest Version:0.8.5
Vue:3
License:MIT
Last Updated:Oct 26, 2026
Links: GitHub  ·  npm
Maintainer: pooriaarab

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 geoaeo

The 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 --json

Audit a local build or source directory:

npx geoaeo audit ./apps/website

Scaffold a Next.js App Router site:

npx geoaeo init ./apps/website
npx geoaeo init ./apps/website --force

The 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 ai-txt --output public/ai.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 mdmirror

The 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 85

The 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' --check

Rewrite prose in place:

npx geoaeo humanize 'src/**/*.tsx' --write

The 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": ["-y", "geoaeo", "mcp"]
    }
  }
}

The server exposes audit, gen, and humanize tools.

Set GEOAEO_ALLOWED_ROOTS when you start the CLI or the MCP server. Separate directories with your platform path delimiter (: on macOS and Linux, ; on Windows). audit, gen, and humanize then accept a local directory only when it resolves inside one of those directories. For the CLI, that directory is the audit target, or the working directory of gen and humanize. audit still accepts an absolute http or https URL. When the variable is unset or empty, local paths stay unbounded. A path outside the list returns an error that names the path you passed.

You can also run it through the CLI:

npx geoaeo mcp

Commands

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

Related Packages

rankforge-cli

Deterministic technical-SEO audit from your terminal. Crawls a site, measures re...

374 0
@bynaree/orino

SEO and GEO audit tool for developers. Audits Next.js, Astro, SvelteKit, Nuxt, a...

1,558
mentionwell-cli

CLI for Mentionwell — browser login, full API access (sites, posts, headlines, j...

1,480
@ranklint/nuxt

Nuxt 4 SEO module: sitemap.xml, robots.txt, typed JSON-LD and a live SEO panel i...

1,849 2
@agentmarkup/nuxt

Build-time llms.txt, llms-full.txt, A2A Agent Cards, JSON-LD, markdown mirrors,...

307 28

Version History

Version Released License
0.8.5 MIT
0.8.4 MIT
0.8.3 MIT
0.8.2 MIT
0.8.1 MIT
Pre-releases (97)
Version Released License
0.8.5-next.165 MIT
0.8.4-next.163 MIT
0.8.3-next.162 MIT
0.8.3-next.160 MIT
0.8.2-next.158 MIT