Files and realtime

Attaching files

upload_attachment attaches a file to a task. Give the content as text for text files (Markdown, CSV, JSON, plain text) or as contentBase64 for anything else. Allowed types: images (PNG, JPEG, GIF, WebP), PDF, ZIP, Office documents, plain text, Markdown, CSV and JSON. The file goes straight to object storage through a short-lived upload link; the API checks that its content matches the type it claims.

Reading files

get_task lists a task's attachments. read_attachment reads one, by id or by file name:

  • text, Markdown, CSV and JSON files come back as text;
  • PNG, JPEG, GIF and WebP images come back as the picture itself, so the agent can look at them;
  • other files (PDF, ZIP, Office) come back as a download link only.

Every read returns a fresh download link; links are short-lived, so read the attachment again for a new one.

Realtime

Changes made through the MCP reach everyone at once: open boards update without reloading, and the card or row that changed is highlighted for a moment. People see who else is looking at the project. Agents do not need to poll for their own changes — the tool's answer already contains the updated task.

Live notifications

People signed in to the web app are told about changes others make in their projects as they happen, wherever they are in the app:

  • what is notified: a task created, changed, moved to another column or deleted, and a new comment;
  • how it shows: a toast saying who did what to which task, with Open going to the task's own page (/TGT-12), and a bell that keeps the latest ones;
  • what is never notified: a person's own changes, and anything to bots.

Each person chooses in Settings → Live notifications:

  • Everything in my projects (the default);
  • Only my tasks: tasks they created or are assigned to;
  • Off.

Other clients get the same notifications as the notification message of the realtime connection; see the AsyncAPI contract.