Skip to main content
Glama

fileforge_eye_action

Destructive

Monitor multiple browser tabs at once for network traffic, console errors, JS exceptions, DOM changes, and WebSocket frames; set tripwires and track identity-tagged events across tabs.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
allNostart_watch: attach DevTools to every open http(s) tab. close_incognito: close every incognito window.
urlNoOptional URL to open in the new window/tab.
tabsNoTab IDs to watch (from scan). Required unless all: true.
urlsNoOptional list of URLs — opens a window with one tab per URL. Ignored if windowId is provided.
clearNoClear the current identity target.
limitNoMax events to return (default 100).
tabIdNoNumeric tab ID: the tab to lock onto, or the incognito tab to close.
actionYesWhat to do. Required parameters are in brackets. scan: One-shot snapshot of ALL open browser tabs: URL, title, load status, audible state. The God's Eye view of your entire browser. start_watch: Attach DevTools to the given tabs, or to every open http(s) tab with all: true, and begin capturing network requests, console output, JS errors, DOM mutations, and WebSocket frames in real time. Requires tabs or all: true. stop_watch: Detach from all watched tabs and stop the live capture session. Returns a session summary. get_feed: Pull the live event feed from the active watch session — all network traffic, console messages, errors, and DOM changes across every watched tab, sorted newest-first. lock_target (tabId): Lock onto a specific tab as the primary target. On a locked tab, JS errors trigger an automatic screenshot so you can see exactly what the user saw when things broke. unlock_target: Release the current target lock and return to standard multi-tab monitoring. set_tripwire (tripwire): Plant a tripwire that fires silently the moment a matching event hits any watched tab. Check get_tripwires to see which ones have fired. get_tripwires: List all active tripwires and whether any have fired, including the timestamp and event that triggered them. clear_tripwire (tripwireId): Remove a tripwire by its ID. get_status: Get current God's Eye session status: whether a watch is active, how many tabs are watched, which tab is locked, event count, and tripwire summary. auto_track: Auto-attach to every newly-created or newly-navigated http(s) tab while the watch is active. Only allowed in a watch started with all: true. Toggle with enabled: true/false. watch_person: Tail an identity (email, user id, name, etc.) across every watched tab. Events whose URL, request body, console text, or error text contain the identity are tagged target_hit: true. open_incognito: Open an incognito window, or add a new incognito tab to an existing incognito window. Pass url to navigate, or urls (array) to open multiple tabs in one window. Pass windowId to attach a new tab to that existing incognito window instead of creating a new one. list_incognito: List every incognito window currently open and the tabs inside each one (id, url, title, active). close_incognito: Close an incognito window (by windowId), a specific incognito tab (by tabId), or all incognito windows (pass all: true). Errors if the target window/tab is not incognito. get_report: Generate a session report: top domains by request count, errors by tab and type, timeline of key moments (first error, first 5xx, first JS exception, first tripwire fire), tripwire summary, identity hits, and locked-target screenshot count.
filterNoOptional filters to narrow the feed.
enabledNoTurn auto-track on (true) or off (false).
focusedNoWhether the new window should be focused (default true).
identityNoThe string to scan for — e.g. "user@example.com" or a user id.
tripwireNoTripwire definition.
windowIdNoIncognito window ID to close.
tripwireIdNoID returned by set_tripwire.

Output Schema

NameRequiredDescriptionDefault
okYesFalse if the action failed or a check did not pass.
refNoStored result ID, for fileforge_result_action.
dataNoThe result. Its shape depends on the action.
metaNoTool, action and context.
errorNoFailure code and message.
warningsNoNotes about a call that still ran.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.3.0
    • changedInput schema / properties / action / description
      Previous value: -"The action to perform. Available actions: scan: One-shot snapshot of ALL open browser tabs: URL, title, load status, audible state. The God's Eye view of your entire browser. start_watch: Attach DevTools to the given tabs, or to every open http(s) tab with all: true, and begin capturing network requests, console output, JS errors, DOM mutations, and WebSocket frames in real time. Requires tabs or all: true. stop_watch: Detach from all watched tabs and stop the live capture session. Returns a session summary. get_feed: Pull the live event feed from the active watch session — all network traffic, console messages, errors, and DOM changes across every watched tab, sorted newest-first. lock_target: Lock onto a specific tab as the primary target. On a locked tab, JS errors trigger an automatic screenshot so you can see exactly what the user saw when things broke. unlock_target: Release the current target lock and return to standard multi-tab monitoring. set_tripwire: Plant a tripwire that fires silently the moment a matching event hits any watched tab. Check get_tripwires to see which ones have fired. get_tripwires: List all active tripwires and whether any have fired, including the timestamp and event that triggered them. clear_tripwire: Remove a tripwire by its ID. get_status: Get current God's Eye session status: whether a watch is active, how many tabs are watched, which tab is locked, event count, and tripwire summary. auto_track: Auto-attach to every newly-created or newly-navigated http(s) tab while the watch is active. Only allowed in a watch started with all: true. Toggle with enabled: true/false. watch_person: Tail an identity (email, user id, name, etc.) across every watched tab. Events whose URL, request body, console text, or error text contain the identity are tagged target_hit: true. open_incognito: Open an incognito window, or add a new incognito tab to an existing incognito window. Pass url to navigate, or urls (array) to open multiple tabs in one window. Pass windowId to attach a new tab to that existing incognito window instead of creating a new one. list_incognito: List every incognito window currently open and the tabs inside each one (id, url, title, active). close_incognito: Close an incognito window (by windowId), a specific incognito tab (by tabId), or all incognito windows (pass all: true). Errors if the target window/tab is not incognito. get_report: Generate a session report: top domains by request count, errors by tab and type, timeline of key moments (first error, first 5xx, first JS exception, first tripwire fire), tripwire summary, identity hits, and locked-target screenshot count."New value: +"What to do. Required parameters are in brackets. scan: One-shot snapshot of ALL open browser tabs: URL, title, load status, audible state. The God's Eye view of your entire browser. start_watch: Attach DevTools to the given tabs, or to every open http(s) tab with all: true, and begin capturing network requests, console output, JS errors, DOM mutations, and WebSocket frames in real time. Requires tabs or all: true. stop_watch: Detach from all watched tabs and stop the live capture session. Returns a session summary. get_feed: Pull the live event feed from the active watch session — all network traffic, console messages, errors, and DOM changes across every watched tab, sorted newest-first. lock_target (tabId): Lock onto a specific tab as the primary target. On a locked tab, JS errors trigger an automatic screenshot so you can see exactly what the user saw when things broke. unlock_target: Release the current target lock and return to standard multi-tab monitoring. set_tripwire (tripwire): Plant a tripwire that fires silently the moment a matching event hits any watched tab. Check get_tripwires to see which ones have fired. get_tripwires: List all active tripwires and whether any have fired, including the timestamp and event that triggered them. clear_tripwire (tripwireId): Remove a tripwire by its ID. get_status: Get current God's Eye session status: whether a watch is active, how many tabs are watched, which tab is locked, event count, and tripwire summary. auto_track: Auto-attach to every newly-created or newly-navigated http(s) tab while the watch is active. Only allowed in a watch started with all: true. Toggle with enabled: true/false. watch_person: Tail an identity (email, user id, name, etc.) across every watched tab. Events whose URL, request body, console text, or error text contain the identity are tagged target_hit: true. open_incognito: Open an incognito window, or add a new incognito tab to an existing incognito window. Pass url to navigate, or urls (array) to open multiple tabs in one window. Pass windowId to attach a new tab to that existing incognito window instead of creating a new one. list_incognito: List every incognito window currently open and the tabs inside each one (id, url, title, active). close_incognito: Close an incognito window (by windowId), a specific incognito tab (by tabId), or all incognito windows (pass all: true). Errors if the target window/tab is not incognito. get_report: Generate a session report: top domains by request count, errors by tab and type, timeline of key moments (first error, first 5xx, first JS exception, first tripwire fire), tripwire summary, identity hits, and locked-target screenshot count."
    • changedInput schema / properties / tabId / description
      Previous value: -"Incognito tab ID to close."New value: +"Numeric tab ID: the tab to lock onto, or the incognito tab to close."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "description": "query_* actions return their modules as extra top-level fields.",
      +  "properties": {
      +    "data": {
      +      "description": "The result. Its shape depends on the action."
      +    },
      +    "error": {
      +      "description": "Failure code and message."
      +    },
      +    "meta": {
      +      "description": "Tool, action and context."
      +    },
      +    "ok": {
      +      "description": "False if the action failed or a check did not pass.",
      +      "type": "boolean"
      +    },
      +    "ref": {
      +      "description": "Stored result ID, for fileforge_result_action."
      +    },
      +    "warnings": {
      +      "description": "Notes about a call that still ran."
      +    }
      +  },
      +  "required": [
      +    "ok"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.2.1

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true, yet the description adds real side-effect context beyond them: the debugger attaches to watched tabs, incognito actions open and close windows, and tripwires fire silently rather than notifying. That last point is behavior an agent could not infer from the annotations and would likely get wrong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Roughly seventy words for sixteen actions and fifteen parameters is tight, and the core capability is front-loaded before alternatives and prerequisites. A couple of clauses are telegraphic ('the incognito actions open and close windows') and force the reader to map them back to the action enum, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, an output schema, and full schema coverage already in place, the description only needs to orient the agent, and it does so: capture scope, tripwire polling semantics, identity tracking, the sibling alternative, and the extension prerequisite. Per-action behavior for scan, get_status, and get_report lives only in the action enum, but that is an acceptable division of labor here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already carries parameter meaning and the baseline is 3. The description's tripwire example ('status >= 500') and identity description ('tags events that mention an identity') largely duplicate what the tripwire.match and identity schema fields already say, adding little new syntax or format detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific verb ('Monitor') and a specific scope ('many tabs at once') and enumerates exactly what is captured: network traffic, console errors, JS exceptions, DOM changes, WebSocket frames. It then pins down its boundary against the neighboring DevTools tool, so an agent can separate this from fileforge_devtools_action without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit routing ('Use fileforge_devtools_action for one tab in depth'), a prerequisite ('Needs the extension'), and a critical workflow rule that tripwires are poll-only via get_tripwires. There is no explicit statement of when *not* to use the multi-tab watching itself, but the alternative routing largely covers it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.