Skip to main content
Glama

fileforge_task_action

Destructive

Run and manage multi-step browser tasks and saved routines: start, monitor, pause, validate, dry-run, run, schedule, and disable jobs, with approvals pausing risky steps.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
urlNoOptional starting URL
modeNoKind of task: interactive, collector or monitor.interactive
nameNoRoutine name.
taskNoLegacy label alias. Do not use as a prompt.
hintsNoExtra guidance for plan_from_prompt.
limitNoMaximum items to return.
patchNoRoutine fields to change, using the same names as create.
queryNoSearch text to collect results for.
runIdNoRun ID.
sinceNoISO timestamp to get events after
stepsNoOrdered steps: { id, tool, params, dependsOn, condition, onFailure, retry, timeout, outputKey, requiresApproval }. params includes the tool's action.
storeNoSave the result in ~/.fileforge and return a ref.
titleNoTask label.
watchNoSelectors or data types to watch
actionYesWhat to do. Required parameters are in brackets. start: Start an asynchronous task made of structured FileForge tool invocations. add (actions): Add a saved task made of structured FileForge tool invocations. edit (taskId): Edit a saved task record. status (taskId): Get the current status of a running task. events (taskId): Get progress events for a task. pause (taskId): Pause a running task. resume (taskId): Resume a paused task. cancel (taskId): Cancel a running task. list: List all tasks (running, paused, completed). delete (taskId): Delete a task and its event history. export (taskId): Export task results and artifacts. monitor_page (url): Monitor a page for changes over time. collect_table (url): Collect rows from a paginated table into a local dataset. collect_search_results (url, query): Run a search on a website and collect all results into a dataset. create (name): Create a routine (prompt or steps input). update (routineId, patch): Update a routine (snapshots a new version). get (routineId): Fetch a routine (optionally a specific version). duplicate (routineId): Duplicate an existing routine. enable (routineId): Enable a routine. disable (routineId): Disable a routine. validate: Validate a routine or an arbitrary step array against the tool catalog. dry_run (routineId): Produce a dry-run report for a routine without executing anything. run (routineId): Enqueue a routine for execution. stop (runId): Stop / cancel a running or queued run. get_runs (routineId): List runs for a routine. get_run_details (runId): Get full details of a run (steps + events + artifacts). export_run (runId): Export a run as JSON or CSV. get_tool_registry: Return the FileForge tool capability catalog. plan_from_prompt (prompt): Return planning context (registry slice + schema + planning prompt) for an LLM to use when converting a prompt into an executable step array. commit_plan (plannedSteps): Validate an LLM-produced step array and save it as a routine (new or updated).
formatNoOutput format.json
offsetNoItems to skip, for paging.
promptNoPlain-language description of the routine.
reasonNoWhy the change was made.
recipeNoInline workflow recipe to save and run asynchronously.
resultNoResult data to store on the task.
statusNoadd and edit: pending, running, paused, completed, failed or cancelled. list: any of those, or "all". get_runs: a run status.all
taskIdNoOptional explicit task id.
actionsNoOrdered FileForge tool invocations: [{ tool, params, name?, required? }].
captureNoPage sections to scrape while running.
enabledNoWhether the routine can run.
triggerNoWhat started this run.manual
versionNoRoutine version.
maxPagesNoMaximum pages to visit.
metadataNoFree-form metadata to store with the routine.
priorityNoQueue priority. Higher runs first.
selectorNoCSS selector for the table
createdByNoWho created it.
inputTypeNoWhether the task starts from a prompt or from steps.
routineIdNoRoutine ID.
timeoutMsNoTime limit in milliseconds.
updatedByNoWho made the change.
includeRawNoInclude raw output.
maxMinutesNoMaximum run time in minutes.
recipeNameNoSaved workflow recipe to run asynchronously.
descriptionNoLegacy label alias. Do not use as a prompt.
includeLogsNoInclude logs.
parentRunIdNoID of the parent run.
permissionsNoWhat the routine may do, such as { allowBrowser: true }. Also allowNetwork, allowScreenshots, allowCookies, allowClipboard, allowDownloads, allowFilesystemRead, allowFilesystemWrite, allowAuthenticatedSession, allowExternalWebhooks.
propsSchemaNoJSON schema for the routine's inputs.
retryPolicyNo{ count, backoffMs } for failed steps. A step's own retry takes priority.
triggerTypeNoWhat starts the routine.
defaultPropsNoDefault input values.
exportConfigNoSaved with the routine. Runs do not act on it yet.
plannedStepsNoSteps from plan_from_prompt to commit.
retryOfRunIdNoID of the run this one retries.
includeEventsNoInclude run events.
propOverridesNoInput values for this run.
storageConfigNoSaved with the routine. Runs do not act on it yet.
timeoutConfigNo{ stepMs }: time limit per step. Defaults to 60000.
cronExpressionNoCron schedule for scheduled routines.
idempotencyKeyNoKey that prevents starting the same run twice.
includeSummaryNoInclude a summary.
pollIntervalMsNoMilliseconds between polls.
intervalMinutesNoMinutes between runs.
retentionPolicyNoSaved with the routine. Runs do not act on it yet.
simulateMissingNoSimulate unavailable tools during validation.
concurrencyPolicyNoWhat to do when a run is already active.
filterPermissionsNoOnly return actions whose required permissions are all granted in this map.
includeStepResultsNoInclude each step's result.
notificationConfigNoSaved with the routine. Runs do not act on it yet.

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. Changed57 schema fields changedv0.3.0
    • changedInput schema / properties / action / description
      Previous value: -"The action to perform. Available actions: start: Start an asynchronous task made of structured FileForge tool invocations. add: Add a saved task made of structured FileForge tool invocations. edit: Edit a saved task record. status: Get the current status of a running task. events: Get progress events for a task. pause: Pause a running task. resume: Resume a paused task. cancel: Cancel a running task. list: List all tasks (running, paused, completed). delete: Delete a task and its event history. export: Export task results and artifacts. monitor_page: Monitor a page for changes over time. collect_table: Collect rows from a paginated table into a local dataset. collect_search_results: Run a search on a website and collect all results into a dataset. create: Create a routine (prompt or steps input). update: Update a routine (snapshots a new version). get: Fetch a routine (optionally a specific version). duplicate: Duplicate an existing routine. enable: Enable a routine. disable: Disable a routine. validate: Validate a routine or an arbitrary step array against the tool catalog. dry_run: Produce a dry-run report for a routine without executing anything. run: Enqueue a routine for execution. stop: Stop / cancel a running or queued run. get_runs: List runs for a routine. get_run_details: Get full details of a run (steps + events + artifacts). export_run: Export a run as JSON or CSV. get_tool_registry: Return the FileForge tool capability catalog. plan_from_prompt: Return planning context (registry slice + schema + planning prompt) for an LLM to use when converting a prompt into an executable step array. commit_plan: Validate an LLM-produced step array and save it as a routine (new or updated)."New value: +"What to do. Required parameters are in brackets. start: Start an asynchronous task made of structured FileForge tool invocations. add (actions): Add a saved task made of structured FileForge tool invocations. edit (taskId): Edit a saved task record. status (taskId): Get the current status of a running task. events (taskId): Get progress events for a task. pause (taskId): Pause a running task. resume (taskId): Resume a paused task. cancel (taskId): Cancel a running task. list: List all tasks (running, paused, completed). delete (taskId): Delete a task and its event history. export (taskId): Export task results and artifacts. monitor_page (url): Monitor a page for changes over time. collect_table (url): Collect rows from a paginated table into a local dataset. collect_search_results (url, query): Run a search on a website and collect all results into a dataset. create (name): Create a routine (prompt or steps input). update (routineId, patch): Update a routine (snapshots a new version). get (routineId): Fetch a routine (optionally a specific version). duplicate (routineId): Duplicate an existing routine. enable (routineId): Enable a routine. disable (routineId): Disable a routine. validate: Validate a routine or an arbitrary step array against the tool catalog. dry_run (routineId): Produce a dry-run report for a routine without executing anything. run (routineId): Enqueue a routine for execution. stop (runId): Stop / cancel a running or queued run. get_runs (routineId): List runs for a routine. get_run_details (runId): Get full details of a run (steps + events + artifacts). export_run (runId): Export a run as JSON or CSV. get_tool_registry: Return the FileForge tool capability catalog. plan_from_prompt (prompt): Return planning context (registry slice + schema + planning prompt) for an LLM to use when converting a prompt into an executable step array. commit_plan (plannedSteps): Validate an LLM-produced step array and save it as a routine (new or updated)."
    • addedInput schema / properties / capture / description
      Added value: +"Page sections to scrape while running."
    • addedInput schema / properties / concurrencyPolicy / description
      Added value: +"What to do when a run is already active."
    • addedInput schema / properties / createdBy / description
      Added value: +"Who created it."
    • addedInput schema / properties / cronExpression / description
      Added value: +"Cron schedule for scheduled routines."
    • addedInput schema / properties / defaultProps / description
      Added value: +"Default input values."
    • addedInput schema / properties / enabled / description
      Added value: +"Whether the routine can run."
    • removedInput schema / properties / export
      Removed value: -{
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • addedInput schema / properties / exportConfig / description
      Added value: +"Saved with the routine. Runs do not act on it yet."
    • addedInput schema / properties / format / description
      Added value: +"Output format."
    • addedInput schema / properties / hints / description
      Added value: +"Extra guidance for plan_from_prompt."
    • addedInput schema / properties / idempotencyKey / description
      Added value: +"Key that prevents starting the same run twice."
    • addedInput schema / properties / includeEvents / description
      Added value: +"Include run events."
    • addedInput schema / properties / includeLogs / description
      Added value: +"Include logs."
    • addedInput schema / properties / includeRaw / description
      Added value: +"Include raw output."
    • addedInput schema / properties / includeStepResults / description
      Added value: +"Include each step's result."
    • addedInput schema / properties / includeSummary / description
      Added value: +"Include a summary."
    • addedInput schema / properties / inputType / description
      Added value: +"Whether the task starts from a prompt or from steps."
    • addedInput schema / properties / intervalMinutes / description
      Added value: +"Minutes between runs."
    • addedInput schema / properties / limit / description
      Added value: +"Maximum items to return."
    • addedInput schema / properties / maxMinutes / description
      Added value: +"Maximum run time in minutes."
    • addedInput schema / properties / maxPages / description
      Added value: +"Maximum pages to visit."
    • addedInput schema / properties / metadata / description
      Added value: +"Free-form metadata to store with the routine."
    • addedInput schema / properties / mode / description
      Added value: +"Kind of task: interactive, collector or monitor."
    • addedInput schema / properties / name / description
      Added value: +"Routine name."
    • addedInput schema / properties / notificationConfig / description
      Added value: +"Saved with the routine. Runs do not act on it yet."
    • addedInput schema / properties / offset / description
      Added value: +"Items to skip, for paging."
    • removedInput schema / properties / outputs
      Removed value: -{
      -  "items": {
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • addedInput schema / properties / parentRunId / description
      Added value: +"ID of the parent run."
    • addedInput schema / properties / patch / description
      Added value: +"Routine fields to change, using the same names as create."
    • addedInput schema / properties / permissions / description
      Added value: +"What the routine may do, such as { allowBrowser: true }. Also allowNetwork, allowScreenshots, allowCookies, allowClipboard, allowDownloads, allowFilesystemRead, allowFilesystemWrite, allowAuthenticatedSession, allowExternalWebhooks."
    • addedInput schema / properties / plannedSteps / description
      Added value: +"Steps from plan_from_prompt to commit."
    • addedInput schema / properties / pollIntervalMs / description
      Added value: +"Milliseconds between polls."
    • addedInput schema / properties / priority / description
      Added value: +"Queue priority. Higher runs first."
    • addedInput schema / properties / prompt / description
      Added value: +"Plain-language description of the routine."
    • addedInput schema / properties / propOverrides / description
      Added value: +"Input values for this run."
    • addedInput schema / properties / propsSchema / description
      Added value: +"JSON schema for the routine's inputs."
    • addedInput schema / properties / query / description
      Added value: +"Search text to collect results for."
    • addedInput schema / properties / reason / description
      Added value: +"Why the change was made."
    • addedInput schema / properties / result / description
      Added value: +"Result data to store on the task."
    • addedInput schema / properties / retentionPolicy / description
      Added value: +"Saved with the routine. Runs do not act on it yet."
    • addedInput schema / properties / retryOfRunId / description
      Added value: +"ID of the run this one retries."
    • addedInput schema / properties / retryPolicy / description
      Added value: +"{ count, backoffMs } for failed steps. A step's own retry takes priority."
    • addedInput schema / properties / routineId / description
      Added value: +"Routine ID."
    • addedInput schema / properties / runId / description
      Added value: +"Run ID."
    • addedInput schema / properties / simulateMissing / description
      Added value: +"Simulate unavailable tools during validation."
    • addedInput schema / properties / status / description
      Added value: +"add and edit: pending, running, paused, completed, failed or cancelled. list: any of those, or \"all\". get_runs: a run status."
    • addedInput schema / properties / steps / description
      Added value: +"Ordered steps: { id, tool, params, dependsOn, condition, onFailure, retry, timeout, outputKey, requiresApproval }. params includes the tool's action."
    • addedInput schema / properties / storageConfig / description
      Added value: +"Saved with the routine. Runs do not act on it yet."
    • addedInput schema / properties / store / description
      Added value: +"Save the result in ~/.fileforge and return a ref."
    • addedInput schema / properties / timeoutConfig / description
      Added value: +"{ stepMs }: time limit per step. Defaults to 60000."
    • addedInput schema / properties / timeoutMs / description
      Added value: +"Time limit in milliseconds."
    • addedInput schema / properties / trigger / description
      Added value: +"What started this run."
    • addedInput schema / properties / triggerType / description
      Added value: +"What starts the routine."
    • addedInput schema / properties / updatedBy / description
      Added value: +"Who made the change."
    • addedInput schema / properties / version / description
      Added value: +"Routine version."
    • 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

A3.8/5.0
Behavior4/5

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

Annotations already flag destructive=true and openWorld=true, but the description adds facts annotations cannot convey: runs execute in the agent's browser, execution pauses at approval-requiring steps, cron scheduling is only live while the server process runs, and routines can be disabled rather than deleted. It omits other behavioral details a destructive mega-tool arguably needs, such as what happens to a running job when the server stops, but the additions are substantive.

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?

Five short sentences, front-loaded with the Tasks/Routines dichotomy before the caveats. No filler; each sentence contributes a distinct decision-relevant fact (alternative path, scheduling limit, execution model, delete-versus-disable).

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?

For a 66-parameter, 30-action tool with an output schema and full schema coverage, the description supplies the mental model needed to pick a family and an action, which is the right level given the enum documents each action individually. A few operational behaviors around run lifecycle remain unstated, keeping it below 5.

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 every one of the 66 parameters is already documented, and the action enum carries per-action required-parameter notes. The description adds no parameter-level semantics beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

The opening line states a specific verb and resource ('Run multi-step work') and immediately splits it into two named concepts, Tasks and Routines, each with its member actions listed. An agent can map most actions to one of the two families. It stops short of differentiating from sibling tools such as fileforge_workflow_action, which sounds like an overlapping concept.

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

Usage Guidelines3/5

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

'For a single step, call the tool directly' is an explicit when-not-to-use statement, and 'cron only fires while this server runs' is a real operational constraint on scheduling. Beyond that, there is no guidance for the 30 actions in the enum—no indication of which to prefer when, or how this tool relates to the many sibling toolsets.

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