Uploads a file attachment (screenshot, log, PDF, ...) to a task. Send the raw file bytes base64-encoded in file_base64 together with a file_name that includes the extension, e.g. "screenshot.png". A data URI prefix ("data:image/png;base64,...") is accepted and stripped. Max 10 MB per file after decoding; the file also counts against the project owner's storage quota. Allowed extensions: images (jpg, jpeg, png, gif, webp, heic), video (mp4, mov, webm, ...), audio (mp3, wav, ogg), documents (pdf, txt, md, rtf, doc, docx, xls, xlsx, ppt, pptx) and archives (zip, rar, tar, gz). Use it to attach evidence to a task — screenshots of a bug, a failing log, a generated report. Requires owner, admin, or member role in the project; guests cannot upload.
Safety: Write
Tool names, field names, and schema descriptions remain in canonical MCP English so copied calls match the server exactly.
Input schema
| Field | Type | Required | Description |
|---|---|---|---|
task_id |
integer | no | The task ID. |
search |
string | no | Search by task name, description, or "#number". Used when task_id is omitted. |
file_base64 |
string | yes | The file contents, base64-encoded. A "data:;base64," prefix is accepted and stripped. |
file_name |
string | yes | File name including the extension, e.g. "screenshot.png". The extension decides the file type. |
mime_type |
string | no | Optional MIME type hint, e.g. "image/png". When omitted it is detected from the file contents. |
Example prompt
Use upload-attachment-tool to help me with the relevant Taskavel task.
Example call
{
"name": "upload-attachment-tool",
"arguments": {}
}