MCP tools

attachment_add write

Attach a file to an issue, or to one of its comments: a mock-up, a report, a log, a screenshot. Send the bytes base64-encoded in content_base64, at most 2 MB decoded; for a larger file (up to 10 MB) call attachment_upload_url, PUT the raw bytes to the link, then call this with upload. The type is decided by the server from the filename and the bytes, never from what you claim, and an .html or .svg file is shown to people in a sandboxed preview where its scripts run without access to the app. Read a file back with the uri in the reply, a roadmap://attachment/{id} resource.

Arguments

NameTypeDescription
commentstringattach to this comment of the issue instead of the issue itself; the comment's ULID from comment_list or issue_get
content_base64stringthe file, base64-encoded (standard alphabet, padded); at most 2 MB decoded. Omit it and pass upload instead for a larger file
filenamestringthe name people see and download it under, with its extension; .html and .svg files open in a sandboxed preview. Required unless upload is given
issuestringan issue key like ENG-142, or a ULID; required unless upload is given
uploadstringthe token of an upload link from attachment_upload_url whose bytes you have already PUT; issue, comment and filename then come from the link and may be omitted

Input schema

Exactly what tools/list serves.

input schema
{
  "additionalproperties": false,
  "properties": {
    "comment": {
      "description": "attach to this comment of the issue instead of the issue itself; the comment's ULID from comment_list or issue_get",
      "type": "string"
    },
    "content_base64": {
      "description": "the file, base64-encoded (standard alphabet, padded); at most 2 MB decoded. Omit it and pass upload instead for a larger file",
      "type": "string"
    },
    "filename": {
      "description": "the name people see and download it under, with its extension; .html and .svg files open in a sandboxed preview. Required unless upload is given",
      "type": "string"
    },
    "issue": {
      "description": "an issue key like ENG-142, or a ULID; required unless upload is given",
      "type": "string"
    },
    "upload": {
      "description": "the token of an upload link from attachment_upload_url whose bytes you have already PUT; issue, comment and filename then come from the link and may be omitted",
      "type": "string"
    }
  },
  "type": "object"
}