Skip to main content
Glama

Engram Obsidian Memory Sync

Get Attachment Upload Target

get_attachment_upload_target
Idempotent

Get the endpoints and this account's limits for uploading an attachment (any file type except executables). Returns how to send the file yourself using the credential already authorizing this connection: one raw request for small files, a resumable parts protocol above max_body_bytes. The bytes do not pass through this tool. Call before uploading to learn the size cap and which file types the plan allows.

Input Schema

NameRequiredDescriptionDefault
vault_idNoTarget vault: its name (e.g. "Engram") or its UUID. REQUIRED when you own more than one vault; the server keeps no active-vault state between calls, so it must be passed on every vault-scoped call. Omit only if you have a single vault. Call list_vaults if a name does not resolve.

Output Schema

NameRequiredDescriptionDefault
urlYes
methodYes
vault_idYesSend as the x-vault-id header
all_typesYesfalse means text/* only on this plan
max_bytesNo
uploads_urlNoStart URL of the parts protocol, for files over max_body_bytes
max_body_bytesNoLargest file a single raw POST accepts

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / max_body_bytes
      Added value: +{
      +  "description": "Largest file a single raw POST accepts",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / uploads_url
      Added value: +{
      +  "description": "Start URL of the parts protocol, for files over max_body_bytes",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  3. Changed1 schema field changed
    • changedInput schema / properties / vault_id / description
      Previous value: -"Target vault — its name (e.g. \"Engram\") or its UUID. REQUIRED when you own more than one vault — the server keeps no active-vault state between calls, so it must be passed on every vault-scoped call. Omit only if you have a single vault. Call list_vaults if a name does not resolve."New value: +"Target vault: its name (e.g. \"Engram\") or its UUID. REQUIRED when you own more than one vault; the server keeps no active-vault state between calls, so it must be passed on every vault-scoped call. Omit only if you have a single vault. Call list_vaults if a name does not resolve."
  4. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Goes well beyond the annotations: discloses file-type restriction (no executables), plan-dependent caps, credential reuse, two transfer protocols with the max_body_bytes switchover point, and that payload bytes bypass the tool. The one gap is that readOnlyHint=false implies a side effect, yet the description frames this purely as a 'get' with no mention of what the non-read-only aspect is.

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 dense sentences, front-loaded with what is returned and immediately followed by the 'no bytes pass through' clarification and the protocol choice. Every sentence carries information; the parenthetical about executables and the closing 'call before uploading' are both load-bearing.

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 pre-flight discovery tool with an output schema (so return shape needn't be restated) and one well-documented optional parameter, the description covers purpose, limits, protocol choice, and file-type constraints. Only the meaning of the non-read-only annotation is left unaddressed.

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% and the vault_id property already documents the name-or-UUID form, multi-vault requirement, and the list_vaults fallback. The description never mentions vault_id or vault scoping, so it adds nothing over the schema for the sole parameter; baseline 3 applies.

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?

Specific verb+resource: it returns the endpoints and account limits needed to upload an attachment, and explicitly states 'The bytes do not pass through this tool.' That negative scoping cleanly separates it from the write-oriented siblings (write_note, append_to_note, move_attachment) that an agent might otherwise confuse it with.

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?

'Call before uploading to learn the size cap and which file types the plan allows' gives a clear trigger condition and decision context. It also tells the agent what to do with the result (send the file itself, raw request vs. resumable parts above max_body_bytes). No explicit 'when not to use' or named alternative exists, and none of the siblings competes for this job.

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.