Skip to main content
Glama

Request an attachment upload URL

request_attachment_upload

Get a short-lived, one-time upload_url to hand the file bytes off outside this conversation — use this for files too large or too binary to inline via create_attachments (text/content_base64 there are capped at 4 MB and go through the model's own context). POST the file as multipart form data to upload_url with the field named file (max size and allowed content types are in the response) before expires_at; the token is consumed by the first successful upload and creates the attachment itself, scoped to company_id and, if given, project_id. This call only reserves the slot — it does not create the attachment yet, so it won't show up in list_attachments until the upload completes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only say the call is not read-only and not idempotent, but the description adds crucial behavioral detail: the token is one-time, consumed by the first successful upload, and the upload itself creates the attachment. This prevents the agent from expecting immediate listing or retry semantics.

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 dense but well-structured: purpose, workflow, constraints, and caveats all appear in three sentences with no redundancy. The key deliverable and distinction from `create_attachments` are front-loaded, and every sentence adds practical value.

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?

With no output schema and annotations providing only negative hints, the description carries the complete burden and succeeds: it explains the returned fields (`upload_url`, `expires_at`, max size, content types), the asynchronous attachment creation, and the lifecycle relative to `list_attachments`. This is sufficient for safe and correct invocation.

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?

The schema gives little semantic coverage at the top-level body parameter, and the description compensates by explaining `company_id` and optional `project_id` scoping and the exact upload contract. However, it does not explain the `title` sub-parameter, leaving a small gap in full parameter coverage.

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 explicitly names the deliverable (`upload_url`) and clearly states the tool's purpose: obtaining a short-lived, one-time URL for offloading file bytes that are too large/binary for `create_attachments`. It also distinguishes this tool from siblings by explaining that this only reserves a slot and that the attachment is not visible in `list_attachments` until upload completes.

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?

The description provides a clear use-case boundary: use it for files too large or too binary to inline via `create_attachments`. It gives concrete steps — POST multipart form-data to `upload_url` with field name `file`, before `expires_at`, with max size and allowed content types from the response — which is exactly the guidance an agent needs.

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.

TDQS

A3.6/5.0
Disambiguation4/5

Most tools are clearly scoped to a specific resource and action, but a few near-overlapping pairs (e.g., list_attachments vs list_taskattachments, create_tasktags vs add_tag_tasks) could cause misselection without close reading. Descriptions are detailed enough to resolve most ambiguity.

Naming Consistency4/5

The dominant verb_noun CRUD pattern (create_, list_, retrieve_, update_, partial_update_, destroy_) is consistent and predictable. However, non-standard pluralizations (companys, resumeentrys, taskdependencys) and a handful of irregular names (task_assign_user, move_relate_to_tasks) introduce minor inconsistencies.

Tool Count1/5

With 83 tools, this server is far beyond a well-scoped MCP surface, even for a feature-complete project management suite. The sheer volume will overwhelm agents and make selection inefficient, clearly falling into the extreme-mismatch range.

Completeness5/5

The toolset provides thorough lifecycle coverage across companies, projects, tasks, sprints, attachments, comments, dependencies, tags, reminders, resume entries, tickets, and users. Missing operations like company deletion or task-attachment creation appear intentional and are worked around via existing tools.

Resources