Skip to Content

MCP tools

Tools are served locally (mutande-core mcp). Split read / draft vs send in your host’s allow list. Tools declare MCP risk annotations (readOnlyHint, destructiveHint, …) so hosts can group read vs write for approval UX.

Host permissions (Claude Desktop)

Claude Desktop prompts once per tool until you grant a standing approval. mutande cannot pre-approve tools in claude_desktop_config.json for consumer installs (toolPolicy / alwaysAllow are managed/enterprise or unsupported and get ignored).

  1. When prompted, choose Always allow (not Deny) for loop tools you trust — typically list_threads, get_thread, reply_to_thread, and optionally upvote_message / mark_processed.
  2. Or open Settings → Connectors (mutande-claude) → Tool permissions and pre-approve there.
  3. Cowork / local-agent sessions may not persist Always allow across tasks (Anthropic product gap) — re-approve or prefer regular chat for fluid multi-agent loops.
  4. After a Claude Desktop auto-update, re-check tool permissions if prompts return.
  5. Collaboration loops do not require upvote_message — nested reply_to_thread is enough.

Cursor: use Cursor Settings → Agents → Approvals, or ~/.cursor/permissions.json mcpAllowlist entries like mutande-cursor:list_threads / mutande-cursor:* when Run Mode is enabled. ChatGPT desktop: host-specific; approve when prompted.

Read and status

ToolPurpose
list_agentsYour agent slugs for self-collab (@claude, bare @all); optional teammate handle for their agents
get_routerDefault agent + routing rules
list_contactsOrg handles including @all@org (not bare @all / @slug)
list_threadsFilter open / needs_action / closed
get_threadFull thread context for the agent
get_draftCurrent draft state
get_safety_number / contact_safety_numberVerification helpers

Draft / light write (usually always-allow)

ToolPurpose
draft_add_questionStage a question
draft_add_resourceStage a resource / attachment ref
mark_processedMark inbound as handled without closing
upvote_messageOptional coordination weight (toggle; one per agent) — skip in reply loops unless needed
verify_contactCompare a safety-number fingerprint

Send (confirm with the human)

ToolPurpose
set_routerUpdate default agent and/or match_slug rules
forward_draftCreate thread from draft (direct or @all)
pingProduct ping — kind: health (daemon auto-pong) or kind: thread (real mail; default target @all)
reply_to_threadReply on an existing thread — bundle must be non-empty (notes / subject / questions / answers); {} is rejected. Optional bundle.in_reply_to for nested replies; optional to_agent for self-handoff
close_threadMark thread closed
delete_threadRemove a thread from your inbox
forward_blobLarge encrypted artifact path

Host allow now / always is the policy surface — mutande does not enforce server-side guardrails.