AI 클라이언트에서 Chrome, Firefox, Edge, Safari 스토어로 브라우저 확장 프로그램을 빌드, 실행, 테스트 및 제출합니다.
다른 이름 extensiondev/mcp, @extension.dev/mcp
- 스타
- 0
- Tools
- —
- 다운로드, 30일
- 2,651
- 최신 버전
- 10.22.0
- 마지막 커밋
- 2026년 11월 14일
- 라이선스
- Apache-2.0
extension.dev MCP란?
extension.dev은(는) MCP server입니다. AI 클라이언트에서 Chrome, Firefox, Edge, Safari 스토어로 브라우저 확장 프로그램을 빌드, 실행, 테스트 및 제출합니다.
프로젝트 README에서 생성된 요약
extension.dev MCP server 정보
이 MCP server는 AI 클라이언트를 사용하는 개발자가 여러 플랫폼에 걸쳐 브라우저 확장 프로그램을 개발하고 배포할 수 있도록 지원합니다. AI agent와 브라우저 생태계 사이의 가교 역할을 하여 Chrome, Firefox, Edge, Safari 스토어에 확장 프로그램을 생성, 테스트 및 제출할 수 있습니다. 이 서버는 두 가지 모드로 작동합니다. 로컬 도구는 사용자의 머신에서 Extension.js 프레임워크를 실행하며, 플랫폼 도구는 extension.dev를 통해 배포 프로세스를 처리합니다.
사용자는 50개 이상의 템플릿으로 새 프로젝트를 스캐폴딩할 수 있고, Hot Module Replacement가 적용된 개발 세션을 실행할 수 있으며, extension_assert 도구를 사용하여 content script가 올바르게 작동하는지 확인할 수 있습니다. 로컬 도구는 계정이 필요 없지만, extension_submit와 같은 플랫폼 기능은 스토어 자격 증명을 관리하기 위해 최초 1회 로그인이 필요합니다. 서버는 실제 제출이나 프로모션 시 사람의 승인을 요구함으로써 보안을 보장하며, agent가 명시적인 허가 없이 코드를 게시하는 것을 방지합니다.
활용 사례
- 1확장 프로그램 스캐폴딩 및 실행AI agent에게 템플릿을 사용하여 새 확장 프로그램을 만들고 특정 브라우저에서 라이브 개발 세션을 시작하도록 요청합니다.
- 2확장 프로그램 기능 검증agent가 자동화된 assertion을 사용하여 content script가 웹 페이지에 성공적으로 주입되었는지 테스트하도록 합니다.
- 3브라우저 스토어 제출agent에게 Chrome Web Store 및 Firefox Add-ons에 dry run 제출을 수행하여 누락된 요구 사항이 있는지 확인하도록 지시합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
extension.dev MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 extension.dev MCP 설치
$ claude mcp add mcp -- npx -y @extension.dev/mcpCursor에 extension.dev MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@extension.dev/mcp"
]
}
}
}VS Code에 extension.dev MCP 설치
.vscode/mcp.json
{
"servers": {
"mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@extension.dev/mcp"
]
}
}
}VS Code CLI에 extension.dev MCP 설치
$ code --add-mcp '{"name":"mcp","type":"stdio","command":"npx","args":["-y","@extension.dev/mcp"]}'Claude Desktop에 extension.dev MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@extension.dev/mcp"
]
}
}
}Codex에 extension.dev MCP 설치
$ codex mcp add mcp -- npx -y @extension.dev/mcpCodex config.toml에 extension.dev MCP 설치
~/.codex/config.toml
[mcp_servers.mcp] command = "npx" args = ["-y", "@extension.dev/mcp"]
Gemini CLI에 extension.dev MCP 설치
$ gemini mcp add -s user mcp npx -- -y @extension.dev/mcpGemini settings.json에 extension.dev MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@extension.dev/mcp"
]
}
}
}자동 검사
2026년 11월 14일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능extensiondev/mcp is public and reachablegithub.com/extensiondev/mcp ↗통과
- 패키지가 이 저장소를 소스로 명시@extension.dev/mcp names extensiondev/mcp as sourcenpmjs.com/package/@extension.dev/mcp ↗통과
- 빌드 출처(Sigstore 증명)No build attestation published for this release검사되지 않음
- 오픈 소스 라이선스 (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-14github.com/extensiondev/mcp ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from @extension.dev/mcp통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음399 resolved dependencies checked; no critical advisoryosv.dev ↗통과
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기@extension.dev/mcp

Ship browser extensions to four stores from your AI agent: create, run, test and submit to Chrome, Firefox, Edge and Safari.
Extension.js is the framework you run. extension.dev is where it ships. This server covers both: the local tools run Extension.js on your machine, and the platform lane takes the build the rest of the way to the stores.
Docs · Tools · Skill · Changelog · Troubleshooting · Discord
Install
claude mcp add extension-dev -- npx -y @extension.dev/mcp --features=local,platform
Or install the extension-dev plugin, the MCP server pinned to one published version plus the browser-extension skill, in one step:
/plugin marketplace add extensiondev/skill
/plugin install extension-dev@extensiondev
Other clients take the same server as .mcp.json; every client's block, with a local-only form, is on Install in your client.
{
"mcpServers": {
"extension-dev": {
"command": "npx",
"args": [
"-y",
"@extension.dev/mcp",
"--features=local,platform"
]
}
}
}
The local tools need no account; the platform tools, on with --features=local,platform, ask for a login the first time they reach extension.dev.
Your first prompt
Create a Chrome and Firefox extension that highlights external links, run it, and prove the content script injected.
The agent scaffolds from a template, starts the dev session, a browser opens with the extension loaded, and extension_assert answers with a verdict instead of a guess. Then:
Submit this build to the Chrome Web Store and Firefox Add-ons as a dry run and tell me what is missing.
Ship to four stores
extension_submit sends a built extension into review at the four stores through extension.dev, which holds your store credentials. It defaults to a dry run, and a real submit waits for a workspace owner to approve that exact act on extension.dev: the server never submits or publishes on its own. Reaching the App Store needs no Mac: the Safari lane signs with keys the platform holds encrypted at rest, under the same approval.
The platform tools need a login once. You approve a code at extension.dev/device; the project-scoped token stays on this machine, is never returned to the agent, and lives at most 7 days. No project yet? Request access at extension.dev.
npx -y @extension.dev/mcp login --project <workspace>/<project>
Details under Platform tools.
Watch it work
What it does
Extensions fail silently: content scripts that never inject, panels that never open. These tools give the agent eyes on the live browser.
- Ship: validate the manifest cross-browser, build, share a preview, promote, submit
- Scaffold from 50+ templates, or add a popup, sidebar or content script
- Run the dev server with HMR in every browser below
- See the live DOM, logs from every context,
chrome.storage, the loaded extensions - Act: evaluate code in any context, trigger the action button and commands, reload
- Test:
extension_assertanswerspass,failorinconclusive, the last naming the evidence that would settle it
Built on Extension.js, the open source framework extension.dev sponsors. Every engine command runs the project's own extension when the project has one, else the version this server pins (Engine pinning).
Requirements
- Node 22.12 or later.
- A Chromium or Firefox browser, or
extension_browsersinstalls one. - macOS with Xcode only for a local Safari session; the App Store lane needs no Mac.
- An extension.dev login only for the platform tools.
Browsers
extension_dev opens the extension in the browser you name. The Chromium family and Firefox get HMR, control, eval, inspect and assert, and so does any Chromium or Gecko binary by path. On macOS with Xcode, browser: "safari" builds the app, opens it, reloads it on every save and streams its logs; no eval, no extension_inspect, limits under Safari.
Security
- Local by default. Every local tool runs Extension.js on your machine. The control channel (
extension_storage,extension_reload,extension_open,extension_dom_snapshot) is same machine, same user, on unlessextension_devis called withallowControl: false. - The eval gate.
extension_evalstays off untilextension_devis called withallowEval: true.extension_elementclicks, fills, reads and waits for one element, and sends trusted mouse and keyboard input (move, press, release, type, key, scroll) that pages read asisTrusted: true, over the debug port with no gate, since it runs no caller code. A session never grows a gate on a second call: callextension_devagain withreplace: true. - What leaves the machine. Nothing until you ask: a shared preview uploads the build it just made, a submit sends the build to extension.dev, a login stores a project-scoped token locally.
--no-shiprefuses every call that puts something in front of other people. - Approvals stay human. A real submit, a channel promotion and a share revoke answer
approval-required; a workspace owner approves the exact act on extension.dev, the call is repeated with the returnedapprovalId, and the server never approves anything itself.extension_submit_checkcarries the reads and the asks underreadOnlyHint: true;extension_submitcarries the act. - Untrusted text from pages comes back inside an
<untrusted-data-ID>fence, and every tool carries MCP annotations.
Telemetry
extension_create sends one draft_seeded event to us.i.posthog.com after a scaffold (template slug, source and commit, a random per-process id, never a path or a name), and the platform tools send a per-install id header. EXTENSION_DEV_NO_TELEMETRY=1 or DO_NOT_TRACK=1 stops both (payload).
Hosted server
https://mcp.extension.dev/mcp serves the platform reads and promotions over Streamable HTTP: a client connects with the URL alone, signs in at www.extension.dev through OAuth, and gets extension_workspace, extension_project_create, extension_builds, extension_release_status, extension_release_promote and extension_auth (status only). Local tools, publish, submit and share links stay on the stdio server.
claude mcp add --transport http extension-dev https://mcp.extension.dev/mcp
Flags
| Flag | Environment variable | Default | Effect |
|---|---|---|---|
--features=<groups> |
EXTENSION_DEV_FEATURES |
local |
local,platform adds the platform group; platform lists only those |
--no-ship |
EXTENSION_DEV_NO_SHIP=1 |
off | Refuses publish, promote, a real submit, a shared preview, a share create or revoke |
--project <workspace>/<project> |
EXTENSION_DEV_PROJECT |
unset | Refuses any call that names another project |
| none | EXTENSION_DEV_TOKEN |
unset | An access token in place of the device login, for CI |
| none | EXTENSION_DEV_NO_AUTO_OPEN=1 |
off | Never opens the approval page in the default browser |
| none | EXTENSION_DEV_NO_TELEMETRY=1 or DO_NOT_TRACK=1 |
off | Turns off the draft_seeded event and the per-install id header |
| none | EXTENSION_MCP_CLI_VERSION |
this release's pin | The Extension.js version run when the project has no engine of its own |
| none | EXTENSION_MCP_ENGINE_DIR or EXTENSION_MCP_ENGINE_BIN |
unset | Runs every engine command from a compiled Extension.js checkout or one bin file |
login, logout, whoami and release promote run headless; see Server flags.
Tools
The local group scaffolds, builds, runs, inspects, drives and asserts; the platform group logs in, shares, promotes, submits and reads builds, releases and approvals. Every tool has a page under the tool reference, generated from the schema the server registers, with its inputs, whether it only reads, the gate it needs and a prompt that reaches for it.
Pair with the skill
This server gives agents hands; @extension.dev/skill gives them judgment: cross-browser rules, silent-failure gotchas, debugging playbooks and the store checklist.
npx skills add extensiondev/skill
Troubleshooting
Every refusal carries a hint naming the next call. The five most common:
E_TOOL_DISABLED: the tool's group is off, or the call reaches outside this machine in no-ship mode. Addplatformto--features, or drop--no-ship, in the client's config, then call again.approval-required: have a workspace owner approve the act at the link, then repeat the call with the same arguments and the returnedapprovalId.E_AUTH_REQUIREDorE_AUTH_EXPIRED: the login lives at most 7 days. Runextension_auth(action: "login",project: "<workspace>/<project>"), then call again.E_NO_SESSION: nothing is running. Startextension_dev, thenextension_waitfor ready.extension_evalrefused: the session started without the gate. Callextension_devagain withallowEval: trueandreplace: true; reads need no eval.
extension_doctor names the broken leg of a session. After a new version lands a tool may answer E_SERVER_STALE: run /mcp, pick extension-dev, and call again. More under When it fails.
Community
Help and feedback on Discord; templates at templates.extension.dev; Extension.js framework issues at extension-js/extension.js.
License
Apache-2.0 (c) 2026 Cezar Augusto and the extension.dev collaborators. See LICENSE.
extension.dev MCP 질문
extension.dev MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add mcp -- npx -y @extension.dev/mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
extension.dev MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
여러 스토어에 확장 프로그램을 제출할 수 있나요?
네, Chrome Web Store, Firefox Add-ons, Microsoft Edge Add-ons, Apple App Store에 빌드를 제출할 수 있습니다.
Safari App Store에 게시하려면 Mac이 필요한가요?
아니요, Safari 경로는 플랫폼에서 암호화된 상태로 키를 보유하고 서명하므로 Mac이 필요하지 않습니다.
서버가 확장 프로그램을 자동으로 제출하나요?
아니요, 실제 제출이나 extension.dev에서의 프로모션을 진행하려면 워크스페이스 소유자의 승인이 필요합니다.
플랫폼 도구는 어떻게 사용하나요?
extension.dev/device에서 디바이스 코드를 통해 플랫폼 기능을 활성화하고 한 번 로그인해야 합니다.
