FileForge
FileForge is a local MCP server plus Chrome extension that lets an agent inspect and control signed-in Chrome, capture evidence, and persist/query results locally.
Check server, bridge, extension health, capabilities, and request logs.
Control tabs and browser state: open, navigate, switch, reload, close, wait, query context.
Interact with pages/DOM: extract text/snapshots/forms, click/fill/scroll, assert, debug selectors/clickability, run smoke tests, check links/images/layout, capture debug bundles.
Scrape pages, tables, metadata, assets, design tokens; crawl/research sites and compare snapshots.
Inspect DevTools: console, JS errors, network/API/WebSocket traffic, performance, evaluate JS, replay requests, export HAR.
Monitor tabs across the browser: live feeds, target locking, tripwires, identity tracking, incognito controls, session reports.
Capture coding context for pages/routes/bugs/articles, including route sweeps and bug-fix bundles.
Run QA checks and audits: routes, console/network cleanliness, forms, element watches, SEO, accessibility, security, policy, content, conversion, technical, crawl.
Run accessibility, responsive/layout, performance, visual screenshot/baseline/diff, CSS/color/font checks.
Discover REST/GraphQL API calls and export curl/Postman/MSW mocks.
Inspect app framework/routes/storage/feature flags and Chrome extensions.
Record/replay workflows; create, run, schedule, validate, and export routines/tasks.
Store, retrieve, search, slice, and SQL-query results; search history/bookmarks/notes; save/diff page memory; create notes.
Fetch/parse/convert files and Data URIs; generate bug reports, PR evidence, debug bundles; export stored results.
Keep data local with bridge token/pairing and allow-list security controls.
Integrates with the user's signed-in Google Chrome browser via a Chrome extension and the DevTools Protocol, enabling tab control, cross-tab monitoring and tripwires, DOM interaction, scraping, console/network/DevTools capture, screenshots, route sweeps, and accessibility/responsive/performance audits.
FileForge
Your agent watches your signed-in Chrome across tabs, sweeps your routes, and hands you the bug report.
FileForge is a local MCP server plus a Chrome extension. It works with Claude Code, Claude Desktop, Codex and Cursor. Your client talks to the server over stdio, the server talks to the extension over a WebSocket on 127.0.0.1, and the extension uses Chrome APIs and the DevTools Protocol.
What your agent can do
Watch several tabs at once. Follow network traffic, console errors, JS exceptions and DOM changes across tabs, and set tripwires such as
status >= 500to check later.Sweep your routes. One call visits a list of routes and returns console errors, failed API calls, and accessibility and layout issues for each.
Get coding context for a page. One call returns the framework, selectors, forms, console, network and performance.
Hand you the evidence. Generate bug reports, PR evidence bundles and debug bundles, or export captured API calls as curl, Postman or MSW mocks.
Come back to earlier results. Audits, route sweeps and scrapes are saved in SQLite under
~/.fileforge/, where the agent can read them with SQL later. It can also compare two audit runs. Scraped links and tables get their own tables.Repeat the work. Record a browser workflow and replay it, or schedule a routine.
All of this runs in the Chrome you already use, signed in to your own apps and staging sites.
Related MCP server: Kaboom Browser AI Devtools MCP
Try these prompts
Open a page you're working on, then ask your agent:
Use FileForge to show the console errors and failed network requests on my active tab, then find the likely cause in this repo.Use FileForge to sweep /, /pricing and /settings on http://localhost:3000 and list the console errors and failed API calls for each route.Use FileForge to watch my open tabs and set a tripwire for status >= 500. I'll click around. When I say done, tell me what fired and which request caused it, then write a bug report.How it compares
Reaching your signed-in browser is no longer unique to FileForge. These are the differences as of November 2026, from each project's own docs:
FileForge | |||
Use your signed-in browser | Extension, connected whenever the server runs |
|
|
Install | npm, plus an unpacked extension |
|
|
Cross-tab watching and tripwires | Yes | Not in its tool reference | Not in its docs |
Route sweep in one call | Yes | Not in its tool reference | Not in its docs |
Bug report and PR evidence bundles | Yes | Not in its tool reference | Not in its docs |
SQL over saved results | Yes | Not in its tool reference | Not in its docs |
Heap snapshots and Lighthouse | No | Yes | Not in its docs |
Browsers | Chrome | Chrome | Chrome, Edge, Firefox, WebKit |
Maintained by | One independent developer | Google's Chrome DevTools team | Microsoft |
Pick Chrome DevTools MCP for memory leaks, Lighthouse audits or an install with no extension. Pick Playwright MCP to automate other browsers or generate tests. Pick FileForge when an agent should keep an eye on several tabs, check many routes, and produce evidence you can keep. It complements Playwright, Cypress and Vitest; keep those for your test suite.
Context cost: the tool list is about 23,000 tokens (26 tools, roughly 93 KB of schemas), which your client may load at the start of a session. If that matters, compare it with your other servers before leaving it on all the time.
Quickstart
You need Node.js 20 or newer and Google Chrome.
npm install -g fileforge-mcp-serverfileforge-setupfileforge-setup prints the extension folder and the exact command or config for each client, using your real paths. It changes nothing unless you pass --write. Then:
Load the extension. Open
chrome://extensions, turn on Developer mode, click Load unpacked and pick the folder it printed. FileForge isn't on the Chrome Web Store.Connect your client. For Claude Code or Codex, run the command it printed. For Cursor or Claude Desktop, run
fileforge-setup --client cursor --writeorfileforge-setup --client claude-desktop --write, which keeps your other servers and saves the old file as.bak.Check it. With your client open and Chrome running, run
fileforge-verify, then ask your agent to callfileforge_runtime_actionwithaction: "status".
Prefer a clone? Full instructions for every client and OS are in docs/setup.md.
Tool groups
Every tool takes an action parameter. The full reference, with every action and parameter, is in docs/tools.md.
For a tool specification page, use docs/tools-spec.json. It includes every registered tool and action, features, input schemas, request templates, response conventions, and available capability metadata. Undeclared output schemas are explicitly marked. Regenerate both references with cd mcp-server && npm run docs:tools.
Tool | What it does |
| Server health, extension status and version check, request log |
| Open, switch, reload and close tabs; read tab and window state |
| Read and act on the DOM: text, snapshots, forms, click, fill, assert, debug selectors |
| Scrape pages, tables, metadata, assets and design tokens; crawl a site |
| Console, JS errors, network, API responses, WebSockets, |
| Watch several tabs at once for network, console and DOM activity; set tripwires |
| One-call coding context for a page, a route sweep, or a bug |
| Smoke tests, route checks, clean-console and clean-network checks |
| SEO, accessibility, content, security and policy audits with presets |
| Accessibility tree, keyboard and contrast checks |
| Layout scans across widths; overflow and overlap finder |
| Performance audit and metrics |
| Screenshots, baselines, visual diffs, CSS, colors and fonts |
| Discover REST and GraphQL calls; export curl, Postman or MSW mocks |
| Detect the framework; read routes, client storage, feature flags, Next.js data |
| Inspect a Chrome extension's manifest, storage, service worker and errors |
| Record and replay browser workflows |
| Create, schedule and run multi-step routines |
| Fetch, list, search and slice stored results |
| List, describe and query saved results and scraped data with SQL |
| Search saved pages, notes, history and bookmarks |
| Save pages, diff them against earlier visits, search memory |
| Local notes |
| Fetch, parse, convert and decode files and data URIs |
| Bug reports, PR evidence and debug bundles |
| Export stored results and SQL output to files |
Security and privacy
The bridge listens on
127.0.0.1:47821only. It rejects connections from web pages and from any extension other than FileForge's pinned ID.Other local processes need the token in
~/.fileforge/bridge-token, which only your user can read. SetFILEFORGE_REQUIRE_PAIRING=1to require it from the extension too (pairing).Everything is stored locally in
~/.fileforge/. There is no telemetry, and FileForge makes no outbound requests on its own: everything it fetches is a page or URL a tool was asked to load.Tools that would return raw secret values are off unless you set
FILEFORGE_ALLOW_SECRET_REVEAL=1.fileforge_file_actionreads local files only from FileForge's output folders and folders you list inFILEFORGE_ALLOWED_READ_PATHS, and fetches local or private addresses only for hosts you list inFILEFORGE_ALLOWED_FETCH_HOSTS. Browser tools can still open those addresses.The debugger attaches only to the tabs a tool call names (Eye watches every tab only when called with
all: true), and Chrome shows its "started debugging this browser" bar while it does. Every permission is explained in docs/permissions.md.
The threat model and how to report a vulnerability are in SECURITY.md.
More
License
MIT. See LICENSE.
Available Tools
26 toolsfileforge_a11y_actionA
Check one page's accessibility: run an audit, read the accessibility tree, and check keyboard navigation and color contrast. Use this for focused accessibility work, and fileforge_audit_action for a wider audit. Doesn't change the page; results can be stored locally. Needs the extension.
Inputs: action (required), store, tabId, standard. Returns: query_* actions return their modules as extra top-level fields.
fileforge_api_actionA
Work with the API calls a page makes: discover REST and GraphQL requests, find OpenAPI specs, and export them as curl, Postman or MSW mocks. Reads a running DevTools session, so call start_session on fileforge_devtools_action first or results are empty. Exports replace a file of the same name and can include captured auth headers, so review them before sharing. Needs the extension.
Inputs: action (required), store, tabId, groupBy, +2 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_app_actionARead-only
Inspect a web app in an open tab: detect its framework, and read routes, Next.js data, client storage, feature flags and React tree hints. Use this to understand how an app is built. Use fileforge_coding_action for a full bundle. Read-only, but get_client_storage returns raw localStorage and sessionStorage values, which can include tokens. Needs the extension.
Inputs: action (required), tabId, includeStateHints. Returns: query_* actions return their modules as extra top-level fields.
fileforge_audit_actionA
Audit a page or site for SEO, content, policy and client-side security issues. Prefer query_audit with a preset; compare_runs shows what changed between stored audits. Use fileforge_a11y_action, fileforge_perf_action or fileforge_responsive_action for one focused check. reveal_client_security_value needs FILEFORGE_ALLOW_SECRET_REVEAL=1. Results can be stored. Needs the extension.
Inputs: action (required), key, ref, url, +24 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_browser_actionADestructive
Manage tabs and read browser state: go to a URL, switch, reload and close tabs, move through history, wait for a page, and list open tabs. Use query_context to see what's open, and fileforge_page_interaction to act inside a page. Closing tabs can lose unsaved work, and close_tabs_matching can close many at once, so try dryRun first. Sensitive tab URLs are redacted. Needs the extension.
Inputs: action (required), url, query, store, +22 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_coding_actionA
Get context for fixing code in one call. inspect_page returns a page's framework, selectors, forms, console, network and performance; audit_routes sweeps many routes for errors; bug_context and article_context gather focused context. Use fileforge_qa_testing for pass/fail checks. Opens pages in your session; results can be stored. Needs the extension.
Inputs: action (required), url, store, tabId, +15 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_devtools_actionADestructive
Read DevTools data for a tab, from the moment a session starts: console, JS errors, network requests, API responses, WebSockets and performance. Prefer query_devtools with a preset; the get_* actions are older. Attaches the debugger, so Chrome shows its debugging bar. evaluate runs JavaScript in the page and replay_request re-sends a request; both can change data and have guards. Needs the extension.
Inputs: action (required), query, store, tabId, +15 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_export_actionA
Write stored results or SQL query output to a file in formats such as CSV, JSON, Markdown, HAR or ZIP. Use this to hand data to another tool. Use fileforge_result_action or fileforge_sql_action to read data without creating a file. Writes only to FileForge's exports folder, and a filename you reuse replaces that file.
Inputs: action (required), ref, query, format, +1 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_extension_actionA
Inspect a Chrome extension: manifest, permissions, storage, service worker, content-script injection and errors. Use this to debug an extension you're building, and fileforge_audit_action for store policy checks. reveal_storage_value needs FILEFORGE_ALLOW_SECRET_REVEAL=1. Needs the extension.
Inputs: action (required), key, area, store, +3 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_eye_actionADestructive
Monitor many tabs at once: network traffic, console errors, JS exceptions, DOM changes and WebSocket frames. Set tripwires such as "status >= 500", then read get_tripwires; they don't notify you. watch_person tags events that mention an identity. Use fileforge_devtools_action for one tab in depth. Attaches the debugger to watched tabs; the incognito actions open and close windows. Needs the extension.
Inputs: action (required), all, url, tabs, +11 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_file_actionA
Fetch, parse and convert files, extract text, and decode data URIs, including those in a page. Use this for documents and embedded assets, and fileforge_scrape_action for HTML pages. Fetches public URLs without your browser session; private addresses need FILEFORGE_ALLOWED_FETCH_HOSTS. Local paths need the output folders of ~/.fileforge or FILEFORGE_ALLOWED_READ_PATHS. Can write files locally.
Inputs: action (required), to, run, url, +11 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_memory_actionA
Remember pages over time: save a page, find earlier visits, diff it against a previous visit, and search saved pages or pull evidence for a question. Use this to see what changed on a page. Use fileforge_result_action to read tool results and fileforge_search_action to search history. Data stays in ~/.fileforge. save_page and diff_page need the extension.
Inputs: action (required), ref, url, limit, +6 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_note_actionA
Keep local notes: create, list and search them. Use this to save findings across sessions. Use fileforge_memory_action to save page content and fileforge_report_action for shareable evidence. Notes stay in ~/.fileforge, and there's no update or delete action.
Inputs: action (required), tag, url, body, +5 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_page_interactionADestructive
Read and act inside one open page: get text, snapshots and forms, click, fill, scroll, assert, and debug selectors. click and fill act on the real signed-in page, so they can submit or change data. hide_elements lasts until restore_hidden_elements. Use fileforge_qa_testing for repeatable checks across pages and fileforge_scrape_action for structured extraction. Needs the extension.
Inputs: action (required), mode, depth, store, +28 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_perf_actionA
Run a performance audit on a URL across viewports and return Core Web Vitals. Use this for a performance check of one page. Use fileforge_devtools_action for raw session data and fileforge_audit_action for SEO, content and security. Loads the URL in its own tab, closes it afterward, and stores the result by default. It doesn't change the site. Needs the extension.
Inputs: url (required), action (required), store, project, +6 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_qa_testingA
Run repeatable pass/fail checks: smoke tests, page boot, routes, console, network, forms and element watches. Use fileforge_page_interaction for individual steps and fileforge_coding_action while fixing code. URL checks load pages in your session. check_console_clean and check_network_clean read a running DevTools session and return SESSION_NOT_STARTED without one. Needs the extension.
Inputs: action (required), url, store, tabId, +6 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_report_actionA
Generate evidence bundles from the active tab: a bug report, PR evidence with screenshots and QA results, or a full debug bundle. Use this when you need something to share or attach. Use fileforge_coding_action for context while working. Bundles are saved locally and can contain page data, so review them before sharing. Needs the extension.
Inputs: action (required), urls, tabId, title, +2 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_responsive_actionA
Find layout bugs across screen widths: scan a URL, and locate overflow and overlapping elements. capture_matrix takes a screenshot at each viewport. Use fileforge_visual_action to compare screenshots against baselines. Loads the page in your session and can store results; it doesn't change the site. Needs the extension.
Inputs: action (required), url, store, tabId, +2 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_result_actionARead-onlyIdempotent
Read results other tools stored in ~/.fileforge: fetch one by ref, list them, search them, or slice a large one. Use this when a tool returns a ref instead of full data. Use fileforge_sql_action to query across results and fileforge_export_action to write one to a file. Works without the extension.
Inputs: action (required), ref, limit, query, +2 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_runtime_actionARead-onlyIdempotent
Check FileForge itself: whether the server and extension are connected, their versions, which tools are available, and recent requests. Use status when other tools report a bridge or connection error. It doesn't touch page content.
Inputs: action (required), limit, failuresOnly, includeDetails. Returns: query_* actions return their modules as extra top-level fields.
fileforge_scrape_actionA
Extract structured content from pages, tabs or a whole site: text, links, tables, metadata, assets and design tokens. Prefer query_scrape; the others are older single-purpose actions. It can't click or submit; use fileforge_page_interaction for that. crawl_site opens real tabs in your signed-in session, up to 50 pages by default. Query stored links and tables with fileforge_sql_action. Needs the extension.
Inputs: action (required), url, urls, query, +10 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_search_actionARead-onlyIdempotent
Search local data by text: saved pages, stored results, notes, browser history and bookmarks. Use all to search everything, or narrow it to one source. Use fileforge_memory_action to compare page visits and fileforge_scrape_action to read a live page. History and bookmarks need the extension.
Inputs: action (required), ref, limit, query. Returns: query_* actions return their modules as extra top-level fields.
fileforge_sql_actionA
Query FileForge's stored results with SELECT-only SQL. Use list_tables and describe_table to see the schema, query to read rows, and export_query to write rows to a file. Covers saved results and scraped pages, links and tables, not the live browser. Use fileforge_result_action to fetch a single known ref. Works without the extension.
Inputs: action (required), ref, limit, query, +4 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_task_actionADestructive
Run multi-step work two ways. Tasks (start, add, status, monitor_page) track one job. Routines (create, validate, dry_run, run, plan_from_prompt) are saved and can be scheduled, but cron only fires while this server runs. For a single step, call the tool directly. Runs act in your browser, pausing only at steps that require approval. delete removes a task; routines can only be disabled.
Inputs: action (required), url, mode, name, +62 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_visual_actionA
Capture and compare how pages look: screenshots of a page, element or region, baselines, visual diffs across routes and viewports, and computed CSS, colors and fonts. Use fileforge_responsive_action to find layout bugs. Files and baselines are saved locally. capture_screenshot needs the tab to be visible. Needs the extension.
Inputs: action (required), x, y, ref, +29 more. Returns: query_* actions return their modules as extra top-level fields.
fileforge_workflow_actionADestructive
Record browser actions as a reusable recipe, then list, replay, export or delete recipes. Use this to repeat a sequence you did by hand. Use fileforge_task_action for scheduled or multi-step routines. Replaying really clicks and types in your signed-in browser, and delete_recipe is permanent. Needs the extension.
Inputs: action (required), name, steps, store, +5 more. Returns: query_* actions return their modules as extra top-level fields.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 26 tools
Many tools overlap around browser inspection, auditing, scraping and QA: audit vs a11y/perf/responsive, devtools vs api/eye, coding vs app, and memory vs note/result/search. The descriptions cross-reference each other and help, but an agent still has to make non-obvious choices among several closely related tools.
All tools use a consistent fileforge_ snake_case prefix, and almost all end in _action. Two tools, fileforge_page_interaction and fileforge_qa_testing, break the suffix pattern, but the overall convention is still predictable.
At 26 top-level tools, the surface is heavy for the apparent browser QA/automation scope. Several tools could reasonably be consolidated, especially the audit, devtools/API/monitoring, and extraction/result families, which increases selection burden.
The set broadly covers browser control, scraping, QA, audits, performance, accessibility, DevTools, files, notes, memory, reports and exports. Minor lifecycle gaps remain, such as notes lacking update/delete, routines only being disabled rather than deleted, and no obvious cleanup for stored results, but agents can mostly work around these.
Maintenance
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Analytics and debugging for your MCP server — explore usage and sessions, then root-cause errors.
Capture, inspect & debug HTTPS traffic across iOS, Android, browsers & backends — 304 MCP tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that captures browser console logs and network requests via the Chrome DevTools Protocol. It allows users to monitor real-time logs, inspect network traffic, and execute JavaScript code directly in the browser context.1MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for browser debugging, inspection, and verification that streams console logs, network errors, and user actions into AI coding assistants.67AGPL 3.0
- AlicenseAqualityCmaintenanceEnables AI agents to monitor and debug browser runtime errors, console logs, and page diagnostics in real time via a Chrome extension and local MCP server.4MIT
- AlicenseNot gradedqualityCmaintenanceCaptures Chrome DevTools Protocol messages, UI events, and web traffic into a local SQLite database, enabling querying and analysis via CLI or MCP tools.1MIT