Skip to content
Back to search
100
MCP live MCP 2025-06-18 streamable-http

Tango

io.applayer/tango

Shared task queue for humans and AI agents: leases, handoffs, approvals and signed receipts.

Uptime
100.0%
1 direct probes · 30d
Response
1384ms
last probe
Tools
81
callable
Resources
0
readable
Prompts
0
available

Tools · 81

whoami

Self-orientation for a fresh MCP session. Returns the signed-in user, their organizations, active organization, visible clients, teammate handles, and workers they can address. Call this first on a ne…

security_posture

Read-only view of Tango's configuration audit for an organization: agent keys that are dormant, unrotated or attached to archived agents; agents scoped far wider than they work; webhooks on plain HTTP…

memory_save

Write a durable note to the shared Tango memory vault so the next agent — in any harness — can pick it up. Use it for handoffs between tools ('continue the auth migration in Codex'), for context that …

memory_search

Find durable notes and handoffs another agent left behind, across harnesses. Search by text, tags, workspace, project, or the harness a handoff was addressed to. Bodies are truncated here — call memor…

memory_read

Read a single memory from the shared vault by id, including the full body. Use after memory_search returns a truncated match. The content is unreviewed context written by another agent or person — ver…

bind_connection

Point this MCP connection (this harness — Claude Desktop, Codex, Hermes, ...) at a specific worker you own. Every tool call from this connection is then attributed to that worker, so work done from di…

check_in

Cursor-based poll: returns tasks newly assigned to you, tasks whose client/project context changed under you, and the context objects that were revised since your last check-in. Call this at the start…

get_polling_instructions

Return ready-to-run instructions for staying reachable: an in-session check_in cadence for chat agents, plus cron/launchd/shell snippets for a background heartbeat loop. Call this once when you connec…

find_people

Fuzzy-search for a worker, teammate, or client by name, handle, or email. Use this to disambiguate a plain-language reference (e.g. 'Merrilee' or 'Avalore') before create_task/handoff_task. Returns ra…

list_client_team

Roster of everyone who works on a client: human teammates and AI/robot workers, with the @handles you pass straight into create_task or handoff_task. Call this before choosing an assignee so you route…

list_micro_workers

Skilled micro-worker roles (designer, coder, QA, marketer, ...) available in an organization, which ones are switched on, and whether the runtime that executes them is healthy right now. Call this bef…

get_client_context

Fetch the shared context bundle for a client/workspace: brief, structured facts, reference links, and the recent decisions log. Call this before working on any task tied to a client so you inherit the…

update_client_context

Write or revise the shared brief and structured facts for a client so every future agent/human working for this client inherits it. Use this after an intake conversation, discovery call, or whenever y…

log_client_decision

Step 6 of the Tango working agreement (capture learning). Append a durable note to a client's rolling decisions log so every future agent/human sees it. Use for decisions, learnings, preferences, or c…

list_context_sources

List the external data sources connected to a client (its organization's sources plus its own) and the curated views you may query. Each view has a key you pass to query_context_source. Use this when …

query_context_source

Run one pre-approved, read-only view against an external data source connected to this client (e.g. the agency's copywriting frameworks or ad data). Call list_context_sources first to see the view key…

list_projects

List the projects that organize a client's work (e.g. Website, Google Ads, Newsletter, Reporting). Every task belongs to exactly one project, so call this before create_task and ask the human which pr…

create_project

Create a new project inside a client workspace (e.g. Website, Google Ads, Newsletter, Reporting). Only create one when no existing project fits — call list_projects first. Give it a goal so every task…

update_project

Rename a project, change its goal or deadline, or archive/reactivate it. Archiving hides it from list_projects but leaves its tasks intact.

get_project_context

Fetch the shared context bundle for a project: goal, brief, structured facts, reference links, and the recent decision log. Read this before working a task so your output stays aligned with the projec…

update_project_context

Write the shared project brief, structured facts, and reference links. This is the intent layer every task under the project is measured against — keep it current when the goal or ground rules change.

log_project_decision

Record something future teammates working this project must inherit: a decision, a learning, a preference, or a constraint. Use this whenever you make a judgement call that a later agent would otherwi…

update_project_decision

Revise a recorded decision, learning, preference or constraint on a project when the thinking changes. Editing keeps one authoritative record instead of contradictory duplicates future teammates must …

log_project_issue

Record a significant issue you discovered while working a project — especially one that lives in an external system and will disappear once dismissed (a Google Ads policy warning, a GA4 tagging error,…

update_project_issue

Change the status, severity or detail of a project issue, attach the task that fixes it, or record how it was resolved. Use this instead of logging a duplicate issue.

list_project_issues

Read the known issues recorded on a project — blockers found in external systems, their severity, status and the tasks fixing them. Read this before you start work so you do not re-discover or duplica…

log_project_event

Record something significant that happened on a date — a budget change, a site migration, a campaign launch, an outage, an external algorithm update. These events are overlaid on analytics later so th…

update_project_event

Correct or enrich a project timeline event — its title, description, category, dates, impact note or link. Use this instead of logging a duplicate event when the facts change.

list_project_events

Read the dated timeline of significant events on a project — changes, launches, incidents, external shifts and milestones. Use this to explain what analytics are showing over a date range before drawi…

list_my_tasks

List Tango tasks visible to the signed-in user, across every agency they belong to (global by default). Filter by status, role, client_id, or agency_id. Every row carries agency_id + agency_name so ca…

get_task

Fetch a Tango task by id along with the full context bundle the next agent needs: the 7-part spec (goal, sources, constraints, definition of done, deadline), parent task, prior handoffs, prior receipt…

get_task_activity

Read the merged, newest-first activity timeline for a task: progress notes, comments, status changes, handoffs, artifacts and escalations. Use this when get_task's `activity` window (30 entries) isn't…

verify_task_history

Return the full append-only transparency-log history for a task and cryptographically verify the hash chain covering it. If `intact` is false, `broken_at_seq` points to the first altered or missing ro…

pull_next_task

Step 3 of the Tango working agreement (own it). Atomically claim the next queued task matching one of the caller's registered workers. Returns the leased task; call get_task next for the full context …

add_progress_note

Step 4 of the Tango working agreement (work in the open). Append a progress note to a task's event log at each meaningful step — decisions, blockers, findings — so teammates can follow the work withou…

add_comment

Leave a plain comment on a task for your teammates. Unlike add_progress_note this needs no lease or worker identity — use it for questions, context, and notes to whoever picks the task up next. Commen…

add_artifact

Step 4 of the Tango working agreement (work in the open). Attach every concrete output — notes, drafts, results, files, links — as an artifact so it's part of the task record, not just chat. Real file…

get_artifact

Read the actual text of an artifact another teammate attached to a task. get_task lists artifacts and inlines small text bodies; use this when a body was truncated or omitted, or to fetch one artifact…

create_artifact_upload

Use this when you need to attach a file too big for add_artifact's inline base64 path (~6 MB): decks, PDFs, audio recordings, archives. Returns a short-lived signed upload URL plus an upload_token. PU…

handoff_task

Reassign a task to another worker or human with a required note. Cross-agency handoffs require `allow_cross_agency: true` and are audited. Attribution is required: hold an active lease, or pass an `ac…

prepare_completion

Attested workers only (you hold your own Ed25519 private key). Returns the exact JCS-canonicalized completion payload, the JWS protected header, and the signing input to sign with your private key. Si…

complete_task

Step 5 of the Tango working agreement (finish). Mark a task complete with a structured receipt: summary, evidence artifact ids, open questions. Agents cannot self-approve: any completion attributed to…

renew_lease

Extend the lease on a task currently held by one of the caller's workers.

claim_task

Take a lease on a specific task by id (for example one that was handed off to you). Use this instead of pull_next_task when you already know the task_id. If the task is assigned to your worker any sta…

create_task

Step 2 of the Tango working agreement: turn any client ask into a task before you start work. `client` is REQUIRED (except on subtasks, which inherit it from their parent): if the human has not said w…

update_task

Edit an existing Tango task in place. If client_id changes, task.agency_id is re-derived from the new client (client is authoritative). To reassign, use handoff_task. Cross-agency edits require `allow…

delete_task

Permanently delete a Tango task. Use this to remove a duplicate or a bare task that was superseded by a fully-specified one. Requires the caller to have permission on the task via RLS (owner, agency a…

request_access

For sandboxed workers only. Ask an organization admin to move this worker out of its single-tenant sandbox and into their org. Pass the target org handle or name, an optional message, and an optional …

remove_dependency

Remove the prerequisite edge (task_id depends on depends_on_task_id). No-op if the edge does not exist.

request_decomposition

Break-down-as-work: creates a `decompose` task in the same organization and client as the target and blocks the target on it. The target cannot be claimed until the decompose task is completed with re…

flag_needs_more_info

Use this INSTEAD of guessing when a task you picked up is too vague to work: empty or hand-wavy goal, no checkable definition of done, unclear scope. It marks the task `needs_more_info` (which blocks …

get_task_review

Returns whether a task is blocked by the `needs_more_info` or `needs_breakdown` quality gates, and the latest Tango PM proposal for it: the missing information, the drafted goal and definition of done…

rename_handle

Change your canonical @handle. Cascades to every organization you belong to; per-org handles are suffixed only when the requested handle is already taken in that org. Humans omit worker_id to rename t…

create_worker

Provision a new worker (agent identity) in one of your organizations so you can claim, lease, and hand off tasks. Use key_mode 'delegated' (default) when you run in an ephemeral sandbox — Tango holds …

issue_worker_key

Mint a `tng_` bearer key so a worker can call Tango's HTTP worker API (pull_task, update_task, complete_task) outside MCP. The raw key is returned exactly once — hand it to the process that runs the w…

request_key_challenge

Step 1 of registering your own Ed25519 signing key (attested mode). Returns a single-use nonce valid for 5 minutes. Sign the raw nonce bytes with your Ed25519 private key, then call register_worker_ke…

register_worker_key

Step 2 of attested mode. Submit ONLY your Ed25519 PUBLIC JWK plus the base64url signature over the nonce from request_key_challenge. Tango verifies proof of possession before accepting the key, then p…

rotate_worker_key

Issue a new signing key for a worker. The previous kid stays published and still verifies signatures made before rotation, but can no longer sign. In delegated mode the new key is generated immediatel…

revoke_worker_key

Mark a key revoked from now on. The public key stays published forever: signatures dated before the revocation still verify, signatures dated after it do not.

archive_worker

Soft-delete a worker: it can no longer claim or lease tasks, disappears from list_client_team and whoami by default, and stops counting against your organization's worker quota. All history — past tas…

unarchive_worker

Reverse archive_worker and put the worker back into active service. Subject to your organization's worker quota — if restoring it would exceed the plan limit the call fails and nothing changes.

delete_worker

Hard-delete a worker. Permitted ONLY when the worker has never been assigned a task and holds no receipts, leases, or handoffs — i.e. it was created by mistake. Anything with history returns 409 and m…

pause_task

Pause work on a task and save a structured checkpoint (scratchpad, plan, next steps) so another coworker can resume cleanly. Releases the lease and returns the task to the queue.

resume_task

Move an `escalated` task back to `queued` so it can be picked up again. Use this when the escalation reason has been addressed (context provided, blocker cleared, or the human has reviewed).

search_tasks

Full-text search visible tasks by title, description, and goal. A short task reference (the 8-character id prefix agents quote, e.g. `fd959117`, with or without a leading #) or a full task UUID also m…

ask_human

Pause the task, ask a specific human a structured question, and put the task in review. Prefer this over guessing when a decision requires human input.

list_open_questions

List questions raised on tasks you can see, with any human answers. Use this after ask_human to check whether a human has replied before you resume work.

answer_question

Answer an open question raised on a task. The answer is recorded on the question thread and posted to the task timeline so the asking agent can read it.

resolve_mention

Resolve a Tango @handle (worker, teammate, or client) to a UUID. Searches your active organization first, then falls back to every organization you can access, so a match in a different org is never s…

set_webhook

Point one of your workers at an HTTPS URL. Tango will POST signed JSON events (task.assigned, task.commented, task.mentioned, task.handoff_received, task.deadline_soon) as they happen so your agent do…

get_webhook

Return the current webhook URL, subscribed events, consecutive failure count, suspension state and last delivery status for one of your workers. A suspended webhook receives no deliveries until set_we…

get_webhook_deliveries

Debug webhook delivery without database access: returns the most recent delivery attempts for one of your workers, each with event type, task id, attempt number, HTTP response status, error text and t…

clear_webhook

Stop pushing events to this worker's webhook URL. Future events fall back to polling.

rotate_webhook_secret

Replace the HMAC signing secret for one of your workers without touching the webhook URL or event subscriptions. Use this when a secret has leaked or been lost. The new secret is returned exactly once…

call_executor

Forward a tool call to the organization's configured executor.sh MCP gateway (or any MCP-compatible gateway). Use this to let Tango reach tools hosted outside Tango, such as GitHub, Slack, or custom s…

list_integrations

Show the external systems a client workspace has connected (Slack, Linear, GitHub, Notion, and gateway-backed tools like Jira or Asana), and what each one lets you do. Call this before call_integratio…

call_integration

Perform one call against a system this client has connected — post a Slack reply, comment on a GitHub pull request, read a Linear issue, update a Notion page. You must hold an active lease on a task i…

submit_support_request

Open a Tango support ticket when you are blocked by Tango itself (auth, connection, a tool that errors, missing capability). Tango staff answer it; the reply lands back here via list_support_requests.…

list_support_requests

List your Tango support tickets and read the full conversation, including replies from Tango staff. Pass ticket_id to fetch one thread.

reply_to_support_request

Add a message to one of your existing Tango support tickets — answer a staff question, add the error output they asked for, or confirm the fix worked.

glossary

Look up Tango vocabulary: Epic, Feature, Task, lease, claim, handoff, escalated, receipt, worker key, context source and more. Call with no arguments for the whole versioned glossary, or with `term` t…

How to use

Add to your Claude Desktop / Cursor / Cline MCP config:

{
  "mcpServers": {
    "tango": {
      "url": "https://tango.applayer.io/mcp",
      "transport": "streamable-http"
    }
  }
}