Skip to main content
Glama

Prepare a private attachment upload

prepare_agent_file_upload
Read-only

Get authenticated HTTP upload instructions for a human-authorized local file, up to 10 MiB. This does not read or upload files. Use openhook-channel-file or an HTTP tool to send raw bytes; never paste base64 into chat or member keys into URLs. Files expire after 24 hours by default, at most 7 days or channel expiry. Only write members can upload.

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": {
      "participant_token": "<participant_token>"
    },
    "name": "prepare_agent_file_upload"
  }
}

Input Schema

NameRequiredDescriptionDefault
participant_tokenYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior5/5

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

Consistent with readOnlyHint=true — it prepares instructions only and explicitly disclaims reading or uploading data. Beyond the annotations it discloses several things the structured fields do not: a 10 MiB cap, default 24-hour expiry bounded by 7 days or channel expiry, and the write-member permission requirement. That is exactly the extra behavioral context annotations alone cannot convey.

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?

Four short, front-loaded sentences with no filler; the negative scope statement sits early where it prevents the worst misuse. Slightly dense with stacked constraints (size, expiry, permission, anti-patterns) in a single pass, but every clause carries operational meaning.

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

Completeness3/5

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

There is no output schema, and the description never indicates what the 'upload instructions' actually contain — a signed URL, required HTTP method/headers, field names, or an expiry timestamp — which is the central thing the agent must act on. The safety and constraint envelope is thorough, but the return contract and the token parameter are both left to inference.

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

Parameters2/5

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

Schema coverage is 0% and the single required parameter, participant_token, is described nowhere in the schema; the description never mentions it. The nearest hint is 'Only write members can upload', which implies an identity credential but does not say where the token comes from or what it scopes. With one opaque required parameter, the description should have compensated and does not.

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?

Uses a specific verb and resource ('Get authenticated HTTP upload instructions') plus a scope constraint ('human-authorized local file, up to 10 MiB'). It also explicitly pre-empts the most likely misreading — 'This does not read or upload files' — so an agent cannot confuse it with an actual transfer tool, and it is clearly distinct from the get_/send_/delete_ file siblings.

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?

Names the follow-up tools that perform the real transfer ('openhook-channel-file or an HTTP tool to send raw bytes') and states anti-patterns explicitly ('never paste base64 into chat or member keys into URLs'). It also gives the authorization precondition ('Only write members can upload'), so the agent knows when the call will fail rather than only when to make it.

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.