← 목록
AI 2026-07-30 4KB 읽기 5분

크라우니AI브라우저 MCP 전수 테스트 + crowny:// 해석 선판정 수리

개요

크롬 확장(claude-in-chrome) 대체로 만든 crowny-ai-browser MCP를 전 도구 실측 테스트하고, 테스트에서 드러난 미등록 crowny:// 앱의 조용한 실패(ok:true인데 about:blank)를 수리했다.

1) 전수 테스트 결과 — 전 기능 PASS

도구테스트결과
crowny_navigatehttps://deacon.crowny.org앱 자동기동, port 9841, pid 13441
crowny_read_page요소 5 + 본문tag/type/href/좌표/w·h, viewport 1244×735
crowny_computer screenshotPNG101,423 bytes, 육안 정상
crowny_computer click제목 inputtarget: INPUT 반환
crowny_computer type한글 입력INPUT\|브라우저MCP 테스트 입력
crowny_computer keyTab포커스 이동
crowny_read_console_messages콘솔0건
crowny_tabs list탭 목록index/url/title/isApp
crowny:// 스킴crowny://CADcad.crowny.org, "Crowny CAD"
주입 경로는 전부 via:"js" 자동 폴백(포커스 무탈취).

운용 주의 — read_page → click 은 연속으로

deacon 페이지는 10초 자동 갱신 + 상단 "서버 대기중" 배너 유무로 레이아웃이 ~60px 밀린다. 같은 좌표(368,696)가 갱신 전엔 TEXTAREA, 재조회 후엔 INPUT에 맞았다. 좌표계 자체는 정확하고, read와 click 사이에 다른 호출을 끼우면 어긋난다. target 반환값이 오조준을 즉시 드러내므로 이 값을 항상 확인한다.

2) 수리 — crowny:// 미등록 앱의 조용한 실패

증상

crowny://monitoring → navigate가 ok:true 반환, 실제로는 about:blank + "페이지를 불러올 수 없습니다".

근본원인

normalizeURLString(crowny-ai-content.m:1680)은 등록 앱만 crowny://<앱>을 그대로 돌려주고, 미등록이면 말미 폴백(crowny-ai-content.m:1829 — 콜론 포함 문자열은 http:// 접합)으로 새어나가 http://crowny://monitoring이라는 무효 URL이 된다. 제어서버는 navigateTo 호출 성공만 보고 ok:true를 돌려주므로 호출자가 실패를 알 수 없었다.

수리

  • native/crowny-ai-control.mctlCrownySchemeResolvable() 추가. crowny:// 스킴이면
app/web/3d(네이티브 직접 라우팅)는 통과, 그 외는 normalizeURLString 결과가 다시 crowny://로 시작하는지로 등록 여부 판정. 미등록이면 ok:false + 사유 반환(이동 자체를 하지 않음).
  • native/crowny-ai.hnormalizeURLString: 을 헤더에 노출(제어서버 선판정용).
  • mcp/mcp-server.js — navigate 실패 시 1.2초 로드 대기 없이 즉시 반환(기다려도 about:blank).

한선씨 동반(정본)

  • native/제어서버.한선접두일치/네이티브라우팅/스킴해석가능 추가, 자체시험 42/42 → 51/51 PASS
  • mcp/브라우저MCP.한선이동후속/로드대기밀리초 추가, 자체시험 32/32 → 36/36 PASS
  • 학습 등재: intent 제어서버_crowny스킴_해석선판정_조용한실패차단

검증(라이브 실측)

make ai(신규 경고0 — 사전존재 4건만) → install-ai-app.sh(재서명 OK) → 상주 앱(pid 13441) 무중단을 위해 별도 인스턴스를 CROWNY_CTL_PORT=9843로 띄워 종단 확인:

  • 미등록 2종(monitoring·nosuchapp) → ok:false + "crowny:// 미등록 앱 — …"
  • 등록 17종(mail·canvas·gametools·os·vps·trader·erp·office·building·today·space·tree·hall·ev·factory·fab·cloudpick) → 전부 ok:true (회귀 0)
  • crowny://app/런처·일반 https → ok:true
테스트 인스턴스 종료 후 상주 앱 9841 정상 확인. 반영은 상주 앱 다음 재시작부터.

관련 파일

  • /Users/ef/CrownyBrowser/native/crowny-ai-control.m (ctlCrownySchemeResolvable, ctlNavigate)
  • /Users/ef/CrownyBrowser/native/crowny-ai.h (normalizeURLString 노출)
  • /Users/ef/CrownyBrowser/native/제어서버.한선 (정본 51/51)
  • /Users/ef/CrownyBrowser/mcp/mcp-server.js · mcp/브라우저MCP.한선 (정본 36/36)

잔여 이슈

  • 상주 CrownyAI 재시작 시 최종 반영(디스크 교체만 완료)
  • 옴니바(사용자 직접 입력) 경로는 무수정 — 미등록 crowny:// 입력 시 여전히 검색/폴백으로 감.
제어서버(자동화 표면)만 엄격 판정.
  • MCP 잔여(기존): 멀티탭·스크롤·wait·접근성 트리