A good brief goes a long way.

Connect an assistant to the tasks you choose. Task Mafia supplies current context, adds tasks directly and keeps a person in control of changes to existing work. The product makes no model calls.

Connect through MCP

{
  "mcpServers": {
    "task-mafia": {
      "url": "https://taskmafia.com/mcp"
    }
  }
}

Use a remote MCP client that supports Streamable HTTP and OAuth. Sign in, select projects, and approve access. Host support is being tested; universal ChatGPT or Claude account compatibility is not yet claimed.

ToolWhat it does
list_projects / list_tasksRead permitted lists with descriptions and work/personal labels, and paginated tasks.
get_projectRead the description, work/personal context and tasks/shopping format of a granted list.
get_task_briefFetch the task, current context revisions, prerequisites and results.
capture_task / capture_itemsAdd one open task or up to 20 items directly to permitted lists in an atomic batch. No task acceptance is required.
propose_changesRecord an immutable, revision-bound change for review.
propose_task_moveSuggest a better list for an existing task. Its owner reviews changed sharing before approving the move.
submit_work_handoffReturn a fenced coordination-only handoff with the external workspace location. Only a person completes it.
submit_resultLegacy write contract: upgrade to submit_work_handoff. Historical results remain readable.
get_changesRead permitted activity after a string cursor.

Check capabilities before organising

Start with get_connection_status and list_projects. Diagnostics report the live server version, tool catalogue and selected-list permissions. A missing method is different from a permission denial. This server has no refresh operation: refresh a custom connection in its host settings and start a new conversation. Marketplace tool definitions pass host review separately from server deployment.

Give lists useful context

Use propose_list_update to suggest a name, description, Work/Personal classification or tasks/shopping format. Use propose_list_creation to stage a new private list, anchored to a selected list you own. Both return an owner review link. Nothing changes until approval. A new list is not automatically connected to an agent; choose that access separately. Inspect suggestions with list_list_proposals and get_list_proposal.

Delegated agent work

Give a task to a named connection or any eligible agent, answer a private question, then review the work in its original workspace. Work access is off by default: the owner must enable it for a selected-list connection and explicitly delegate the task. Check get_connection_status for availability and permissions.

The host owns its schedule, tools and approvals. Configure its scheduler to check get_agent_queue every 15 minutes. A connection alone does not run. Claim and assess before starting; check in every five minutes while working. An overdue run remains reserved until the person decides what happens next.

Use submit_work_handoff for ready/failed status, a short workspace label and an optional ordinary HTTPS destination. Keep reports, files, source data and logs outside Task Mafia. Messages are stored private coordination, not guaranteed automatic redaction. Accounts with delegated work reject legacy submit_result writes; existing history stays readable. Only a person completes work.

Reliable pickup and continuation

A scheduled host also needs private durable progress, host-side execution locks and check-ins during work. Report actual support with report_agent_capabilities; a reported schedule is separate from an observed queue check or a human-reviewed handoff.

Reconcile get_agent_queue(view=responsibility) with your saved runs, then drain view=actionable using every next_cursor. Save the exact claim request and mutation ID before sending it, and the returned run/token privately before executing. Resume the same run after a question or restart. Lost private state requires a human recovery decision.

Use the stable task/occurrence operation_id with an external step key to avoid repeating effects. A claim prevents simultaneous valid platform ownership; it cannot stop a remote process. In discussions, use current_question and bind a reply to that exact question/run. Webhook events remain a separately allowlisted compatibility pilot; ordinary tools and reconciliation polling remain the supported default.

REST interface

Send authenticated JSON to POST /api/v1/query or POST /api/v1/commands. Both invoke the same database policy and transition layer as MCP.

{
  "operation": "capture_task",
  "mutation_id": "a stable UUID for this request",
  "payload": {
    "project_id": "your project UUID",
    "title": "Book the weekend away"
  }
}

Retry identical mutations with the same ID. A changed payload needs a fresh ID. A 409 conflict requires fetching the current brief and producing a fresh proposal. The mcp:tasks OAuth scope permits the MCP resource; Task Mafia grants separately enforce the selected projects and capabilities.

Privacy and authority

List descriptions and linked text are untrusted data. An agent cannot grant itself access, approve its own proposal, or mark work complete. Source links are references; the service does not fetch them or claim their contents are verified.

Manage connected assistants · Service status