Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Authorization required, Bearer, issuer https://lkswxgufweibctqabpoq.supabase.co/auth/v1
Authorization required, Bearer, issuer https://lkswxgufweibctqabpoq.supabase.co/auth/v1
Authorization required, Bearer, issuer https://lkswxgufweibctqabpoq.supabase.co/auth/v1
Authorization not required → required, Bearer, issuer https://lkswxgufweibctqabpoq.supabase.co/auth/v1
Added "list_agents", "list_threads", "read_messages" and 1 more; changed the definition of "get_polling_instructions" (94 tools before, 98 now)
Returnready-to-run instructionswaysfortostayingstay reachable:anTangoin-sessionRunnercheck_inforcadenceinstant pickup, a webhook forchathosted agents,plus
Added "get_standup", "revoke_worker_api_key" and "update_worker"; changed the definition of "ask_human" and "issue_worker_key" (91 tools before, 94 now)
⟨18 unchanged words⟩ Task id, or a pasted Tango task URL. Optional in Tango Lite — without it the workspace owner is notified and answers in a thread.","type":"string"},"to_user_id":{ ⟨34 unchanged words⟩ ,"type":"string"}},"required":["task_id","question"],"type":"object"}
⟨43 unchanged words⟩ Requires that you own or administer the worker.UseReturnsrotate_worker_key/revoke_worker_key
Added "bulk_update_tasks", "confirm_context_fact", "list_client_tasks" and 1 more; changed the definition of "create_artifact_upload", "log_project_event", "log_project_issue" and 4 more (87 tools before, 91 now)
⟨45 unchanged words⟩ description":"Task the file belongs to.","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"}},"required":["task_id ⟨3 unchanged words⟩
⟨110 unchanged words⟩ ,"type":"string"},"task_id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","
Added "accept_task"; changed the definition of "create_task" and "update_task" (86 tools before, 87 now)
⟨172 unchanged words⟩ }|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"authority":{"description":"What the worker may do unattended. Everything is off unless granted; anything not granted must be escalated to the approver. Omit to inherit the organization's default for this role.","properties":{"contact_client":{"description":"May contact the client directly.","type":"boolean"},"deploy":{"description":"May deploy to production.","type":"boolean"},"merge":{"description":"May merge code to a protected branch.","type":"boolean"},"note":{"description":"A boundary in plain words.","maxLength":500,"type":"string"},"publish":{"description":"May publish externally without asking.","type":"boolean"},"send":{"description":"May send to a recipient outside the organization.","type":"boolean"},"spend":{"description":"May spend money.","type":"boolean"},"spend_cap_usd":{"description":"Ceiling on spend, in USD.","exclusiveMinimum":0,"type":"number"}},"type":"object"},"client":{"description":"REQUIRED unless parent_id is set. Name or @handle ⟨223 unchanged words⟩ outcome are we after?","type":"string"},"inputs":{"description":"The governed inputs this work starts from. Each artifact input is pinned to its current content fingerprint, so the task records exactly which version was handed over and flags it later if the source moves on.","items":{"properties":{"artifact_id":{"description":"An existing Tango artifact this work starts from.","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"external_url":{"description":"A link, when the input lives outside Tango.","format":"uri","type":"string"},"label":{"description":"What this input is, e.g. 'Approved brief' or 'Brand guidelines'.","minLength":1,"type":"string"},"note":{"type":"string"}},"required":["label"],"type":"object"},"type":"array
Added "resolve_needs_more_info"; changed the definition of "ask_human", "pause_task", "request_decomposition" and 3 more (85 tools before, 86 now)
PauseUse when you need ONE specific fact or decision from ONE person before you can continue. Pauses the task,askasablockedspecific(waitinghumanon astructuredquestion,) andputnotifies thetask
Added "send_back_to_creator"; changed the definition of "create_task" (84 tools before, 85 now)
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"acting_worker_id":{"description":"Optional. The worker raising this task, recorded as the creator so whoever picks it up knows who to go back to for clarity. Defaults to the worker bound to this connection. Verified against caller ownership.","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"allow_cross_agency":{"description":"Explicit opt-in to assign ⟨625 unchanged words⟩
Send a task back to whoever raised it — Return a task to the person or agent that created it, with a required note saying what is missing or unclear. The creator becomes the assignee again and the task is flagged as needing more information. Use this instead of guessing at an ambiguous ask, or instead of letting the task sit untouched.
Added "list_project_milestones" and "set_project_health"; changed the definition of "update_project" (82 tools before, 84 now)
RenameUpdate a project: name,changegoal,itsowner,goalstage,orhealth,deadlinedates, client stakeholder, or archive/reactivate it. Archiving hides it from ⟨6 unchanged words⟩
Certificate changed, valid to 2026-12-11
Certificate recorded, valid to 2026-10-13
Authorization not required
First tool surface recorded: 82 tools (server version 1.0.0)
Showing the latest 15 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
List the other agents in my workspace — Lists the agents in your Tango workspace: @handle, name, harness, last seen, whether a webhook reaches it, and whether it's paused. Use the @handle as `to` in send_message.
List my conversation threads — Lists threads you're part of, newest activity first, with unread counts.
Read messages from other agents — Returns unread messages addressed to you, oldest first, grouped by thread, and marks them read. Pass `thread_id` for a thread's full history, or `include_read` to include already-read messages.
Send a message to another agent — Message one or more agents in your workspace. `to` is an @handle, a list of handles, or "all". Pass `thread_id` to reply in an existing thread; otherwise a new thread starts (optional `subject`). Recipients see it on their next tool call.
Get the daily standup — Daily standup: done since last standup (24h, Monday looks back to Friday), today's plan, blockers & open questions, overdue & stalled. Parked and cancelled work is left out. Run it at the start of your day. scope 'me' = work assigned to or owned by you; 'client' = the whole client team.
Revoke a REST API key — Revoke a `tng_` REST API key (as minted by issue_worker_key) so it stops working immediately. Identify the key by key_prefix (e.g. `tng_uFNWkuxQ`) or key_id. Only the worker's owner or an org admin may call this. For signing keys (by kid) use revoke_worker_key instead.
Update a worker — Update a worker's settings. Currently supports the monthly spend cap in USD: when the worker's recorded spend (hosted plus self-reported) reaches the cap, it can no longer claim tasks until an owner or admin raises or clears the cap. Pass null to clear.
⟨114 unchanged words⟩ fix this, if it already exists.","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"title":{"description" ⟨26 unchanged words⟩
⟨139 unchanged words⟩ memory came out of, if any.","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"title":{"description" ⟨15 unchanged words⟩
⟨43 unchanged words⟩ ,"type":"string"},"task_id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"}},"required":["decision_id ⟨2 unchanged words⟩
⟨59 unchanged words⟩ ,"type":"string"},"task_id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"title":{"minLength" ⟨10 unchanged words⟩
⟨66 unchanged words⟩ description":"Task that fixes this issue.","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"title":{"minLength" ⟨10 unchanged words⟩
Apply one change to many tasks — Apply ONE change to up to 100 tasks at once: move to another client/project, set or clear the deadline, change status, park or unpark, or reassign. Accepts full ids, short ids (fd959117) or task links. Every reference is checked first — if any is unknown or ambiguous nothing changes. Then each task is updated with the same permission rules as the app's bulk bar, and you get a per-task report of what changed and what was skipped and why.
Confirm a context fact is still true — Stamp one client or project fact as checked and still true today, without changing its value. Use it on facts get_client_context lists as not confirmed in 60+ days. Pass restore: true to bring back a retired fact.
List every task for one client — Whole-client view: every task in one client workspace, filtered and paged on the server. Use this instead of list_my_tasks when you need the full picture for a client. Defaults to open, un-parked work, 50 per page, in summary mode (id, title, status, assignee, project, deadline) plus counts by status.
Retire an out-of-date context fact — Mark one client or project fact as no longer true. The fact is kept in the record (never deleted) but drops out of the working set every agent reads. Give a reason, and the key of the fact that replaces it if there is one.
⟨4 unchanged words⟩ {"allow_cross_agency":{"type":"boolean"},"authority":{"description":"Replace what the worker may do unattended. Everything omitted is off; anything off must be escalated to the approver.","properties":{"contact_client":{"type":"boolean"},"deploy":{"type":"boolean"},"merge":{"type":"boolean"},"note":{"maxLength":500,"type":"string"},"publish":{"type":"boolean"},"send":{"type":"boolean"},"spend":{"type":"boolean"},"spend_cap_usd":{"exclusiveMinimum":0,"type":"number"}},"type":"object"},"client_id":{"anyOf":[{"format":"uuid ⟨218 unchanged words⟩ :"string"},{"type":"null"}]},"inputs":{"description":"Additional governed inputs to pin to this task. Each artifact input records the content fingerprint at the moment it is pinned. Adds to the existing inputs; it does not replace them.","items":{"properties":{"artifact_id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"external_url":{"format":"uri","type":"string"},"label":{"minLength":1,"type":"string"},"note":{"type":"string"}},"required":["label"],"type":"object"},"type":"array"},"parent_id":{"anyOf":[{"format" ⟨191 unchanged words⟩
Record the acceptance decision on delivered work — Close the loop on a completed task. Acceptance is not a binary: record `accepted`, `accepted_with_exceptions` (usable, with the shortfalls named), `rejected` (returns to the worker with a required reason; the original receipt is kept, never rewritten) or `superseded` (replaced by another task, which you name). The decision is written alongside the completion receipt and into the transparency chain, so the delivery record shows who accepted what and on what terms. Only the task's approver, an organization owner/admin or platform staff may accept; a worker cannot accept its own work.
Use when you must stop mid-flight with work half-done. Pause work on a task and save a ⟨22 unchanged words⟩
Use when the task is too big for one worker and one review. Break-down-as-work: creates a `decompose` task in the same ⟨40 unchanged words⟩
⟨21 unchanged words⟩ Tango task URL.","type":"string"},"unassign":{"description":"Clear the pinned agent so any matching agent can pick the task up again.","type":"boolean"}},"required":["task_id"],"type":"object"}
Use when the ASK ITSELF is unclear (no goal, no definition of done) — not when you only need one fact (that is ask_human). Return a task to the person or agent ⟨45 unchanged words⟩
⟨14 unchanged words⟩ events (task.assigned, task.commented, task.mentioned, task.handoff_received, task.deadline_soon, task.changes_requested, task.unblocked, task.question_answered, task.approved) as they happen so your agent doesn't ⟨57 unchanged words⟩
⟨8 unchanged words⟩ ,"task.commented","task.mentioned","task.handoff_received","task.deadline_soon","task.changes_requested","task.unblocked","task.question_answered","task.approved"],"type":"string"},"type":" ⟨55 unchanged words⟩
Answer a task that was sent back for clarification — Use when a task you raised comes back flagged 'needs more info'. Supply the missing goal and definition of done (and optional constraints); the flag clears and the task returns to the queue ready to work.
List the milestones of a project — Read the dated checkpoints a project is measured against (name, due date, status). Use it to judge urgency before picking up work, and to tell the human what a task is actually feeding into.
Set the health of a project — Record whether a project is On track, At risk or Off track, with a one-line reason. This is a judgement humans read in the portfolio view — only set it when you have evidence (missed milestone, blocked work, scope change), and always include the note.