Tabs
Your existing browser sessions
Inspect the Chrome tabs you already have open, including signed-in apps. No separate browser profile to set up.
v0.2.0 · Available on npm and GitHub
FileForge connects your AI coding assistant to your open Chrome tabs. Inspect page content, console errors, network requests and screenshots in the browser where you're already signed in. A local MCP server and Chrome extension bring that context into your debugging workflow.
Your agent, with FileForge
Debugging with an AI assistant often means copying errors, describing what happened and taking screenshots by hand. Problems inside signed-in applications can require even more setup.
FileForge lets your agent inspect the live browser directly, gather relevant evidence and interact with the page through structured tools.
These capabilities ship in v0.2.0: 26 tools with 228 actions. The full reference is in docs/tools.md.
Tabs
Inspect the Chrome tabs you already have open, including signed-in apps. No separate browser profile to set up.
Debug
Console messages, JavaScript errors, network requests, response bodies, screenshots, and page context bundles for a coding task.
DOM
Read text and forms, click controls, fill fields, and debug selectors through structured tools.
Local
Save tool results locally and query them with SQL. Keep notes and page snapshots for later investigation.
Your MCP client starts the server; Chrome must have the extension loaded and enabled. The local Node.js server talks to the extension, which reaches your tabs through Chrome APIs and the DevTools Protocol.
The server and Chrome must run on the same machine.
Begin capture before reproducing the issue. FileForge can't recover all past network activity.
Trigger the failure in your own tab, signed in as usual.
Ask your agent to inspect console errors and failed requests. Bring the target tab into view before capturing a screenshot.
After you or your coding assistant changes the application code, reproduce the action again and inspect the new browser evidence.
Not on the Chrome Web Store, and for single-user machines only
You load the extension unpacked, and reload its card after updating. Use FileForge only where you are the sole user. Read why.
You'll need: Node.js 20 or newer, npm, Google Chrome and an MCP client, with the server and Chrome on the same machine. The full guide is in docs/setup.md.
From npm (recommended; bundles the extension)
npm install -g fileforge-mcp-serverThis puts fileforge-mcp, fileforge-verify and fileforge-pair on your PATH. Install globally rather than with npx, because Chrome loads the extension from the package folder.
From source (git clone)
git clone https://github.com/mayank1307/fileforge.git
cd fileforge/mcp-server
npm installbetter-sqlite3 is a native dependency built at install time. Install using the same Node version that will run the server. Some environments may need native compilation prerequisites.
chrome://extensions.extension/ folder for your install path, shown below.nlcebipkdgecilmgfpobamljieanadpn.From npm: print the folder
echo "$(npm root -g)/fileforge-mcp-server/extension"From source: select fileforge/extension inside your clone.
From npm
claude mcp add fileforge -- fileforge-mcpFrom source
claude mcp add fileforge -- node /absolute/path/to/fileforge/mcp-server/src/index.jsFor a source install, replace the placeholder with the actual absolute path. Claude Desktop and Cursor require manual MCP configuration, which is not shown in these tabs; see docs/setup.md. Desktop clients may also need the absolute Node path, because their environment can differ from your shell.
Open or restart your MCP client so it starts the server, and keep Chrome running with the extension enabled. Then run the verifier:
From npm
fileforge-verifyFrom source, in mcp-server/
npm run verifyThen ask your agent to make these two calls:
Tool: fileforge_runtime_action
Arguments: {"action":"status"}
Tool: fileforge_browser_action
Arguments: {"action":"query_context"}The status call should report the extension as connected. The browser call returns browser context, including your open tabs.
The server, bridge, extension and stored results run on your machine, with no telemetry. The bridge refuses web pages and any non-pinned extension, and ~/.fileforge is created with mode 0700. The Activity log keeps the last 1,000 requests in chrome.storage.local with token-like values redacted; page content is not redacted. Browser content returned to your MCP client is then subject to that client's and its model provider's data handling.
The extension requests broad host access and browser permissions, includingdebugger, history and bookmarks. The connected agent has real power in your signed-in browser, including running JavaScript in a tab. Review screenshots and captured request data before sharing them; signed-in pages can contain private information.
Page text can attempt prompt injection, and FileForge can't distinguish instructions from content. The security policy doesn't protect against malicious agents, and extension-origin checks have documented limitations involving other local users, so use FileForge only where you are the sole user. npm audit --omit=dev reports no advisories; one dev-only advisory (minimatch via ESLint) remains and never loads in the server.
This marketing website uses site analytics, separate from the local extension and server. Browser content passed through FileForge is subject to your MCP client's and model provider's data handling. The details are in SECURITY.md and docs/permissions.md.
Explicit recipe steps can be saved and replayed, but manual event capture isn't implemented.
The Playwright workflow export produces commented step descriptions and JSON, not runnable tests. FileForge complements your test runner.
Findings need review, and don't establish WCAG conformance or security certification.
Viewport, full-page, element and region screenshots require the target tab to be visible in its window.
It appears while the DevTools Protocol is attached.
Unpacked extensions must be reloaded after updates, and scheduled routines need the server running.
The bridge identifies the extension by its Origin header, which any local process can forge. Use FileForge only where you are the sole user.
With FILEFORGE_REQUIRE_PAIRING=1, the extension must present a token, which blocks a process posing as the extension.
It connects to whatever listens on 127.0.0.1:47821, so another local user could bind the port. Pairing doesn't change this.