Skip to main content
Glama
bitterdev

simple-support-system-mcp

by bitterdev

Attach files to a ticket

add_ticket_attachments

Link already uploaded files to a support ticket using file IDs. Skips existing attachments and cannot edit closed or invalid tickets.

Instructions

Link already uploaded files to a ticket by their file ids. Files that are attached already are skipped, and the API rejects a call that would add nothing. Tickets in the states closed or invalid are locked by the API and reject edits.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tokenNoAccess token of a private project. Only needed without an API key, or for projects behind a private link.
fileIdsYesFile ids returned by upload_attachment.
ticketIdYesTicket the files are attached to.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.4

TDQS

A4/5.0
Behavior4/5

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

Annotations only supply openWorldHint, so the description carries the burden and does a good job: it discloses idempotent skipping of already-attached files, that the API rejects calls adding nothing, and that closed/invalid tickets are locked. It omits permission/auth requirements beyond the token and any indication of what the call returns.

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?

Three tightly packed sentences with zero filler; the core action leads and the constraints follow in order of relevance. Every sentence carries a distinct, actionable fact.

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 3-parameter mutation tool with no output schema and thin annotations, the description covers the important failure modes and locking behavior. It could still say more about required edit permissions or what happens on partial success.

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%, including the note that fileIds come from upload_attachment, so the schema already documents all three parameters. The description's 'by their file ids' adds no syntax or format detail beyond it, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Link already uploaded files to a ticket by their file ids') and the phrase 'already uploaded' implicitly separates it from upload_attachment. It never names the sibling outright, so the routing distinction relies on inference.

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?

Preconditions are explicit: files must already exist (implying upload_attachment first), no-op calls are rejected, and closed/invalid tickets reject edits. It gives clear when-not conditions but never states the positive trigger or names the alternative tool directly.

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