크라우니AI브라우저 MCP 전수 테스트 + crowny:// 해석 선판정 수리
개요
크롬 확장(claude-in-chrome) 대체로 만든 crowny-ai-browser MCP를 전 도구 실측 테스트하고,
테스트에서 드러난 미등록 crowny:// 앱의 조용한 실패(ok:true인데 about:blank)를 수리했다.
1) 전수 테스트 결과 — 전 기능 PASS
| 도구 | 테스트 | 결과 |
|---|---|---|
| crowny_navigate | https://deacon.crowny.org | 앱 자동기동, port 9841, pid 13441 |
| crowny_read_page | 요소 5 + 본문 | tag/type/href/좌표/w·h, viewport 1244×735 |
| crowny_computer screenshot | PNG | 101,423 bytes, 육안 정상 |
| crowny_computer click | 제목 input | target: INPUT 반환 |
| crowny_computer type | 한글 입력 | INPUT\|브라우저MCP 테스트 입력 |
| crowny_computer key | Tab | 포커스 이동 |
| crowny_read_console_messages | 콘솔 | 0건 |
| crowny_tabs list | 탭 목록 | index/url/title/isApp |
| crowny:// 스킴 | crowny://CAD | cad.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.m—ctlCrownySchemeResolvable()추가. crowny:// 스킴이면
normalizeURLString 결과가 다시 crowny://로
시작하는지로 등록 여부 판정. 미등록이면 ok:false + 사유 반환(이동 자체를 하지 않음).
native/crowny-ai.h—normalizeURLString:을 헤더에 노출(제어서버 선판정용).mcp/mcp-server.js— navigate 실패 시 1.2초 로드 대기 없이 즉시 반환(기다려도 about:blank).
한선씨 동반(정본)
native/제어서버.한선—접두일치/네이티브라우팅/스킴해석가능추가, 자체시험 42/42 → 51/51 PASSmcp/브라우저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
관련 파일
/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·접근성 트리