프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

OpenAEO

제작자: charlacsina버전 1.6.4i★ –i내 컴퓨터에서 실행
레지스트리 이름dev.openaeo/audit

설치

개요

제작자가 쓴 설명(영어 원문)

Asks 8 AI crawlers for your page, checks who really answered, and writes the fixes. MIT.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 기타
  • 입력해야 할 값: OPENAEO_API_KEY

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

  • npmNode.js 설치(npx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "audit": {
      "command": "npx",
      "args": [
        "-y",
        "openaeo-audit",
        "mcp"
      ],
      "env": {
        "OPENAEO_API_KEY": "your-value"
      }
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add audit --env OPENAEO_API_KEY=your-value -- npx -y openaeo-audit mcp

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "audit": {
      "command": "npx",
      "args": [
        "-y",
        "openaeo-audit",
        "mcp"
      ],
      "env": {
        "OPENAEO_API_KEY": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "audit": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "openaeo-audit",
        "mcp"
      ],
      "env": {
        "OPENAEO_API_KEY": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • OPENAEO_API_KEY 비밀 env
    Optional. Unlocks the hosted tools (crawler intelligence, citation testing, history, drift, competitors). The six local tools work without it. Create one at https://openaeo.dev/dashboard

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 도메인 openaeo.dev 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 32476개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 32476개 중 24%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 32476개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

OpenAEO, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: OPENAEO_API_KEY

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.6.4)은 3개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, zanadir

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Spec Driven Development

제작자: formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

내 컴퓨터에서 실행★ 440MIT14개월 전 업데이트
설치

Remote Desktop Commander

제작자: desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

클라우드에서 실행★ 211어제 업데이트
설치

zanadir

제작자: MustacheCase

Find what a repository's CI is missing, and which security checks cannot fail the build.

내 컴퓨터에서 실행오늘 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

OpenAEO Audit

Check whether your website is retrievable and citable by AI answer engines — ChatGPT, Claude, Gemini, and Perplexity — from your terminal, in one command.

npx openaeo-audit yoursite.com

No install, no signup, no dependencies. It fetches your page the way an AI crawler does, scores it out of 100, and hands you the exact fixes that raise it.

AEO (Answer Engine Optimization) and GEO (Generative Engine Optimization) are the new SEO: your customers increasingly ask an assistant instead of scrolling ten blue links, and the winners are whoever the AI can *read, trust, and recommend*. This tool tells you where you stand.


Quick start

# pretty report

npx openaeo-audit example.com

machine-readable JSON (for CI, dashboards, scripts)

npx openaeo-audit example.com --json

Example output:

  example.com

54/100 · AI-ready AI-ready, not yet cited. Retrievable, but thin on quotable specifics and structured data. Fixable without a redesign.

✓ Content readable in raw HTML — 1,240 visible words ✗ robots.txt allows GPTBot, ClaudeBot, PerplexityBot — robots.txt disallows gptbot ✗ llms.txt index present — missing ⚠ Organization + WebSite JSON-LD — Organization ⚠ Product / Offer schema with price — no priced Offer ⚠ Answer + a number in the first 100 words — vague / no title or meta ✗ FAQPage schema present — missing ✓ Freshness (dateModified) present — dateModified set

6 fixes to raise your score:

  1. Unblock AI crawlers in robots.txt Why: A single inherited Disallow line can hide you from ChatGPT and Perplexity entirely. How: Explicitly Allow GPTBot, OAI-SearchBot, ClaudeBot, ... and link your sitemap. ...

What it checks

The audit runs the checks that most often decide whether an AI assistant can quote you:

CheckWhy it matters
Content readable in raw HTMLRendering support varies by crawler. Googlebot executes JavaScript; GPTBot, ClaudeBot and PerplexityBot do not. If content only appears after hydration, the crawlers that do not render see an empty page.
robots.txt allows AI botsOne inherited Disallow line can hide you from ChatGPT and Perplexity entirely.
Per-bot edge reachabilityrobots.txt is a request; a CDN is an enforcer. We fetch as GPTBot, OAI-SearchBot, ClaudeBot, Claude-SearchBot, PerplexityBot, Googlebot, Bingbot and Applebot, and record the status each is given. Google-Extended is a robots.txt token with no crawler behind it, so it is read rather than fetched.
llms.txt index presentAn emerging convention that hands assistants a clean, quotable summary of your site.
Organization + WebSite JSON-LDStructured identity is how assistants know who you are.
Product / Offer schema with priceLets assistants answer "how much does X cost" with your real number.
Answer + a number in the first 100 wordsAssistants lift the first concrete, specific sentence. Adjectives don't get quoted; numbers do.
FAQPage schemaMaps directly onto the question-shaped queries people type into assistants.
Freshness (dateModified)Assistants prefer sources that signal they're current.
Scoring

Each check scores pass (1.0), warn (0.4), or fail (0.0), averaged to a 0–100 score, then placed in a band:

ScoreBand
0–25Not retrievable
26–45Partial
46–64AI-ready
65–82AI-competitive
83–100Fully legible

Some failures cap the score no matter what else passes, because they block retrieval entirely:

  • Content invisible without JavaScript → capped at 25
  • Bot blocked at the edge (4xx/403) → capped at 25
  • robots.txt disallows AI bots → capped at 40

An honest low score you can act on beats a flattering one that hides the real problem.


Use it as a library

const { audit, remediationPlan } = require("openaeo-audit");

const result = await audit("example.com"); console.log(result.score, result.band); // 54 "AI-ready"

const fixes = remediationPlan(result); // ordered, highest-leverage first fixes.forEach(f => console.log(f.title));

audit(url) returns:

{

"domain": "example.com", "score": 54, "band": "AI-ready", "verdict": "AI-ready, not yet cited.", "sub": "Retrievable, but thin on quotable specifics ...", "fixCount": 2, "edgeOk": true, "bots": [ { "name": "GPTBot", "surface": "ChatGPT", "kind": "fetched", "status": 200, "ok": true }, ... ], "checks": [ { "label": "...", "status": "pass|warn|fail", "detail": "..." }, ... ] }

In CI

Fail a build if your score drops below a threshold:

score=$(npx openaeo-audit yoursite.com --json | node -e "process.stdin.on('data',d=>console.log(JSON.parse(d).score))")

[ "$score" -ge 65 ] || { echo "AEO score $score below 65"; exit 1; }


Use it from Cursor or Claude Code (MCP)

OpenAEO ships an MCP server, so your AI coding agent can audit your site and apply the fixes to your actual files — with you reviewing every edit. Nothing is uploaded, no account needed, and it never touches production.

Cursor — add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{

"mcpServers": { "openaeo": { "command": "npx", "args": ["-y", "openaeo-audit", "mcp"] } } }

Claude Code / Claude Cowork — run this in your project:

claude mcp add openaeo -- npx -y openaeo-audit mcp

…or copy examples/.mcp.json to your project root.

For a repeatable workflow, drop examples/aeo-fix-pass/ into .claude/skills/ — then /aeo-fix-pass runs the whole audit-fix-verify pass, including the guardrails (merge robots.txt rather than overwrite, never invent numbers for the placeholders).

Then just ask:

*"Audit example.com and fix my site."*

The agent will run the audit, write robots.txt and llms.txt, inject the JSON-LD into your , and re-check its work.

Not a developer? You only need your web address.

If your site is on Squarespace, Wix, Webflow, WordPress, Shopify, Framer, Ghost or Carrd, you don't have files to edit — so ask instead:

*"My website is remyfilm.co — help me show up in AI search."*

OpenAEO detects which platform you're on and replies with click-by-click steps for your admin ("Settings → Advanced → Code Injection → paste this in the Header"), plus the exact text to copy. It'll also tell you honestly when your platform *can't* do something, so you don't hunt for a setting that doesn't exist.

Tools it exposes
ToolWhat it does
aeo_fix_my_siteOne shot, no codebase needed. Audits, detects your platform, and returns where-to-paste steps for that platform's admin
aeo_auditAudits a live domain — score, band, every check, prioritised fixes
aeo_fix_filesGenerates paste-ready robots.txt, llms.txt, JSON-LD, and an opening paragraph
aeo_fix_htmlTakes a page's HTML, returns it with , meta description and JSON-LD injected — only adds what's missing, never rewrites your content
aeo_check_htmlScores HTML without changing it, to verify the edits worked
aeo_read_logReads a server access log and reports what the crawlers actually got: which arrived, what status, which paths, and whether each request really came from the operator it claimed. Parsed on your machine; the log never leaves it
aeo_verify_crawlerChecks one IP against the ranges the operator publishes. Answers verified, impostor, or unverifiable, and never says impostor without positive evidence

Hosted tools. These five call openaeo.dev and need OPENAEO_API_KEY, because they cannot run locally: citation testing needs provider keys for six assistants, and crawler intelligence reads a corpus collected across every audit anyone runs. Without a key they explain what they need rather than failing; the eight tools above are unaffected.

The line between the two lists is not commercial squeamishness, it is what each thing needs. Anything that only requires your own site and public data runs on your machine, including the crawler verification and the log reading. Anything that needs *other people's* domains, or a yesterday to compare today against, needs a server that has been watching.

ToolWhat it does
aeo_crawler_intelHas this site's CDN started refusing AI crawlers, and when did that change
aeo_citationsAsk the assistants a buyer question, record whether you were named
aeo_historyHow the score has moved over time
aeo_driftWhat was passing and is not any more
aeo_competitorsWhich domains get named instead of you
Reading a server log

An audit fetches your page from this machine wearing each crawler's user agent. That is an indication, not proof: a real crawler arrives from its operator's own network, and a firewall checking the address can refuse us while allowing the real one, or the reverse.

Your access log is what settles it.

npx openaeo-audit log /var/log/nginx/access.log
  Googlebot           refused        2 requests, 2 paths

403 x2 2 confirmed from the operator's own network /docs x1 /pricing x1

GPTBot impostor-only 1 request, 1 path 200 x1 1 request claimed to be GPTBot from outside its published range: 45.83.12.9

Two things fall out of this that a fetch cannot tell you. The first is when our reading was simply wrong, and the log corrects it. The second is that "GPTBot" in your log is a claim, not an identity: anyone can send that user agent, and plenty do, precisely because sites allow it. Every request is checked against the address ranges OpenAI, Anthropic, Google, Microsoft, Perplexity and Apple publish for exactly this purpose.

A crawler is only ever called an impostor on positive evidence. If an operator publishes nothing, or a feed fails to load, the answer is "unverifiable" and never "impostor": the cost of a false accusation here is you blocking traffic you wanted.

The log is read from disk, parsed in the process, and discarded. The one network call is fetching those public address ranges. Nothing from your log is uploaded, which is the entire reason this lives in the package rather than behind a login.


Requirements

  • Node.js 18+ (uses the built-in fetch)
  • Zero npm dependencies

What this is — and isn't

What's in this repo. The audit engine: 5 retrieval gates, 8 headline checks, and a per-bot edge matrix that fetches your site as 8 named AI crawlers and records the HTTP status each one is given, plus the generators for robots.txt, llms.txt and JSON-LD, the CLI and the MCP server. Free forever, MIT, no account, no telemetry. It's the same engine that powers the free tier at openaeo.dev.

What isn't. The hosted service: the full 49-check weighted rubric tracked over time, weekly citation testing across six assistant surfaces, drift alerts, competitor share-of-voice, and audit history. That runs on our infrastructure, not yours.

The split is not about withholding the good part. Fixing a site is mostly a one-time job, and everything you need for it is here. Whether an assistant names you changes every week, and that is a thing that has to keep running whether or not anyone is watching. Sell the service, not the permission.

If the CLI is useful, the hosted version is the next step. Both tell you the truth; the hosted one keeps telling you over time.


Contributing

Issues and PRs welcome — especially new checks, better detection heuristics, and fixes for edge cases in how frameworks render. Keep the engine dependency-free.

License

MIT © OpenAEO. Use it, fork it, build on it.

Trademark

"OpenAEO" and the OpenAEO logo are trademarks of OpenAEO

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기