Skip to main content
Glama

fileforge_workflow_action

Destructive

Record browser clicks, typing, and navigation as a reusable recipe, then list, replay, export, or delete it to repeat a manual sequence in your signed-in browser.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
nameNoRecipe name to save as
stepsNoOptional explicit recipe steps to save immediately.
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. start_recording (name): Start recording a browser workflow (clicks, typing, navigation). stop_recording: Stop the current workflow recording and save the recipe. list_recipes: List all saved workflow recipes. run_recipe (name): Replay a saved workflow recipe. export_recipe (name): Export a workflow recipe to a file. delete_recipe (name): Delete a saved workflow recipe.
formatNoOutput format.json
inputsNoVariable substitutions for the recipe
captureNoData to capture while running.
assertionsNoOptional assertions saved with the recipe.

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. Changed6 schema fields changedv0.3.0
    • changedInput schema / properties / action / description
      Previous value: -"The action to perform. Available actions: start_recording: Start recording a browser workflow (clicks, typing, navigation). stop_recording: Stop the current workflow recording and save the recipe. list_recipes: List all saved workflow recipes. run_recipe: Replay a saved workflow recipe. export_recipe: Export a workflow recipe to a file. delete_recipe: Delete a saved workflow recipe."New value: +"What to do. Required parameters are in brackets. start_recording (name): Start recording a browser workflow (clicks, typing, navigation). stop_recording: Stop the current workflow recording and save the recipe. list_recipes: List all saved workflow recipes. run_recipe (name): Replay a saved workflow recipe. export_recipe (name): Export a workflow recipe to a file. delete_recipe (name): Delete a saved workflow recipe."
    • addedInput schema / properties / capture / description
      Added value: +"Data to capture while running."
    • addedInput schema / properties / format / description
      Added value: +"Output format."
    • 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.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, openWorldHint=true, and idempotentHint=false. The description adds useful context beyond those annotations by saying replay really clicks and types in the signed-in browser, delete_recipe is permanent, and the extension is required. It could still say more about recording side effects, but the key behavioral risks are covered.

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

Conciseness5/5

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

The description is compact and front-loaded: it states what the tool does, when to use it versus a sibling, the side effects, and the extension dependency in only a few sentences. Every sentence carries useful information.

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

Completeness5/5

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

Given the rich input schema, output schema, and annotations, the description supplies the missing context an agent needs: the recipe workflow, the sibling alternative, the real browser side effects, permanence of deletion, and the extension requirement.

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 action enum and all parameter descriptions are already well documented. The description does not add parameter-specific detail beyond the schema, so the baseline 3 is appropriate.

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 description states a specific verb and resource: record browser actions as reusable recipes, then list, replay, export, or delete them. It also explicitly distinguishes this tool from fileforge_task_action, so an agent can route correctly without opening both schemas.

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

Usage Guidelines5/5

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

It gives clear when-to-use guidance: repeat a sequence done by hand, while scheduled or multi-step routines belong to fileforge_task_action. It also adds practical cautions about replaying real browser actions and permanently deleting recipes.

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