firefox-browser-control
Firefox Browser Control for Codex
Codex에서 이미 열어 둔 Firefox 세션을 제어하세요. 이 플러그인은 비공개가 아닌 탭을 나열하고 정리하며, 네이티브 탭 그룹을 만들고, 탭을 안전하게 열거나, 활성화하거나, 이동하거나, 닫을 수 있습니다.
Firefox 확장 프로그램과 해당 브리지는 TCP 리스너, 원격 측정, 광고, 확장 프로그램의 직접적인 네트워크 요청이 없는 상태로 로컬에서 실행됩니다. 사용자가 요청한 브라우저 데이터는 사용자가 구성한 Codex 환경으로 전달됩니다. 개인정보 보호정책을 참조하세요.
할 수 있는 일
Firefox 동반 확장 프로그램이 연결되어 있는지 확인합니다.
탭과 네이티브 탭 그룹을 나열합니다.
선택한 탭을 그룹화하거나 URL/제목 일치 기준으로 탭을 그룹화합니다.
탭 그룹 해제, 열기, 활성화, 이동, 닫기를 수행합니다.
페이지 콘텐츠를 읽거나, 요소를 클릭하거나, 양식을 작성하거나, 비공개 창을 검사하거나, HTTP(S)가 아닌 URL로 이동하는 것은 의도적으로 불가능합니다.
프롬프트 예시:
“Firefox에서 열린 Gmail 탭을 그룹화해 줘.”
“Firefox에서 열린 탭 목록을 보여 줘.”
“프로젝트 문서를 새 Firefox 탭에서 열어 줘.”
Related MCP server: universal-browser-bridge
설치
전체 설정 방법은 plugins/firefox-browser-control/INSTALL.md에서 확인하세요. 간략한 요약은 다음과 같습니다:
git clone https://github.com/thenailedone/firefox-browser-control.git
cd firefox-browser-control
codex plugin marketplace add "$PWD"
codex plugin add firefox-browser-control@firefox-browser-control
node plugins/firefox-browser-control/scripts/install-native-host.mjs사용할 수 있게 되면 Mozilla Add-ons에서 서명된 확장 프로그램을 설치하세요. 개발 중에는 about:debugging#/runtime/this-firefox에서 plugins/firefox-browser-control/extension/manifest.json을 임시로 로드하세요. 그런 다음 새 Codex 작업을 시작하세요.
작동 방식
구현체는 네 부분으로 이루어진 로컬 브리지입니다:
Codex
│ MCP over stdio
▼
MCP server (Node.js)
│ newline-delimited JSON over a user-only Unix socket
▼
Firefox native-messaging host (Node.js)
│ Firefox native messaging over stdin/stdout
▼
Firefox WebExtension
│ WebExtension APIs
▼
Non-private tabs and tab groups in the running Firefox profileCodex는 플러그인 매니페스트에서
.mcp.json을 발견하고scripts/mcp-server.mjs를 실행합니다.MCP 서버는
firefox_list_tabs,firefox_group_tabs같은 명확히 정의된 도구를 노출합니다.도구 호출에는 임의의 요청 ID가 할당되고 로컬 Unix 소켓을 통해 전송됩니다.
scripts/native-host.mjs는 Firefox의 길이 접두부 네이티브 메시징 프로토콜을 통해 그 요청을 중계합니다.extension/background.js는 Firefox WebExtension API로 요청된 작업을 수행하고 같은 경로로 결과를 반환합니다.
Firefox 확장 프로그램이 연결되어 있는 동안 네이티브 호스트가 소켓을 소유합니다. MCP 서버는 도구 호출마다 짧은 수명의 소켓 연결을 만들기 때문에 Firefox 외부에 백그라운드 데몬이 필요하지 않습니다.
프로토콜이 두 개인 이유
Codex는 stdio를 통해 Model Context Protocol을 사용하지만, Firefox 확장 프로그램은 네이티브 메시징을 통해서만 로컬 프로그램과 대화할 수 있습니다. 작은 Unix 소켓 릴레이가 TCP 포트를 열거나 브라우저를 네트워크에 노출하지 않으면서 두 환경을 연결합니다.
제공 도구
도구 | 설명 |
| 확장과 네이티브 브리지가 연결되었는지 확인합니다. |
| 탭 ID, 정제된 출처, 창, 그룹 ID를 반환합니다. |
| Firefox 네이티브 탭 그룹 ID와 표시 상태를 나열합니다. |
| 명시된 탭 ID를 이름 있는 그룹에 넣습니다. |
| URL/제목으로 탭을 매칭하여 창별로 그룹화합니다. |
| 탭을 현재 그룹에서 제거합니다. |
| URL을 엽니다. |
| 선택한 탭의 주소를 이동합니다. |
| 탭과 해당 창에 초점을 맞춥니다. |
| 선택한 탭을 닫습니다. |
보안 모델
브리지는 네트워크 포트가 아닌 Unix 소켓에서 수신합니다.
소켓은 현재 운영 체제 사용자로 제한됩니다(
0600).Firefox는 설치 프로그램이 선언한 확장 프로그램 ID의 네이티브 메시지만 수락합니다.
비공개 브라우징 탭은 확장 프로그램에 보이지 않습니다.
요청 URL, URL 쿼리/프래그먼트, 페이지 제목, 페이지 내용은 Codex에 반환되지 않으며, 탭 목록 결과에는 출처만 포함됩니다.
MCP 서버는 명시적 JSON Schema와 고정된 도구-메서드 매핑을 적용합니다.
요청은 10초 후에 타임아웃됩니다.
확장 프로그램은 고정된 디스패처의 탭 메서드만 실행하고, 이동은 HTTP(S) URL 및
about:blank로 제한합니다.임시 디렉터리 폴백은 사용자별
0700디렉터리를 만들고, 소켓은0600입니다.
확장 프로그램은 어떤 웹사이트 호스트 권한도 요청하지 않으며, 직접적인 네트워크 요청도 보내지 않습니다. 정제된 브라우징 활동은 사용자가 Codex 탭 관리 명령을 실행할 때만 전송됩니다.
저장소 구조
.agents/plugins/marketplace.json Codex marketplace catalog
plugins/firefox-browser-control/
.codex-plugin/plugin.json Plugin metadata
.mcp.json MCP server launch configuration
extension/ Firefox WebExtension
scripts/mcp-server.mjs MCP tool server
scripts/native-host.mjs Firefox/native-socket relay
scripts/install-native-host.mjs Native-host installer
scripts/review-client.mjs Standalone reviewer test client
skills/control-firefox/SKILL.md Agent usage guidance정규화
Node.js 20 이상에서 저장소 검사를 실행하세요:
npm testAMO 제출용 확장 프로그램 아카이브를 빌드하세요:
npm run build:extensionZIP 파일은 artifacts/에 기록됩니다. 스토어 등록 문구, 검토자 지침, 제출 체크리스트는 store/AMO_SUBMISSION.md에 있습니다.
확장 프로그램을 변경한 후에는 about:debugging에서 임시 애드온 옆에 있는 Reload를 사용하세요. 플러그인 메타데이터, 스킬, MCP 서버를 변경한 경우에는 플러그인을 다시 설치하고 새 Codex 작업을 시작합니다.
제한 사항
확장 프로그램은 서명되어 있지 않으므로 Firefox를 다시 시작한 뒤 다시 로드해야 합니다.
자동 네이티브 호스트 설치 는 현재 Linux와 macOS를 지원합니다.
릴레이가 현재 Unix 소켓을 사용하므로 Windows 네이티브는 지원되지 않습니다.
확장 프로그램은 Node.js, 네이티브 호스트, 그리고 Codex 또는 독립형 검토 클라이언트가 필요합니다.
이 것은 독립 커뮤니티 통합이며 Mozilla 또는 OpenAI와 제휴하거나 보증을 받지 않습니다.
License
This server cannot be installed
Maintenance
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
- FlicenseAqualityCmaintenanceEnables Claude Code to inspect network traffic, query the DOM, read console logs, and capture WebSocket frames in Firefox.17
- AlicenseNot gradedqualityBmaintenanceEnables MCP-compatible AI agents to securely control Chrome tabs via a local bridge, with explicit per-tab sharing and human approval for consequential actions.MIT
- AlicenseNot gradedqualityAmaintenanceEnables MCP-capable CLIs to operate real, already-logged-in Firefox tabs via a WebExtension and native messaging, without simulated input. Supports navigation, clicking, typing, reading, screenshots, and console/network capture with policy gating and frame awareness.MIT
- FlicenseNot gradedqualityCmaintenanceLocal MCP server for Codex that provides on-demand, read-only access to Edge tabs and bookmarks, plus controlled interaction with agent-owned tabs. Requires manual activation via the browser extension and enforces a fail-closed security model.
Related MCP Connectors
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Stealth web browser for agents: search, fetch, click and type through persistent sessions over MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/thenailedone/firefox-browser-control'
If you have feedback or need assistance with the MCP directory API, please join our Discord server