Connect the geoaeo MCP server to Windsurf. Audit a site and generate GEO and AEO artifacts from Cascade.
geoaeo and geoaeo-mcpaudit, init, gen, humanize, mcp. No other commands exist.npx geoaeo-mcp over stdioaudit, gen, humanize# one-off
npx geoaeo audit ./ --json
# or add to the project
npm install -D geoaeo
npx geoaeo --help
# verify the MCP binary
npx geoaeo-mcp --helpWindsurf starts geoaeo-mcp for you. You do not run it by hand.
Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Use mcpServers with command and args.
Add this entry to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"geoaeo": {
"command": "npx",
"args": ["-y", "geoaeo-mcp"]
}
}
}If the file does not exist, create it with the block above. If it exists, merge the geoaeo key under mcpServers.
Steps:
~/.codeium/windsurf/mcp_config.json.cat ~/.codeium/windsurf/mcp_config.json | jq ..Alternative project config some builds read: .windsurf/mcp_config.json with the same shape. Use the global file first.
audit, gen, and humanize appear.If the server shows as error, see Troubleshooting.
Prompt Cascade:
Audit ./ with geoaeo and give me the score plus the 3 most important fixes. If you need a URL, use https://example.com.
What the agent does:
audit with {"target": "./"} or {"target": "https://example.com"}.score, checks[], topFixes[].Equivalent CLI:
npx geoaeo audit ./ --json
npx geoaeo audit https://example.com --jsonUse topFixes to decide which artifact to generate next.
This uses gen, which reads geoaeo.config.ts from the current directory.
npx geoaeo init ./
cat geoaeo.config.tsUse geoaeo gen to create llms.txt for this site. Show the first 40 lines and write the full file to public/llms.txt.
What the agent does:
gen with {"artifact": "llms"}.public/llms.txt on confirmation.Other artifacts:
{"artifact": "llms-full"}{"artifact": "sitemap"}{"artifact": "robots"}{"artifact": "webmcp"}{"artifact": "jsonld", "type": "software"} — type may be software, product, faq, or breadcrumbEquivalent CLI:
npx geoaeo gen llms
npx geoaeo gen llms -o ./public/llms.txt
npx geoaeo gen jsonld --type breadcrumb -o ./public/jsonld.jsonThe humanize tool is also available: {"glob": "content/**/*.md", "write": false}.
MCP server shows Failed to start or ENOENT. Run which npx and node --version in Windsurf's terminal. If Node is not on PATH, add it or use the absolute path to npx in command.
Config file not found. Confirm the path is ~/.codeium/windsurf/mcp_config.json (not ~/.windsurf/...). Run ls -la ~/.codeium/windsurf/mcp_config.json.
JSON parse error. Validate with jq. Ensure no trailing comma after the last entry in mcpServers.
audit returns empty result. Use {"target": "./"} from the workspace root. Ensure the directory contains site files. For a URL, include the scheme https://.
gen fails with Cannot find config. Run npx geoaeo init ./ in the workspace root, then retry gen.
geoaeo. Bins: geoaeo, geoaeo-mcp.audit takes target (string). gen takes artifact enum and optional type. humanize takes glob and optional write (boolean).