TaskPort · MCP server

TaskPort MCP Agent Documentation

Connect an MCP-compatible agent to the same lists and tasks you use in TaskPort—with revocable, per-agent access you control.

Connection

Connect over Streamable HTTP.

Use an agent access token created inside TaskPort. Never use your TaskPort password. Select Streamable HTTP (or HTTP) in your MCP client—not stdio or legacy SSE.

MCP URL
https://abafbnwpzdqxyhtrkdsg.supabase.co/functions/v1/taskport-mcp
Transport
MCP Streamable HTTP
Authorization
Bearer <YOUR_TASKPORT_TOKEN>
Accept
application/json, text/event-stream

Common client configuration

{
  "mcpServers": {
    "taskport": {
      "url": "https://abafbnwpzdqxyhtrkdsg.supabase.co/functions/v1/taskport-mcp",
      "headers": {
        "Authorization": "Bearer tp_live_REPLACE_WITH_TOKEN",
        "Accept": "application/json, text/event-stream"
      }
    }
  }
}

Prefer your client’s secret or environment-variable reference instead of pasting the raw token into a configuration file.

Authentication

Get a token from TaskPort.

  1. 1

    Open TaskPort → Settings → Manage Agent Access.

  2. 2

    Choose New Agent, name it, and select a permission level.

  3. 3

    Copy the one-time token beginning with tp_live_.

  4. 4

    Add it to your MCP client and call list_lists to verify.

The full token is displayed only once.

TaskPort stores only a secure hash. If you lose the token, revoke it and create a new one.

Access control

Choose exactly what an agent can do.

Read only

Inspect work

Advertises only list_lists, list_tasks, get_task, list_attachments, and temporary attachment download links.

Read & write

Manage work

Includes all read tools plus create, update, complete, note, attachment upload, and permanent-delete operations.

Write tools are not advertised to a read-only token. Each token belongs to exactly one user, and every operation verifies ownership.

Tool reference

Available MCP tools.

list_listsread

Returns every list owned by the connected TaskPort user. No arguments.

list_tasksread

Returns top-level tasks. Optionally filter by list_id, due_on (YYYY-MM-DD), or completed.

get_taskread

Returns one task with its ordered subtasks, notes, and ready attachment metadata. Requires task_id.

list_attachmentsread

Returns ready attachment metadata for one task. Requires task_id. Private Storage paths are never returned.

get_attachment_download_urlread

Creates a private 60-second link for one ready attachment. Requires attachment_id; download is optional.

create_listwrite

Creates a list. Requires title; emoji is optional.

update_listwrite

Renames a list or changes its emoji. Requires list_id and at least one change.

delete_listwrite

Permanently deletes a list, its tasks, and all associated attachments. Use only after a clear user request.

create_taskwrite

Creates a top-level task or direct subtask. Requires list_id and title. Supports parent_task_id, due_on, and priority.

update_taskwrite

Changes a task title, completion status, due date, or priority. Requires task_id and at least one change.

delete_taskwrite

Permanently deletes a task, its child lines, and all associated attachments.

add_notewrite

Adds a paragraph to a top-level task. Requires task_id and text.

prepare_attachment_uploadwrite

Reserves quota and starts an upload. Requires task_id, file_name, mime_type, and byte_size.

upload_attachment_chunkwrite

Uploads one zero-based raw-file chunk as canonical base64. Requires attachment_id, chunk_index, and data_base64.

complete_attachment_uploadwrite

Assembles and validates the file after every chunk arrives. Requires attachment_id.

cancel_attachment_uploadwrite

Cancels an unfinished upload, removes its chunks, and releases reserved quota.

delete_attachmentwrite

Permanently deletes one attachment and reclaims its quota. Requires attachment_id.

Files

Attachments and MCP.

TaskPort tasks can contain multiple images and files. Users add them from TaskPort on iPhone, iPad, or Mac, or by sharing a supported file to TaskPort from another app.

Private by default

Files are stored per account without a public or permanent file URL.

100 MB per account

Hard limit of 100 MB, 25 MB per file, and 1,000 attachments.

Safe file types

Images, PDF, text, Markdown, CSV, RTF, DOCX, XLSX, and PPTX.

User-controlled cleanup

Remove files individually or erase every attachment from Settings.

Agents can work with attachments through MCP

Read-only agents can list attachments and request short-lived download links. Read & Write agents can also upload, cancel, and permanently delete them. Completing a task keeps its attachments; permanently deleting a task or list removes the associated files.

Upload a file from an agent

  1. 1

    Call prepare_attachment_upload with the target task_id, exact file_name, mime_type, and raw byte_size. Keep the returned attachment.id, chunk_size, and chunk_count.

  2. 2

    Split the raw file into blocks of at most 4,194,304 bytes. Base64-encode each block separately, then call upload_attachment_chunk for indexes 0 through chunk_count - 1. Do not send a data-URL prefix or split one already-encoded string.

  3. 3

    Call complete_attachment_upload. TaskPort assembles the chunks, verifies their exact size, validates the actual file contents, stores the final object privately, and accounts for quota.

  4. 4

    Use list_attachments or get_task to read its metadata. Call get_attachment_download_url only when the agent needs the bytes; the signed link expires after 60 seconds.

prepare_attachment_upload({
  "task_id": "TASK_UUID",
  "file_name": "brief.pdf",
  "mime_type": "application/pdf",
  "byte_size": 842119
})

upload_attachment_chunk({
  "attachment_id": "ATTACHMENT_UUID",
  "chunk_index": 0,
  "data_base64": "JVBERi0xLjcK..."
})

complete_attachment_upload({
  "attachment_id": "ATTACHMENT_UUID"
})

Chunk uploads are retry-safe: sending the same index again replaces that temporary chunk. If the workflow cannot finish, call cancel_attachment_upload to release the reservation immediately; otherwise it expires after two hours.

Executables, scripts, generic archives, SVG, encrypted documents, and Office files containing macros are rejected. TaskPort validates file content in addition to its filename and declared media type.

Dates and time zone

Use the user’s local calendar date.

Due dates are calendar dates in YYYY-MM-DD format, not timestamps. The server does not expose the user’s time zone. Determine “today” from the user’s profile or ask, then pass the matching local date.

Troubleshooting

Expected errors.

SituationResult
Missing, invalid, or revoked tokenHTTP 401 · Invalid TaskPort agent token
Request carries a browser OriginHTTP 403 · Browser origins are not allowed
Write with a read-only tokenTool is not advertised
Missing list or another user’s listList not found
Missing task or another user’s taskTask not found
Delete while an attachment upload is finishingAn attachment operation is still finishing; retry shortly
File exceeds 25 MBFiles are limited to 25 MiB
Account would exceed 100 MBAttachment storage limit reached
Content does not match its declared typeThe file contents do not match the allowed type
Upload reservation is older than two hoursUpload reservation expired
Account at its list or task limitLimit message with support contact
Current free-account limits

Free accounts support up to 3 lists and 500 tasks. Need more? support@megacubos.com.

Still stuck? Visit TaskPort Support.