browser_resume
Resume a call
Continue a call whose result has call and resume_token (a needs_user stop, batch, parallel or workflow); nothing that ran ok is sent again.
callrequiredwaitobservedresume_tokenrequired
io.github.junyeong-neroPublished by GitHub account junyeong-nerov0.7.3Updated Nov 5, 2026
Let your coding agent use the Firefox, Zen, or LibreWolf browser you already have open.
Connects an AI coding agent to the Firefox, Zen or LibreWolf browser you already have open, letting it work in background tabs while you keep browsing.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
[Kitsune: an orange fox in a browser window, connecting your browser and your AI agent]
[kitsune-browser-mcp on PyPI] [kitsune-browser on PyPI] [Python] [Release] [License: MIT] [Docs]
Let your coding agent use the browser you already have open, while you keep using it too.
Kitsune connects Claude Code, Codex, Pi, OpenCode and other MCP clients to Firefox, Zen or LibreWolf. The agent works in background tabs of its own, signed in wherever you are signed in. It can read your tabs, but it has to ask before it changes one. There is no Playwright, Chromium or WebDriver to install.
New in 0.7.2: the agent asks for your tab, and you approve, take it back and clean up from the toolbar popup. A real recording on Wikipedia, sped up while the agent thinks (full 45-second video).
browser_ask_user and browser_resume for when it needs you. Prompts written
for Playwright MCP work unchanged. More tools (page text, forms, batches, downloads, …) stay off
until you allow them.KITSUNE_MODE=read, draft or act limits what the
agent can do. In draft mode it can fill in forms but cannot click or submit.Install uv.
Install the browser extension in Firefox, Zen or LibreWolf.
Add Kitsune to your agent. For Claude Code:
Codex, Pi, OpenCode, Claude Desktop and Cursor are in Installation.
Keep the browser open and ask in plain language:
Research these three products in background tabs and compare them with links. Leave my current tab alone.
Fill in a draft of this form. Don't submit it.
Kitsune starts its local bridge on its own. If the agent cannot connect, ask it to check the
connection: the error's hint says what to fix.
Use a separate browser profile for agent work and sign in only to the accounts it needs. Ask the agent to check with you before it sends, buys or deletes anything. Nothing in Kitsune stops prompt injection, so read the security guide before using sensitive accounts.
The full documentation is at junyeong-nero.github.io/kitsune:
KITSUNE_CAPS, KITSUNE_PUBLISH and KITSUNE_MODEpip install kitsune-browserSource: README.md at commit adcd511
Resume a call
Continue a call whose result has call and resume_token (a needs_user stop, batch, parallel or workflow); nothing that ran ok is sent again.
callrequiredwaitobservedresume_tokenrequiredAsk the user
Ask the user to do what you cannot: sign in, pass a CAPTCHA (human_check), click a control that ignores your clicks (trusted_input), or choose (other).
reasonrequiredtab_idmessagerequiredClose browser
Close the page
Takes no parameters.
Resize browser window
Resize the browser window
widthrequiredheightrequiredGet console messages
Returns all console messages
alllevelrequiredfilenameHandle a dialog
Handle a dialog
acceptrequiredpromptTextEmulate media features
Emulate CSS media features for the page, for example switch between the light and dark color scheme. Omitted parameters are left unchanged; null clears an override.
mediacontrastcolorSchemeforcedColorsreducedMotionEvaluate JavaScript
Evaluate JavaScript expression on page or element
targetelementfilenamefunctionrequiredUpload files
Upload one or multiple files
pathsDrop files or data onto an element
Drop files or MIME-typed data onto an element, as if dragged from outside the page. At least one of "paths" or "data" must be provided.
datapathstargetrequiredelementFind in page snapshot
Search the accessibility snapshot of the current page for text or a regular expression. Returns matching snapshot nodes with a few lines of surrounding context (like search snippets), each shown under its path from the root of the tree, which is cheaper than capturing the whole snapshot when you only need to locate an element and its ref.
textregexfilenameFill form
Fill multiple form fields
fieldsrequiredPress a key
Press a key on the keyboard
keyrequiredType text
Type text into editable element
textrequiredslowlysubmittargetrequiredelementNavigate to a URL
Navigate to a URL
urlrequiredGo back
Go back to the previous page in the history
Takes no parameters.
List network requests
Returns a numbered list of network requests since loading the page. Use browser_network_request with the number to get full details.
filterstaticrequiredfilenameShow network request details
Returns full details (headers and body) of a single network request, or a single part if `part` is set. Use the number from browser_network_requests.
partindexrequiredfilenameRun Playwright code (unsafe)
Run a Playwright code snippet. Unsafe: executes arbitrary JavaScript in the Playwright server process and is RCE-equivalent.
codefilenameTake a screenshot
Take a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions.
typescalerequiredtargetelementfilenamefullPagePage snapshot
Capture accessibility snapshot of the current page, this is better than screenshot
boxesdepthtargetfilenameClick
Perform click on a web page
buttontargetrequiredelementmodifiersdoubleClickDrag mouse
Perform drag and drop between two elements
endTargetrequiredendElementstartTargetrequiredstartElementHover mouse
Hover over element on page
targetrequiredelementSelect option
Select an option in a dropdown
targetrequiredvaluesrequiredelementManage tabs
Manage tabs; request a handoff.
urlindexactionrequiredreasontab_idconfirm_tokenWait for
Wait for text to appear or disappear or a specified time to pass
texttimetextGone90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
claude mcp add --scope user kitsune -- uvx --from kitsune-browser-mcp kitsune