Skip to main content
Glama

Dutify

wiki_request_attachment_upload

Step 1 of uploading an image/file to a wiki page. Returns { attachmentId, uploadUrl, storageKey }. AFTER calling this you MUST: (2) PUT the raw file bytes to uploadUrl with your OWN HTTP client — the MCP server cannot do this binary upload — sending the EXACT same Content-Type as contentType and a Content-Length equal to sizeBytes (both are baked into the presigned URL; a mismatch 403s); then (3) call wiki_confirm_attachment to activate it. To embed the result as an image, add a TipTap image node with no src — { type:"image", attrs:{ attachmentId, pageId, width, height, align } }, width <= ~660 and height proportional — via wiki_update_page (content payload). Do NOT embed base64 data: URIs; they render distorted. Max 25 MB; system-executable file types are rejected. pageId is the page UUID (wiki_get_space_with_pages tree node id). API-key scope: wiki:attachments:write.

Input Schema

NameRequiredDescriptionDefault
pageIdYesPage UUID (tree node `id` from wiki_get_space_with_pages)
accountNoMulti-account auth only: name of the account from X-Dutify-Accounts to use for this call. Ignored in single-account mode (X-API-Key header). When multiple accounts are configured and this is omitted, the call fails with ACCOUNT_REQUIRED listing the available names. list_accounts never requires a selection.
filenameYesOriginal filename, e.g. "diagram.png"
sizeBytesYesExact file size in bytes — must match the PUT Content-Length exactly
workspaceNoWorkspace identifier or exact name for this call. Overrides the configured workspace. For personal keys, discover candidates with list_workspaces and select explicitly. Does not change other calls or expand a workspace key's access.
contentTypeYesMIME type, e.g. "image/png" — must match the PUT Content-Type exactly

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond annotations: discloses that the MCP server cannot perform the binary PUT, that Content-Type/Content-Length must match the presigned URL or the PUT 403s, the 25 MB cap, rejection of executables, and the required API-key scope.

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?

Front-loads the purpose and the numbered follow-up steps, and each sentence carries operational content. It is dense and long-ish, but the length is justified by the multi-step, error-prone workflow it describes.

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?

No output schema exists, yet the description names the returned fields (attachmentId, uploadUrl, storageKey) and covers the full success path end-to-end, leaving no gap an agent would need to guess at.

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% and already documents pageId/contentType/sizeBytes matching, so the description's value-add is the size ceiling and executable-type rejection tied to sizeBytes/filename, plus clarifying that pageId is the UUID from wiki_get_space_with_pages. Useful but largely reinforcing 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+role: 'Step 1 of uploading an image/file to a wiki page', and enumerates the return shape. It is clearly distinguishable from wiki_confirm_attachment, wiki_update_page and wiki_list_attachments named in the text.

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 sequences the three-step workflow, names the required follow-up tool (wiki_confirm_attachment), and includes a negative instruction ('Do NOT embed base64 data: URIs') plus where to embed the result instead (wiki_update_page TipTap node).

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