Skip to main content
Glama
nvk
by nvk

LLM Wiki for Chrome

공개적이고 콘텐츠가 없는 실행 기반으로, 대상 LLM Wiki 어댑터를 위한 것입니다. 하나의 Chrome 확장 프로그램, 하나의 허용 목록에 등록된 Native Messaging 호스트, 개인 Unix 소켓 릴레이, 그리고 버전이 지정된 타입드 작업 계약을 제공합니다.

확장 프로그램과 로컬 커넥터 소스는 공개되어 있습니다. 브라우저 권한, 페이지 데이터, 자격 증명, 개인 결과 슬롯, 런타임 소켓은 로컬에 남아 있으며 저장소 콘텐츠가 아닙니다. 공개 소스 제공은 Chrome 웹 스토어 출시나 사용자 데이터 게시 권한이 아닙니다.

이것은 자율적인 자연어 브라우저 에이전트가 아닙니다. 공유 탭, 접근성 스냅샷, 뷰포트 스크린샷, 의미론적 클릭, 개인 텍스트 삽입, 키 코드, 스크롤 등 작은 구조화된 에이전트 도구 표면을 노출하며, 모든 호출을 동일한 정확한 대상 타입드 프로토콜로 컴파일합니다. 임의의 JavaScript, 원시 CDP 메서드, 다운로드된 코드, 주변 브라우저 접근, 또는 페이지에서 작성된 작업을 허용하지 않습니다. 공급자별 어댑터는 여전히 중요한 워크플로우에 대해 더 강력한 라우팅, 인증, 저널, 복구, 멱등성, 최종 읽기 확인 검증을 담당합니다.

LLM Wiki for Chrome이 명시적으로 공유된 하나의 탭에 연결됨

설치, 협업, 보안 및 문제 해결 가이드 →

클릭하여 협업하는 흐름

확장 프로그램은 지속적인 사이트 접근이나 페이지별 Chrome 호스트 등록이 필요하지 않습니다. 사용자가 HTTPS 페이지를 열고 확장 프로그램 작업을 클릭합니다. Chrome에서의 이름은 LLM Wiki for Chrome입니다. 브라우저 실행기 용어는 내부 프로토콜과 구현에만 사용됩니다. 해당 Chrome 사용자 제스처는 정확한 탭, URL, 출처에 바인딩된 새로운 임시 협업 권한을 생성합니다. 추가 탭을 클릭하면 최대 16개의 권한으로 구성된 명시적 작업 공간이 구축됩니다. 실행기는 관련 없는 탭을 열거하지 않습니다. 동일 출처 탐색은 정확한 권한 ID와 URL을 회전시켜 오래된 프로그램이 안전하게 실패하도록 합니다. 탭이 출처를 벗어나거나 닫히거나 사용자가 사이드 패널에서 해당 탭 또는 전체 작업 공간을 중지하면 권한이 취소됩니다.

활성 권한은 페이지에 고정된 녹색 윤곽선과 LLM WIKI • CONTROLLED 알약, 그리고 ON 작업 배지로 표시됩니다. 마커는 패키지화되어 있고, 비대화형이며, 콘텐츠를 인식하지 않으며, 확장 프로그램 클릭 후에만 주입됩니다. 권한이 취소되면 제거되며 페이지나 작업 콘텐츠를 수신하지 않습니다. 작업 리스너는 Chrome의 activeTab 권한을 수신하고 해당 정확한 탭에 대해 동기적으로 사이드 패널을 엽니다. 패널 로드는 작업으로 생성된 권한을 확인합니다. 릴레이된 패널 메시지는 패널을 열거나 사용자 제스처를 조작하려고 시도하지 않습니다. 연결 버튼은 상태/재시도 컨트롤이며, activeTab 권한을 생성하는 도구 모음 제스처를 대체하지 않습니다. 연결됨 상태는 권한이 활성 로컬 커넥터를 통해 게시되었음을 의미하므로, 에이전트는 사용자에게 확장 프로그램 내부를 검사하도록 요청하지 않고 browser_status로 준비 상태를 감지할 수 있습니다.

로컬 에이전트와 대상 어댑터는 네이티브 소켓을 통해 개인 작업 공간을 검색합니다. 직접 에이전트는 먼저 정확히 클릭된 권한을 나열하고 모든 도구 호출에 하나의 협업 ID를 지정해야 합니다. 그런 다음 서버는 고정된 타입드 프로그램을 컴파일하고 권한이나 페이지가 변경되면 안전하게 실패합니다. 클릭은 해당 정확한 탭에 대한 제한된 읽기 및 구조화된 상호 작용을 승인합니다. 주변 브라우저 접근을 부여하지 않습니다. 중요한 공급자 워크플로우는 여전히 더 강력한 전제 조건과 독립적인 검증을 위해 대상 어댑터를 사용합니다.

어댑터 코드는 여전히 한 번 설치되고 신뢰되어야 합니다. 협업 권한은 브라우저 UI를 통해 검사하고 확인할 수 있는 워크플로우에 대해서만 리소스별 등록 및 공급자 OAuth를 대체합니다. 대상 어댑터는 선택적 더 강력한 검증 경로로 자사 API를 유지할 수 있습니다.

변경 프로그램은 assert_ax_private_sha256으로 공급자 소유의 개정 지문을 바인딩할 수 있습니다. 실행기는 제어된 변경 경계 직전에 노출된 정확한 탭에 대한 제한된 접근성 프로젝션을 다시 계산하고 드리프트가 발생하면 안전하게 실패합니다. 예상 해시는 개인 값으로 유지됩니다. 프로젝션된 페이지 콘텐츠나 해시는 사이드 패널에 표시되지 않습니다.

공급자 어댑터는 번들된 클라이언트를 직접 사용합니다:

from browser_executor.client import BrowserExecutorClient

executor = BrowserExecutorClient()
collaboration = executor.collaboration_for_url(expected_url)
if collaboration is None:
    raise RuntimeError("click the extension on the target page")

# Bind collaboration_id, url, and origin into the signed typed program.
result = executor.run(program, private_values=private_values)

Codex 및 기타 MCP 클라이언트는 프로그램을 직접 구성하는 대신 공급자 중립적인 직접 협업 표면을 사용합니다:

.venv/bin/python adapter.py mcp-server

MCP 서버는 명시적 탭 수명 주기, 정확한 동일 출처 탐색, 대기, 접근성 스냅샷, 뷰포트/영역/전체 페이지 스크린샷, 요소 기하학, 클릭/호버/타이핑/선택/드래그/키/스크롤, 제한된 진단, 등록된 루트 파일 전송, 비밀번호 관리자 UI 활성화, 인메모리 워크플로우 초안 작성을 포함하는 고정된 구조화된 도구 인벤토리를 게시합니다. 임의의 프로그램, CSS 선택자, 스크립트, 자연어 실행 도구, 또는 관련 없는 탭 쿼리가 없습니다. 페이지 콘텐츠는 활성 요청에 대해서만 호출하는 로컬 에이전트에 반환되며 이 저장소에 유지되지 않고 사이드 패널에 표시되지 않습니다.

Related MCP server: browser-mcp

개발 상태

현재 개발 브랜치는 0.0.1 기반을 확장하여 첫 번째 제한된 실행 조각을 포함합니다:

  • 엄격한 프로그램 해싱 및 검증;

  • Python 클라이언트 및 MV3 검증기를 위한 교차 언어 정책 결정 테스트;

  • 정확한 HTTPS 대상 및 제한된 작업 선언;

  • 지속적인 호스트 권한이 없는 클릭으로 생성된 activeTab 권한;

  • 개인 정확한 URL 조회가 있는 제한된 다중 탭 협업 작업 공간;

  • 로컬 클라이언트에 의해 집계된 Chrome 인스턴스별 네이티브 소켓으로, 여러 Chrome 프로필이나 프로세스가 서로의 공유 탭을 덮어쓰지 못함;

  • 제어되는 탭을 정확히 보여주는 고정된 페이지 윤곽선/알약 및 도구 모음 배지;

  • 명시적 권한만 포함하는 녹색 LLM Wiki 탭 그룹;

  • 동일 출처 열기/탐색/히스토리/새로고침, 정확한 탭 포커스/닫기, 의미론적 대기, 호버, 옵션 선택, 드래그/드롭, 요소로 스크롤 기본 요소;

  • 첨부된 하위 프레임 대상에 걸친 평탄화되고 제한된 접근성 수집(세션 바운드 기하학 및 상호 작용 포함); 의미론적 AX 발견은 임의의 DOM 순회를 활성화하지 않고 열린 섀도우 트리도 포함;

  • 영역 및 크기 제한이 있는 전체 페이지 스크린샷, 의미론적 요소 기하학, 제한된 성능 메트릭;

  • realpath 검사, 완료된 다운로드 확인, 위험 상태 강제, 스트리밍 해시, 암시적 파일 시스템 권한 없음이 있는 머신 로컬 업로드/다운로드 루트;

  • 수동, 승인된 계획, 자동 제한된 권한 부여 모드(보호된 작업은 항상 로컬 확인 및 콘텐츠가 없는 세션 결정 카운터로 대체됨);

  • 콘텐츠가 없는 완료/주의 알림;

  • 개인 결과가 한 번 검색되고 권한이 MCP 프로세스 또는 탭 권한과 함께 만료되는 취소 가능한 인메모리 읽기 전용 스냅샷 일정;

  • 이미 입력된 에이전트 작업을 해시 바운드, 검토 필요, 의도적으로 재생 불가능한 공급자 드라이버 초안으로 인메모리 기록;

  • 자격 증명 값을 수신하지 않는 비밀번호 관리자 UI 활성화;

  • 대상 어댑터를 정확한 권한, 승인된 계획 해시, 하나의 변경 콜백, 어댑터 소유 사후 조건 검증에 바인딩하는 공급자 드라이버 SDK;

  • 작업 리스너 탭 권한, 사이드 패널 상태/재시도 컨트롤, 콘텐츠가 없는 에이전트 준비 도구;

  • 콘텐츠가 없는 사이드 패널 작업 공간, 진행률 표시기, 탭별 취소 및 취소;

  • 별도의 읽기 및 변경 기능;

  • Python 클라이언트의 하나의 제어된 변경 콜백;

  • 안정적인 확장 프로그램 ID 및 정확한 네이티브 호스트 출처;

  • 개인 로컬 상태, 짧은 소켓 경로, 메시지 제한, 하나의 활성 작업;

  • 정확한 탭 활성화 및 검토된 동일 출처 탐색;

  • 확장 프로그램 클릭을 즉시 검색 가능하고 공급자 OAuth 권한 없이 에이전트가 제어할 수 있게 하는 직접 로컬 MCP 에이전트 표면;

  • 허용 목록에 등록된 DOM 및 접근성 트리 읽기, 대기, 개인 추출;

  • 실행기 측 영속성이 없는 바이트 제한 개인 뷰포트 JPEG 캡처;

  • 제한된 뷰포트 스크롤, 중복 제거 긴 목록 수집, 개인 AX 링크/설명 추출;

  • 개인 결과 슬롯을 통한 제한된 정확한 탭 브라우저 로그 캡처;

  • 쿼리 문자열을 제거하고 헤더, 본문, 쿠키, 개시자, 보안 세부 정보를 무시하는 제한된 정확한 탭 요청 메타데이터 캡처;

  • 스칼라 인수만 유지하고 원격 객체를 평가하거나 역참조하지 않는 제한된 정확한 탭 콘솔 API 캡처;

  • 타입드 클릭, 포커스, 키 코드, 개인 텍스트 삽입 작업;

  • 취소, 대상 포커스 드리프트 감지, 결과 크기 제한, 최선 노력 디버거 정리(취소는 다음 제한된 작업에서 중지되며 이미 시작된 변경을 롤백할 수 없음);

  • 공급자 효과 전의 일회성 사전 변경 권한 부여;

  • 경로 없는 llm-wiki 자체 테스트 매니페스트;

  • 연결됨, 실행 중, 권한 부여, 실패 상태가 있는 콘텐츠 없는 확장 프로그램 상태 패널.

이 브랜치는 릴리스나 설치된 공급자 대체가 아닙니다. 대상 어댑터 섀도우 실행, 공급자 소유 검증, 업그레이드/롤백 테스트, 명시적 릴리스 승인은 통합된 0.1.0 이전에 여전히 필요합니다.

저장소 경계

허용된 추적 자료:

  • 실행 가능한 코드 및 확장 프로그램 자산;

  • 프로토콜 스키마 및 보안 문서;

  • 합성 픽스처 및 결정적 테스트.

실제 리소스 URL 또는 식별자, 페이지 텍스트, 스크린샷, 캡처, 계획, 영수증, 추출된 결과, 쿠키, 자격 증명, 브라우저 저장소 또는 공급자 코퍼스를 절대 커밋하지 마십시오. 런타임 입력 및 출력은 대상 어댑터의 별도로 제어되는 데이터 플레인에 남아 있으며 가능하면 메모리에 유지되어야 합니다.

아키텍처

local agent through fixed MCP tools OR a targeted provider adapter
  -> select one exact user-created click grant from the private collaboration workspace
  -> deterministic typed program + exact approved plan hash
  -> BrowserExecutorClient over a private Unix socket
  -> allowlisted Native Messaging host
  -> shared MV3 extension on the exact user-exposed tab
  -> one-shot before-mutation challenge when required
  -> private result slots returned only to the targeted adapter

llm-wiki는 이 저장소의 경로 없는 self-test 어댑터 매니페스트를 볼 수 있지만, 외부 편집 또는 연구 요청을 실행기로 직접 라우팅하지 않습니다.

패키징 및 설치

설치 가능한 제품은 Chrome의 보안 경계에서 분할됩니다:

  • llm-wiki-chrome 네이티브 컴패니언: Python 클라이언트, 고정 MCP 서버, Native Messaging 호스트, 설치 프로그램, 진단, 패키지된 확장 프로그램 자산;

  • LLM Wiki for Chrome: 공개 소스 MV3 확장 프로그램 ZIP. Chrome 웹 스토어 게시는 명시적 승인이 필요한 별도의 릴리스 단계로 남아 있습니다. 압축 해제된 경로를 로드하는 것은 개발 워크플로우로 유지됩니다.

개발 전용 Homebrew 포뮬러는 nvk/tap에서 HEAD 빌드로 제공됩니다. 의도적으로 안정적인 릴리스가 아닙니다:

brew install --HEAD nvk/tap/llm-wiki-chrome
llm-wiki-chrome install
llm-wiki-chrome doctor

install은 정확한 출처의 Native Messaging 등록을 작성합니다. 데몬을 설치하지 않습니다: Chrome은 필요 시 호스트를 시작하고 표준 입력/출력을 통해 통신합니다. 각 Chrome 호스트는 결정적 경로 /tmp/llm-wiki-chrome-<uid>/ 아래에 개인 프로세스별 소켓을 생성합니다. CLI, MCP 서버 및 대상 어댑터는 해당 소켓을 자동으로 발견합니다. 일반적인 소켓 인수, 포트, 페어링 코드 또는 환경 변수가 없습니다. 기존 환경 재정의는 예외적인 샌드박스 또는 개발 설정에 대해서만 유지됩니다.

압축 해제된 개발 설치의 경우, 패키지에 정확한 경로를 요청하십시오:

llm-wiki-chrome extension-path

chrome://extensions에서 해당 디렉토리를 로드하고 llm-wiki-chrome doctor를 실행하십시오. healthy: true는 패키지 및 Native Messaging 등록을 확인합니다. connected: true는 Chrome이 확장 프로그램의 네이티브 포트를 열어 둔 동안 나타납니다. 다음으로 네이티브 컴패니언 등록만 제거하십시오:

llm-wiki-chrome uninstall

파일 전송은 기본적으로 비활성화되어 있습니다. ~/.config/llm-wiki/browser-executor.json에서 명시적인 머신 로컬 루트만 활성화하십시오:

{
  "upload_roots": ["/absolute/private/staging/uploads"],
  "download_roots": ["/absolute/private/staging/downloads"]
}

모든 경로는 최종 심볼릭 링크를 거부하고, 상위 체인을 확인하며, 등록된 루트 내에 있어야 합니다. 업로드 값은 개인 슬롯에서만 이동합니다. 다운로드는 완료되어야 하며, Chrome에서 안전한 것으로 수락되어야 하며, 등록된 루트 내에 있어야 하며, 호출자에게 반환되기 전에 로컬 컴패니언에 의해 해시됩니다.

사이드 패널은 Manual, Approved plan, Automatic bounded jobs를 제공합니다. 기본값은 Approved plan입니다. 파일 업로드, 대화 상자 처리, 자격 증명 브로커 활성화는 여전히 보호된 작업으로 남아 있으며 항상 로컬 수동 확인이 필요합니다. 인증 기록은 페이지 콘텐츠 로그가 아닌 콘텐츠가 없는 세션 카운터입니다.

워크플로 녹화는 고정된 MCP 표면을 통해 이미 요청된 입력된 작업만 캡처합니다. browser_record_stop은 메모리 내 해시 바인딩, 검토 필요 초안을 반환합니다. 일반 실행기는 이를 재생하지 않습니다. 타겟팅된 어댑터는 버전이 지정된 공급자 워크플로를 검토, 컴파일, 승인, 저널링, 독립적으로 확인해야 합니다. 직접 표면은 정확한 권한 부여 및 MCP 프로세스가 활성화되어 있는 동안 읽기 전용 스냅샷의 제한된 메모리 내 스케줄링만 허용합니다. 지속적 또는 반복 스케줄링, 변형, 복구 및 저널은 타겟팅된 어댑터 또는 외부 스케줄러에 남아 있으며 확장의 의도 레이어에는 절대 남지 않습니다.

타겟팅된 어댑터는 browser_executor.driver.ProviderDriverSession을 사용하여 실행 경계를 중앙 집중화할 수 있으며, 이는 계획 해시 또는 정확한 권한 부여 드리프트를 거부하고 어댑터 소유의 status: verified 사후 조건을 요구합니다.

게시하지 않고 결정적이고 콘텐츠가 없는 Chrome Web Store ZIP을 빌드하세요:

python3 scripts/package_extension.py

이러한 빌드 명령은 릴리스, 태그, 스토어 업로드 또는 설치된 업그레이드를 수행하지 않습니다.

개발

python3 -m venv .venv
.venv/bin/python -m unittest discover -s tests -v
.venv/bin/python -m compileall -q adapter.py browser_executor tests
node --check extension/service-worker.js
node --check extension/protocol.mjs
node --check extension/executor.mjs
node --check extension/sidepanel.js

결정적 제품군은 격리된 실제 브라우저 스모크 테스트로 보완됩니다. 이를 위해서는 일치하는 Chrome for Testing 및 ChromeDriver 쌍과 런타임에 제공되는 정확한 승인된 읽기 대상이 필요합니다. 일반 Chrome 프로필을 건드리지 않으며 캡처된 뷰포트를 인쇄, 유지 또는 반환하지 않습니다:

LLM_WIKI_BROWSER_E2E_TARGET_URL='<exact approved HTTPS target>' \
  .venv/bin/python tests/chrome/run_extension_e2e.py \
    --chrome '/path/to/Google Chrome for Testing' \
    --chromedriver '/path/to/chromedriver'

테스트 하네스는 압축 해제된 확장 프로그램을 임시 디렉토리에 복사하고, 테스트 전용 확장 페이지를 추가하며, 헤드리스 Chrome에서 서명된 읽기 프로그램을 실행하고 콘텐츠가 없는 카운터만 반환합니다. Chrome 바이너리는 리포지토리에서 다운로드 또는 설치되지 않습니다.

셀프 테스트는 콘텐츠가 없습니다:

.venv/bin/python adapter.py describe
.venv/bin/python adapter.py execute --request /private/request.json \
  --response /private/response.json

소스 체크아웃의 네이티브 호스트를 한 번 설치하고 MCP 명령을 등록하세요:

.venv/bin/python adapter.py install

codex mcp add llm-wiki-browser \
  -- .venv/bin/python adapter.py mcp-server

등록 후 에이전트 세션을 다시 시작하면 고정된 도구 인벤토리를 사용할 수 있습니다. Chrome은 사용자가 특정 HTTPS 탭에서 확장 프로그램을 클릭할 때까지 아무것도 노출하지 않으며, 협업을 중지하면 권한이 취소됩니다. 개인 기본 /tmp 디렉토리에 액세스할 수 없는 예외적인 런타임은 두 명령 모두에 대해 일관되게 LLM_WIKI_BROWSER_EXECUTOR_NATIVE_SOCKET을 설정할 수 있지만, 이는 패키지된 사용자 흐름의 일부가 아닙니다.

browser-install은 정확한 출처의 Native Messaging 매니페스트와 실행기를 작성합니다. 명시적 설치 또는 마이그레이션 작업 중에만 사용하세요. 압축 해제된 확장 프로그램 로드, 일반 Chrome 프로필 변경, 설치된 복사본 업그레이드는 테스트 스위트의 일부가 아니며 명시적인 사용자 지시가 필요합니다.

보안 모델

실행기는 Python과 확장 프로그램에서 독립적으로 정식 프로그램 해시, 계획 해시, 활성 협업 ID, 고정 드라이버 ID/버전, 정확한 대상, 기능, 제한, 작업 어휘, 개인 슬롯 및 결과 허용 목록을 검증합니다. 지속적인 호스트 권한, <all_urls> 액세스 또는 콘텐츠 스크립트가 없습니다. Chrome의 activeTab 권한은 사용자의 확장 프로그램 클릭에 의해서만 생성됩니다. 인터프리터는 고정된 CDP 메서드 허용 목록을 가지며 Runtime.evaluate, 원시 메서드, 스크립트 또는 페이지 생성 작업을 허용하지 않습니다.

고정된 CDP 허용 목록에는 쌍을 이루는 Log.enable/Log.disableNetwork.enable/Network.disable 창도 포함됩니다. 후자는 제한된 개인 요청 메서드, 출처/경로, 리소스 유형, 상태, MIME, 캐시 및 실패 스칼라만 유지합니다. 쿼리 문자열을 제거하고 헤더, 본문, 쿠키, 개시자, 보안 세부 정보 또는 요청 ID를 절대 유지하지 않습니다. 어떤 기능도 원시 진단 메서드나 요청 가로채기를 노출하지 않습니다. 별도의 쌍을 이루는 Runtime.enable/Runtime.disable 창은 제한된 개인 Runtime.consoleAPICalled 유형, 타임스탬프 및 스칼라 인수만 유지합니다. 컨텍스트, 스택, 설명, 미리보기 및 객체 ID를 무시하고 평가, 컴파일, 함수 호출, 스크립트 실행 또는 속성 액세스를 절대 허용하지 않습니다. 각 Chrome 네이티브 호스트 프로세스는 구성된 기본 경로 아래에 고유한 개인 소켓을 바인딩합니다. 클라이언트는 엄격하게 이름이 지정된 소켓만 발견하고, 명시적 협업 작업 공간을 집계하며, 정확한 권한을 소유한 단일 호스트에 작업을 라우팅합니다. 이렇게 하면 여러 Chrome 프로필이 서로의 릴레이를 대체하는 것을 방지하면서 작업당 정확히 하나의 탭을 유지합니다.

실행기는 신뢰할 수 있는 로컬 코드이며 운영 체제 샌드박스가 아닙니다. 타겟팅된 어댑터는 모든 중요한 공급자 효과를 승인하고 공급자의 최종 상태를 독립적으로 증명할 책임이 있습니다. 직접 변형 도구는 하나의 내부 일회성 경계를 넘지만 의도적으로 공급자 트랜잭션 보장을 주장하지 않습니다. SECURITY.md를 참조하세요.

Install Server
F
license - not found
B
quality
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

  • A
    license
    -
    quality
    B
    maintenance
    MCP server for controlling a local camofox-browser instance, enabling LLM agents to perform web automation tasks such as navigation, interaction, snapshotting, and content extraction.
    53
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Agent-native browser control MCP server that enables AI agents to browse and interact with web pages via accessibility tree snapshots and ref ID-based commands.
    15
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.

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

  • Live browser debugging for AI assistants — DOM, console, network via MCP.

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/nvk/llm-wiki-chrome'

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