Skip to main content
Glama

ZeroWidth Napkin

Save a picture from this chat to your files

workspace_files_save_from_chat

Save a picture the user attached in THIS conversation to the workspace's files, in the Home folder "From chat", and get back its file id. Use it when the user wants a picture they sent you used somewhere — an interface shows it as (CSS: url(file:)). Pick the picture by name: the name in its [attached image: <name>] marker. Omit name only when the latest message with pictures has exactly one. Saving the same picture again returns the file it was already saved as. Only pictures from this conversation can be saved; a picture on a website can't be fetched, so ask the user to attach it here.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoThe picture's name, as in `[attached image: <name>]`.
workspaceNoWorkspace slug. Ignored when the workspace is already set for this chat.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), and the description adds real context: idempotency ("Saving the same picture again returns the file it was already saved as"), the storage location, and the returned file id. It stops short of stating auth/permission needs or the confirmation flow, which the schema's approvalId only implies.

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?

A single dense, front-loaded paragraph that leads with the action and destination before qualifying conditions. Every sentence carries information, though the naming/omission rules and the idempotency note stack up enough that trimming could help.

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?

For a 3-parameter write tool with no output schema, the description covers the action, destination folder, name-resolution rule, idempotent behavior, and return value (file id). Nothing an agent needs to invoke this correctly appears to be 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 selection logic the schema lacks: pick `name` from the `[attached image: <name>]` marker and omit it only when the latest picture-bearing message has exactly one image. It also implicitly frames `workspace` as optional-when-already-set, matching the schema.

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+destination: save a picture attached in THIS conversation into the workspace's "From chat" Home folder and return its file id. The scope (this conversation, attached pictures) is precise and easily distinguished from the surrounding napkin_* document/sheet tooling.

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?

Explicitly names the trigger ("Use it when the user wants a picture they sent you used somewhere") and a hard exclusion ("Only pictures from this conversation can be saved; a picture on a website can't be fetched, so ask the user to attach it here"). It also tells the agent how to resolve the `name` argument and when it may be omitted.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources