Skip to main content
Glama
anythink-cloud

Anythink-MCP

Official

Workflows: file handler add

workflows_file_handler_add

Add a FileHandler workflow step to attach, link, or detach a file on a record field with named flags instead of raw params JSON. Set entity, record ID, and field; optionally route success or failure.

Instructions

Add a FileHandler step with named flags (no hand-written params JSON). The step attaches a file to a record's file field: fetch_and_link downloads source_url, link_existing attaches existing_file_id, and detach unlinks it; entity, record_id (usually {{ $anythink.trigger.id }}) and field are always needed. Unlike workflows_step_add it can set on_success/on_failure in the same call, and the step is created disabled unless enabled is set.

Input Schema

NameRequiredDescriptionDefault
nameNoStep display name (defaults to the step key)
fieldNoField name on the record to link the file to (required, snake_case)
startNoSet as start step
entityNoTarget entity name (required)
enabledNoEnable step immediately
step_keyYesStep key (unique identifier, snake_case)
file_nameNoFilename to store the uploaded file as (templatable)
folder_idNoFolder ID to upload the file into (optional, templatable)
is_publicNoMark the uploaded file as public
link_modeNoHow to link to the field: set (single value) or add (append to multi-value). Default: set
operationNoFileHandler operation: fetch_and_link, link_existing, detach
record_idNoTarget record ID, typically '{{ $anythink.trigger.id }}' (required)
on_failureNoStep ID to execute on failure
on_successNoStep ID to execute on success
source_urlNoURL to fetch the file from (required for fetch_and_link; supports templating)
workflow_idYesWorkflow ID. Find it with workflows_list.
existing_file_idNoExisting file ID (required for link_existing operation; templatable)
overwrite_if_presentNoRe-process even if the field already has a value (idempotency override)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.2.37
    • changedInput schema / properties / workflow_id / description
      Previous value: -"Workflow ID"New value: +"Workflow ID. Find it with workflows_list."
  2. Addedv0.2.27

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only cover the generic safety profile (readOnly=false, destructive=false, openWorld=false). The description adds a genuinely useful trait not in the annotations: the step is created disabled unless `enabled` is set. It does not cover auth/permission needs or any failure semantics, so it is strong but not complete.

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 dense sentences, front-loaded with purpose and then operations, then the sibling comparison and default-disabled caveat. Every sentence carries information; only slight density cost from packing three operation definitions into one clause.

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 an 18-parameter mutation with no output schema and no dedicated annotations, the description covers the operation modes, conditional required fields, and a default-value behavior, which is what an agent most needs. Remaining params (folder_id, is_public, file_name, link_mode, overwrite_if_present) are fully documented in the schema, so nothing critical is missing.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds conditional semantics the schema does not: entity, record_id and field are 'always needed' despite only workflow_id/step_key being in the required array, and it ties source_url/existing_file_id to specific operations. This meaningfully reduces the chance of a mis-invocation.

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+resource ('Add a FileHandler step') and immediately enumerates the three operations (fetch_and_link, link_existing, detach) with what each does. It explicitly distinguishes itself from the sibling workflows_step_add, so an agent can route 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?

Names the alternative (`workflows_step_add`) and a concrete distinguishing capability (setting on_success/on_failure in the same call) plus the default-disabled behavior, which gives clear selection context. It stops short of a full when-to-use/when-not story or referencing the sibling workflows_file_handler_example as a template source.

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

Deploy Server

Other Tools