Skip to main content
Glama
Merchantlee99

oculus-scoped-observation

Oculus — Scoped Observation for AI Agents

사용자가 Chrome에서 선택한 화면 영역만 AI 에이전트가 읽도록 만드는 로컬 관측 도구입니다.

AI에게 현재 웹 화면을 보여주고 싶지만, 브라우저 전체나 선택하지 않은 정보까지 넘기고 싶지는 않을 때 사용합니다.

사용자가 영역을 직접 선택하고 실제 전송 내용을 검토한 뒤 승인하면, Codex·Claude Code·Cursor 같은 AI 클라이언트가 그 영역의 이미지·텍스트·변경점만 읽을 수 있습니다. AI가 브라우저를 클릭하거나 입력하지는 못합니다.

케이스 스터디 · 최신 평가 결과 · 평가 기준 · 설계 · 증거 현황

30초 이해

사용자가 Chrome 영역 선택
→ 실제 전송될 이미지·텍스트 검토
→ 공유 승인
→ AI가 선택 영역만 읽음
→ 스크롤·탭 전환·중지 시 관측이 멈추거나 삭제됨

예를 들어 대시보드에서 지표 카드 하나만 AI에게 분석시키고 싶다고 가정합니다. 카드 아래에는 선택하면 안 되는 정보가 있습니다.

AI 공유 전 선택 범위와 실제 전송 데이터 검토

파란 테두리 안의 카드만 전송 대상입니다. 화면 아래의 OUTSIDE_SECRET_CANARY_8F42는 선택 밖 정보가 섞이지 않는지 검증하기 위한 값이며, 실제 관측 데이터에는 들어가지 않습니다.

공유 후에도 사용자는 AI가 보는 범위, 마지막 전송 시각, 실제 전송 데이터, 일시정지와 중지 버튼을 계속 확인할 수 있습니다.

공유 중인 선택 영역과 사용자 제어 UI

Related MCP server: Chrome Extension MCP Bridge

무엇을 만들었나

Oculus는 제품 프로토타입과 평가 시스템으로 구성됩니다.

구성

역할

Chrome 확장

영역 선택, 전송 전 검토, 이미지 crop, 제한적 민감 입력 가림

로컬 브리지

127.0.0.1에서 인증된 관측만 메모리에 보관

읽기 전용 MCP

AI 클라이언트가 현재 영역·이미지·변경점을 읽는 네 가지 도구

Playwright 평가

실제 Chromium·확장·브리지를 함께 실행해 ground truth와 비교

Fault matrix

잘못된 결과를 일부러 넣어 평가기가 실제로 실패하는지 검증

AI에게 제공되는 MCP 도구는 모두 읽기 전용입니다.

도구

AI가 읽는 것

oculus_list_regions

현재 활성 영역

oculus_observe_region

최신 또는 직전 관측의 텍스트·UI 의미 정보

oculus_get_region_image

사용자가 선택한 crop 이미지

oculus_get_changes

특정 버전 이후의 변경점

클릭·입력·파일 변경·외부 네트워크 쓰기 도구는 제공하지 않습니다.

검증된 결과

버전된 결과는 reports/에 저장되어 있으며, 누구나 같은 명령으로 다시 생성할 수 있습니다.

평가

현재 결과

실제 Chrome E2E 결과

30 / 30 통과

선택 밖 canary 직렬화 누출

0건

DOM text exact F1

1.000

접근성 element exact F1

1.000

의도적으로 주입한 결함 탐지

5 / 5

30개 결과의 구성:

  • observation 18개

  • transition 4개

  • lifecycle 8개

  • 범위 경계, password·OTP·payment 가림, 악성 지시 문구, ARIA, hidden DOM, disabled control, 링크, input, contenteditable, pause, stop, 재선택, 탭 전환

평가기 자체가 모든 결과를 통과시키는 것은 아닌지 확인하기 위해 다음 결함을 주입합니다.

  • 선택 밖 canary 혼입

  • 값은 바뀌었지만 sequence가 증가하지 않는 stale state

  • 중지 후 bridge region 잔존

  • password redaction 누락

  • 필요한 change event 누락

각 실행 보고서에는 Git commit, dirty state, Node·OS·Playwright·MCP SDK 버전, payload 크기와 제한된 latency 표본이 함께 기록됩니다.

왜 이 프로젝트를 만들었나

AI 제품에서는 모델 호출 이전의 입력 경계도 품질 문제입니다.

  • AI가 실제로 어떤 범위를 받았는가?

  • 선택 밖 정보가 섞이지 않았는가?

  • 화면이 바뀌었는데 오래된 관측을 최신처럼 사용하지 않는가?

  • 중지한 관측이 다시 살아나지 않는가?

  • 정상 케이스뿐 아니라 잘못된 결과도 평가기가 잡아내는가?

Oculus는 이 질문을 UI 설명이 아니라 재현 가능한 browser E2E, ground truth, hard gate, fault injection으로 답하는 포트폴리오 프로젝트입니다.

구조

flowchart LR
  U["사용자\n선택·검토·승인·중지"] --> E["Chrome 확장"]
  P["신뢰하지 않는 웹페이지"] --> E
  E -->|"선택 crop + 완전히 포함된 의미 정보"| B["로컬 브리지\n127.0.0.1"]
  B --> M["읽기 전용 MCP 4개"]
  M --> A["Codex · Claude Code · Cursor"]
  F["통제된 fixture와 ground truth"] --> T["Playwright 평가"]
  E --> T
  B --> T
  T --> R["버전된 JSON 결과"]

배포용 확장은 activeTab, scripting, storage만 요청합니다. Playwright는 Chrome의 실제 activeTab 사용자 제스처를 만들 수 없으므로, 자동화 과정에서 삭제되는 임시 확장에만 <all_urls>를 추가합니다. 배포 manifest의 최소 권한은 별도 contract test로 검증합니다.

직접 검증하기

요구사항: Node.js 20+, npm, Playwright Chromium

git clone https://github.com/Merchantlee99/oculus-scoped-observation.git
cd oculus-scoped-observation
npm ci
npx playwright install chromium
npm run portfolio:verify

증거를 다시 버전된 문서와 이미지로 반영하려면:

npm run evidence:publish

세부 재현 절차와 예상 출력은 docs/reproduction.md에 있습니다.

이 프로젝트가 주장하지 않는 것

현재 평가는 통제된 fixture에서 관측 레이어를 검증합니다. 따라서 다음을 주장하지 않습니다.

  • 모든 웹사이트에서 임의의 픽셀이 절대 유출되지 않는다

  • 모든 민감정보를 자동 탐지한다

  • 웹페이지 prompt injection을 완전히 막는다

  • VLM/OCR이 화면을 정확히 이해한다

  • 운영 환경의 production security audit이 끝났다

  • Codex·Claude Code·Cursor 실제 제품 호환 검증이 모두 완료됐다

정확한 통과 범위와 미검증 항목은 평가 카드증거 현황에 분리해 기록합니다.

저장소 구성

apps/chrome-extension/    선택·검토·crop·redaction·lifecycle UI
apps/local-bridge/        loopback 인증, bounded memory store, MCP server
evals/corpus/             버전된 ground truth
evals/src/                observation·transition·lifecycle scorer
tests/e2e/                실제 Chrome 확장 + 로컬 bridge 평가
tests/fixtures/           canary가 포함된 통제 브라우저 페이지
reports/                  공개할 JSON 결과와 요약
docs/                     설계·위협 모델·케이스 스터디·재현 절차

Security and license

이 저장소는 포트폴리오·연구용 소프트웨어이며 production 보안 통제가 아닙니다. 실제 비밀정보나 개인 화면을 public issue에 첨부하지 마세요.

Security policy · Threat model · MIT License

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Screenshot, diff, audit and sitemap-capture any web page — 5 MCP tools for AI agents.

  • A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,

  • Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Merchantlee99/oculus-scoped-observation'

If you have feedback or need assistance with the MCP directory API, please join our Discord server