Skip to main content
Glama

upload_attachment

Upload attachments to Airtable attachment fields by URL, appending to multipleAttachments cells that update_records cannot set. Airtable fetches each URL directly.

Instructions

Upload attachments into an attachment cell by URL. Airtable's servers fetch each URL directly (the UI's 'Add attachment → Add URL') — bytes are NOT proxied through this server. Use for multipleAttachments fields, which update_records cannot set. Appends to the cell (calling twice adds two). Per-update isolation: a failing update is reported, not fatal.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "appId": "<appId>",
      "updates": "<updates>"
    },
    "name": "upload_attachment"
  }
}

Input Schema

NameRequiredDescriptionDefault
appIdYesThe Airtable base/application ID
debugNoWhen true, include raw Airtable response in output for diagnostics
updatesYesAttachments to upload, each { rowId: "recXXX", columnId: "fldXXX", url: "https://...", filename?: "name.jpg" }. filename defaults to the URL path basename.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.0.9

TDQS

A4.6/5.0
Behavior4/5

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

Adds real context beyond the annotations: the trust boundary that Airtable fetches the URL itself (so the URL must be publicly reachable), append-not-replace behavior, and per-update failure isolation ('a failing update is reported, not fatal'). Together these flesh out the non-idempotent and openWorld hints. Minor gaps remain on failure retry semantics and any URL size/type restrictions, but the disclosure is strong.

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?

Four short sentences, each carrying distinct information: purpose and mechanism first, then sibling differentiation, then append semantics, then failure behavior. No filler, no repetition, and the most decision-relevant facts are front-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?

For a mutation tool with no output schema, it covers mechanism, append semantics, sibling routing, and partial-failure reporting — enough to call it correctly. It stops short of describing what a successful response returns per update or any limits on URL fetching, which leaves a small gap.

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 the baseline would be 3, but the description adds meaning to the url parameter by explaining that Airtable's servers fetch it directly, implying it must be publicly accessible rather than authenticated or local. The filename default is restated from the schema rather than extended.

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 (upload), resource (attachments), and the exact target shape (attachment cell by URL), plus the mechanism that Airtable's servers fetch the URL rather than this server proxying bytes. It explicitly distinguishes itself from update_records by naming the multipleAttachments field type it exclusively handles.

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?

Gives explicit routing: 'Use for multipleAttachments fields, which update_records cannot set' names the alternative and the condition that selects this tool. It also warns about repeat invocation semantics ('calling twice adds two'), so the agent knows this is append-only and not a replace/sync operation.

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