Skip to main content
Glama

create_attachment

Upload an image from a file path or HTTPS URL to embed in Meet Rupert documents. Returns an attachment reference for inclusion.

Instructions

Upload an image so it can be embedded in a Meet Rupert document. PASS A FILE PATH OR AN HTTPS URL — NOT THE IMAGE DATA. The server reads the bytes itself; there is no base64 or inline-content parameter and you must not attempt to supply one. This is because a large payload placed in a tool-call argument gets silently truncated in transit (an 18,880-byte payload arrived as 7,312 bytes in testing, corrupting the file with no error raised), which rules out essentially every real screenshot. Letting the server read the file makes the returned contentLength and sha256 facts about the file itself, so you can verify them against the source. Accepts image/png, image/jpeg, image/webp and image/gif only, up to 10 MB — the type is determined from the file's magic bytes, not its extension. SVG and non-image files (PDF, .docx, plain text) cannot be attached: the platform has no storage for them. Returns an attachmentId and a ready-to-use markdownRef like ![caption](attachment://<id>) — put that in the content of create_document or update_document to place the image.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathNoAbsolute path to an image file on a filesystem this SERVER can read. The server opens and reads the file itself — do not read the file yourself and do not pass its contents. Must be inside an operator-configured allowlist (MEETRUPERT_ATTACHMENT_DIRS); if none is configured, path is refused and you should use source_url instead.
captionNoAlt text / caption for the image, used in the returned markdownRef. Worth setting: it is what a reader sees if the image fails to load.
source_urlNoAn https:// URL the server fetches itself. HTTP is refused, redirects are not followed, and private/loopback/link-local/cloud-metadata addresses are blocked.
Behavior5/5

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

With no annotations, the description carries full behavioral disclosure. It reveals the critical truncation bug with large payloads, explains that the server reads the file itself, notes type detection via magic bytes, and describes security restrictions (HTTP refused, redirects not followed, private addresses blocked). This is exemplary transparency.

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?

The description is appropriately sized for the tool's complexity, with every sentence providing critical information. It is front-loaded with the most important instruction (path or URL, not data) and logically flows through constraints, rationale, and return value usage.

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 tool with no output schema, the description covers return values (attachmentId, markdownRef), usage with downstream tools, accepted formats, size limits, and failure cases. It provides complete operational context without relying on structured annotations.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds substantial value beyond schema: it explicitly warns not to pass image data, explains the truncation rationale, and clarifies that contentLength and sha256 are facts about the source file. The caption is given extra context about its use in fallback display, enriching the schema's basic description.

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?

The description clearly states the tool uploads an image for embedding in a Meet Rupert document, with a specific verb and resource. It distinguishes itself from sibling attachment tools (list, download, delete) and is unambiguous about its core function.

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?

Provides explicit when-to-use guidance: pass a file path or HTTPS URL, not image data; explains accepted types and size limit; and states that non-image files cannot be attached. Clearly indicates how the returned markdownRef is used with create_document/update_document, giving practical context.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/deanjbrown/meetrupert-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server