Skip to main content
Glama

fileforge_extension_action

Inspect a Chrome extension's manifest, permissions, storage, service worker, content-script injection and errors. Run scoped QA checks to debug the extension you're building.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
keyNoStorage key whose value to reveal.
areaNochrome.storage area to read.local
storeNoSave the result in ~/.fileforge and return a ref.
tabIdNoTab ID, or "active" for the active tab.active
actionYesWhat to do. Required parameters are in brackets. inspect_manifest: Inspect the loaded FileForge extension manifest and declared runtime surfaces. inspect_storage: Inspect extension chrome.storage areas with redacted values and reveal metadata. inspect_service_worker: Inspect the extension service-worker status and runtime identity. reveal_storage_value (key): Reveal one exact redacted extension storage value after an explicit scoped agent request, and log the reveal. inspect_injection: Inspect content-script/page injection evidence on a tab, including selectors and FileForge DOM nodes. inspect_permissions: Inspect declared extension permissions, host permissions, and content-script matches. collect_errors: Collect recent extension/MCP bridge failures with structured failure details. run_extension_check: Run a composable extension QA check: manifest, permissions, storage, service worker, injection, and errors.
projectNoProject name that groups stored results.default
selectorsNoCSS selectors of the target elements.

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. Changed8 schema fields changedv0.3.0
    • changedInput schema / properties / action / description
      Previous value: -"The action to perform. Available actions: inspect_manifest: Inspect the loaded FileForge extension manifest and declared runtime surfaces. inspect_storage: Inspect extension chrome.storage areas with redacted values and reveal metadata. inspect_service_worker: Inspect the extension service-worker status and runtime identity. reveal_storage_value: Reveal one exact redacted extension storage value after an explicit scoped agent request, and log the reveal. inspect_injection: Inspect content-script/page injection evidence on a tab, including selectors and FileForge DOM nodes. inspect_permissions: Inspect declared extension permissions, host permissions, and content-script matches. collect_errors: Collect recent extension/MCP bridge failures with structured failure details. run_extension_check: Run a composable extension QA check: manifest, permissions, storage, service worker, injection, and errors."New value: +"What to do. Required parameters are in brackets. inspect_manifest: Inspect the loaded FileForge extension manifest and declared runtime surfaces. inspect_storage: Inspect extension chrome.storage areas with redacted values and reveal metadata. inspect_service_worker: Inspect the extension service-worker status and runtime identity. reveal_storage_value (key): Reveal one exact redacted extension storage value after an explicit scoped agent request, and log the reveal. inspect_injection: Inspect content-script/page injection evidence on a tab, including selectors and FileForge DOM nodes. inspect_permissions: Inspect declared extension permissions, host permissions, and content-script matches. collect_errors: Collect recent extension/MCP bridge failures with structured failure details. run_extension_check: Run a composable extension QA check: manifest, permissions, storage, service worker, injection, and errors."
    • addedInput schema / properties / area / description
      Added value: +"chrome.storage area to read."
    • addedInput schema / properties / key / description
      Added value: +"Storage key whose value to reveal."
    • addedInput schema / properties / project / description
      Added value: +"Project name that groups stored results."
    • addedInput schema / properties / selectors / description
      Added value: +"CSS selectors of the target elements."
    • addedInput schema / properties / store / description
      Added value: +"Save the result in ~/.fileforge and return a ref."
    • addedInput schema / properties / tabId / description
      Added value: +"Tab ID, or \"active\" for the active tab."
    • 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 readOnly=false, destructive=false, openWorld=true, idempotent=false, so the safety profile is partly given. The description adds real context beyond that: storage values are redacted by default, revealing an exact value requires FILEFORGE_ALLOW_SECRET_REVEAL=1 and is logged, and the tool depends on the extension being loaded. It still doesn't describe failure behavior (e.g. what collect_errors returns or what happens when the extension is absent).

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?

Three short sentences, front-loaded with the scope, then routing, then prerequisites — no filler. The final phrase 'Needs the extension' is terse to the point of ambiguity about which extension must be loaded.

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?

Given eight actions, an output schema, and full schema coverage, the description supplies what matters: scope, sibling routing, and the secret-reveal gate. The redaction/logging behavior for storage inspection is the key omission worth adding, but the definition is otherwise sufficient to invoke correctly.

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%, and the action enum already carries per-action parameter requirements in brackets, so the schema does the heavy lifting. The description reinforces only the reveal_storage_value case (env flag, logging) and adds no syntax or format detail for key, area, store, tabId, selectors, or project beyond what is documented.

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?

States a specific verb ('Inspect') plus the exact resource (a Chrome extension) and enumerates the surfaces covered: manifest, permissions, storage, service worker, content-script injection, errors. This matches the action enum in the schema and clearly separates the tool from sibling families like devtools or runtime.

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?

Explicitly routes the agent: use this to debug an extension you're building, use fileforge_audit_action for store policy checks. It also states the prerequisite (extension must be present) and the env-var gate for reveals. It does not disambiguate against overlapping siblings such as fileforge_devtools_action or fileforge_runtime_action, so it stops short of full covering guidance.

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