# How to connect Ambiguous MCP to Claude

```json
{
  "title": "How to connect Ambiguous MCP to Claude",
  "toolkit": "Ambiguous MCP",
  "toolkit_slug": "ambiguous_mcp",
  "framework": "Claude Cowork",
  "framework_slug": "claude-cowork",
  "url": "https://composio.dev/toolkits/ambiguous_mcp/framework/claude-cowork",
  "markdown_url": "https://composio.dev/toolkits/ambiguous_mcp/framework/claude-cowork.md",
  "updated_at": "2026-10-23T05:31:26.017Z"
}
```

## Introduction

Claude is Anthropic's AI assistant, available on the web, in the desktop app, and on mobile. Cowork is its agent for knowledge work, and it runs on all of those surfaces too. Connected to your apps, Claude can work with your files and services to accomplish complex tasks on your behalf.
This guide walks you through the easiest and most secure way to connect your Ambiguous account to Claude via Composio Connect, enabling it to list upcoming Ambiguous calendar events this week, create Ambiguous workspace task from email, search Ambiguous CRM contacts by company, and more such actions on your behalf without compromising your account security.
Setup is the same on Claude Web, Desktop, and Cowork, and you only need to do it once. The connector is tied to your account, so it's available in all three.

## Also integrate Ambiguous MCP with

- [ChatGPT](https://composio.dev/toolkits/ambiguous_mcp/framework/chatgpt)
- [Hermes](https://composio.dev/toolkits/ambiguous_mcp/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/ambiguous_mcp/framework/atomic-agent)

## Connect Ambiguous MCP to Claude Cowork

### Connecting Ambiguous to Claude Web, Desktop, and Cowork
Two ways to add the Composio connector. Pick whichever you prefer.
### 1. Add with one click
Click the button. Claude opens with the Composio connector filled in. Click Add, then go to step 2.
[Add to Claude](https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Composio&connectorUrl=https%3A%2F%2Fconnect.composio.dev%2Fmcp)
### Add manually
In Claude Desktop, click Customize in the left sidebar, then select Connectors and click the + icon at the top.
Click Add custom connector and paste in the Composio MCP server URL:

```bash
https://connect.composio.dev/mcp
```

## What is the Ambiguous MCP server, and what's possible with it?

The Ambiguous MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Ambiguous account. It provides structured and secure access to spreadsheets, CRM pipelines and deals, shared drives, presentations, analytics, and workspace administration, so your agent can update spreadsheet data, manage pipeline access and deal line items, review workspace analytics, and administer users and integrations on your behalf.
- Spreadsheet updates: Have your agent add tabs, columns, rows, and conditional formatting rules to your spreadsheets.
- CRM pipeline and deal work: Direct your agent to add or update pipeline members and add line items to deals.
- Workspace administration: Let the agent list, update, or disconnect integrations, manage invitations, suspend or unsuspend users, and update workspace notification defaults.
- Analytics and usage reporting: Instruct your agent to review saved dashboards and cohorts, inspect event catalog statistics, list annotations, and export workspace usage data.
- Files, presentations, and team access: Have your agent add members to shared drives, attach files to tasks, add slides to presentations, or add users to teams.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `AMBIGUOUS_MCP_ACK_MENTIONS_ACTIVITY` | Ack mentions activity | Acknowledge the Mentions & reactions inbox after it has been displayed. Marks the caller's unread chat mention notifications read and stamps users.mentions_acked_at, so the projector recomputes both chat.mentions and chat.reactions to 0 durably (the sidebar "Mentions & reactions" item un-bolds and stays cleared across re-fetch). Per-channel read cursors are untouched, so channel message unread counts are unaffected; a reaction that arrives after the ack re-bolds the item. |
| `AMBIGUOUS_MCP_ACK_THREAD_ACTIVITY` | Ack thread activity | Acknowledge readable Threads inbox activity on entry without advancing personal read cursors or clearing explicit manual unread intent. |
| `AMBIGUOUS_MCP_ADD_CONDITIONAL_FORMAT` | Add conditional format | Add a conditional formatting rule to a spreadsheet. Provide one of booleanRule, gradientRule, iconSetRule, or dataBarRule. The server generates a unique ID for the rule. |
| `AMBIGUOUS_MCP_ADD_CONNECTED_ELEMENT` | Add connected element | Extend a flow: place a new node beside an existing element and connect them in one call — the server computes the position unless you pass `drop_point`. Use this instead of create_canvas_element + a manual connector when building a flowchart, product map, or swimlane step-by-step. Give `source_element_id` and a `direction` (n/s/e/w); the new node lands one standard gap on that side and is nudged clear of any overlap, and a connector is created pre-attached from the source to it. For a drag-to-empty gesture, supply optional `drop_point: { x, y }` to center the new node at that board-space point instead of automatic placement. Provide `element` for the new node's type (connector/frame/swimlane not allowed here), or omit it to duplicate the source. Coordinates: board units, top-left origin, +x right / +y down. Example: add_connected_element({ id: "", source_element_id: "", direction: "e", element: { type: "shape", shape: "diamond" } }) → { element, connector }. |
| `AMBIGUOUS_MCP_ADD_DEAL_LINE_ITEM` | Add deal line item | Add a line item to a deal. Either reference an existing product (via product_id) or create a custom line by providing name and unit_price. The deal amount is auto-recalculated. |
| `AMBIGUOUS_MCP_ADD_FORWARDING_ADDRESS` | Add forwarding address | Add a forwarding address (sends verification email). |
| `AMBIGUOUS_MCP_ADD_PIPELINE_MEMBER` | Add pipeline member | Add (or update the role of) a user or team on a CRM pipeline. Provide either user_id or team_id, plus role (admin \| member). Admins/owners and pipeline admins can manage members. |
| `AMBIGUOUS_MCP_ADD_SHARED_DRIVE_MEMBER` | Add shared drive member | Add a member (manager-only). |
| `AMBIGUOUS_MCP_ADD_SHEET_COLUMN` | Add sheet column | Add a column to a sheet tab. |
| `AMBIGUOUS_MCP_ADD_SHEET_ROWS` | Add sheet rows | Append rows to a sheet tab. Each row is an object keyed by column ID. Example: [{"A": "Widget", "B": 9.99}]. |
| `AMBIGUOUS_MCP_ADD_SHEET_TAB` | Add sheet tab | Add a new tab to a sheet. Auto-generates the name if not provided. |
| `AMBIGUOUS_MCP_ADD_SLIDE` | Add slide | Add a new slide to an existing presentation. Provide the slide as a JSON object with layout, background, and elements. Each element has a type (text, image, shape, table, video, group), position (x, y), size (w, h), and type-specific properties. IMPORTANT: Create SEPARATE text elements for each visual block (title, each bullet point, each paragraph). Do NOT put multiple lines or bullet points in a single text element — create one element per line with proper positioning. Use bullet character '•' instead of markdown '*' or '-'. Set fontSize and fontWeight per element for visual hierarchy. If the user is currently viewing a presentation, use the presentation ID from the page context. |
| `AMBIGUOUS_MCP_ADD_TASK_ATTACHMENT` | Add task attachment | Attach a Drive file to a task. Idempotent — re-attaching the same file returns the existing row. Attaching makes the file readable by everyone who can read the task, so a file you do not own needs the share right on it (403 `file_attach_requires_share` when you can only view it). |
| `AMBIGUOUS_MCP_ADD_TEAM_MEMBER` | Add team member | Add a user to a team with an optional role (admin or member). Only team admins or workspace admins can add members. Default role is 'member'. Use this when the user asks to add someone to a team or distribution list. |
| `AMBIGUOUS_MCP_ADMIN_INTEGRATION_DELETE` | Admin integration delete | disconnect an integration |
| `AMBIGUOUS_MCP_ADMIN_INTEGRATIONS_LIST` | Admin integrations list | list all integrations for workspace |
| `AMBIGUOUS_MCP_ADMIN_INTEGRATIONS_SLACK_CHANNELS` | Admin integrations slack channels | list Slack channels via bot token |
| `AMBIGUOUS_MCP_ADMIN_INTEGRATION_UPDATE` | Admin integration update | update integration config |
| `AMBIGUOUS_MCP_ADMIN_INVITE_DELETE` | Admin invite delete | Revoke (cancel) a pending invite. Pending only — an accepted or expired invite is refused `409 invite_not_pending`; its row is history, not a live grant. |
| `AMBIGUOUS_MCP_ADMIN_INVITE_RESEND` | Admin invite resend | Resend invite email + refresh expiry. The email carries a freshly minted link, so every link sent before for this invite stops working. Pending invites only — an accepted or expired invite is refused `409 invite_not_pending`. |
| `AMBIGUOUS_MCP_ADMIN_INVITES_LIST` | Admin invites list | List pending, accepted, and expired workspace invites, pending first and then newest. Paginated; `pending_total` counts invites awaiting acceptance. Each row also carries `delivery` — what the provider said about the latest send of that invite email, so a bounced invite is distinguishable from an ignored one. |
| `AMBIGUOUS_MCP_ADMIN_MAIL_SUPPRESSION_CREATE` | Admin mail suppression create | manually add a suppression |
| `AMBIGUOUS_MCP_ADMIN_MAIL_SUPPRESSION_DELETE` | Admin mail suppression delete | remove a suppression |
| `AMBIGUOUS_MCP_ADMIN_MAIL_SUPPRESSIONS_LIST` | Admin mail suppressions list | list suppressed addresses |
| `AMBIGUOUS_MCP_ADMIN_NOTIFICATION_DEFAULTS_GET` | Admin notification defaults get | Read workspace-default email notification prefs. Returns sensible defaults (all enabled) when never configured. |
| `AMBIGUOUS_MCP_ADMIN_NOTIFICATION_DEFAULTS_UPDATE` | Admin notification defaults update | Partially update workspace-default email notification prefs. Emits settings.updated audit event. |
| `AMBIGUOUS_MCP_ADMIN_USAGE_EXPORT` | Admin usage export | Export usage stats as CSV |
| `AMBIGUOUS_MCP_ADMIN_USAGE_TIMESERIES` | Admin usage timeseries | Daily creation counts (last 14 days, split into "last 7" + "prior 7" windows) for the four hero metrics on the Overview tab. Returns `{users, documents, messages, emails}` each with `{buckets[7], total, previous_total}` so the UI can draw a sparkline + render a 7... |
| `AMBIGUOUS_MCP_ADMIN_USER_GET` | Admin user get | Get one workspace user's full admin record by id. |
| `AMBIGUOUS_MCP_ADMIN_USER_RESET_PASSWORD` | Admin user reset password | Create and email a one-hour password-reset link. On delivery failure, returns `sent: false` with `reset_url`. |
| `AMBIGUOUS_MCP_ADMIN_USER_SUSPEND` | Admin user suspend | Suspend a user account. Suspended accounts return 403 on all API calls. |
| `AMBIGUOUS_MCP_ADMIN_USER_UNSUSPEND` | Admin user unsuspend | Unsuspend a user account. Restores access to all API calls. |
| `AMBIGUOUS_MCP_ADMIN_WORKSPACE_LOGO_DELETE` | Admin workspace logo delete | Remove workspace logo (admin only) |
| `AMBIGUOUS_MCP_ANALYTICS_ANNOTATIONS_LIST` | Analytics annotations list | List a project's annotations, oldest date first: each is a date, an optional end date, a short text and its author, drawn on every time-series chart in the project. `from`/`to` keep only annotations overlapping that range. |
| `AMBIGUOUS_MCP_ANALYTICS_CATALOG_OVERRIDES_LIST` | Analytics catalog overrides list | List catalog metadata overrides for the workspace. |
| `AMBIGUOUS_MCP_ANALYTICS_CATALOG_STATS` | Analytics catalog stats | Per-event last_seen_at and 30-day volume for the workspace's tracked events. |
| `AMBIGUOUS_MCP_ANALYTICS_COHORTS_GET` | Analytics cohorts get | Read a saved cohort's name, stored criteria and member-count snapshot by ID, without recomputing its audience. Use analytics_cohorts_list to find cohort IDs. Requires a role on the report's project; `404` otherwise. |
| `AMBIGUOUS_MCP_ANALYTICS_COHORTS_LIST` | Analytics cohorts list | List saved cohort reports in the active workspace, including their definitions and stored member counts. Lists one Analytics project (`project_id`) and requires a role on it. |
| `AMBIGUOUS_MCP_ANALYTICS_DASHBOARDS_GET` | Analytics dashboards get | Read a saved analytics dashboard's name, stored query and tile layout by ID. Requires a role on the dashboard's project; unavailable dashboards return not found. Use analytics_dashboards_list to find accessible IDs. Requires a role on the report's project; `404` otherwise. |
| `AMBIGUOUS_MCP_ANALYTICS_DASHBOARDS_LIST` | Analytics dashboards list | List the saved analytics dashboards of one Analytics project (`project_id`), including their tile layouts. Everyone who can view the project sees every dashboard in it. Requires a role on the report's project; `404` otherwise. |
| `AMBIGUOUS_MCP_ANALYTICS_EVENTS_GET` | Analytics events get | Read one Analytics evidence event owned by the caller's source workspace. Foreign and missing IDs return 404. |
| `AMBIGUOUS_MCP_ANALYTICS_EVENTS_LIST` | Analytics events list | List source-owned Analytics evidence with bounded filters and stable pagination. Measured group IDs never grant access. |
| `AMBIGUOUS_MCP_ANALYTICS_FUNNELS_GET` | Analytics funnels get | Read a saved funnel report's name and stored conversion query definition by ID, without running the funnel. Use analytics_funnels_list to find report IDs. Requires a role on the report's project; `404` otherwise. |
| `AMBIGUOUS_MCP_ANALYTICS_FUNNELS_LIST` | Analytics funnels list | List saved funnel reports in the active workspace, including their names and conversion query definitions. Lists one Analytics project (`project_id`) and requires a role on it. |
| `AMBIGUOUS_MCP_ANALYTICS_INSIGHTS_GET` | Analytics insights get | Read a saved insights report's name and stored query definition by ID, without executing the query. Use analytics_insights_list to find report IDs. Requires a role on the report's project; `404` otherwise. |
| `AMBIGUOUS_MCP_ANALYTICS_INSIGHTS_LIST` | Analytics insights list | List saved insights reports in the active workspace, including their names and query definitions. Lists one Analytics project (`project_id`) and requires a role on it. |
| `AMBIGUOUS_MCP_ANALYTICS_METRIC_DEFINITIONS_LIST` | Analytics metric definitions list | List metric definitions visible in the named Analytics project, or its workspace default when omitted. management=true instead reads the workspace-wide admin catalog. Each definition includes its newest stored period. |
| `AMBIGUOUS_MCP_ANALYTICS_METRICS_UPSERT` | Analytics metrics upsert | Upsert external metric rows (ad spend, cloud spend, incident minutes) keyed by metric, grain, period and dimensions. A row replaces the live value only when its observed_at is newer; an older observation is kept in the restatement history and reported as stale. Requires workspace admin rank and the analytics.write scope; the public write key is refused. |
| `AMBIGUOUS_MCP_ANALYTICS_METRIC_VALUE` | Analytics metric value | Read one number from a saved insight or funnel over a window: the value, the same metric over the window before it, a sparkline and a link to the report. Embedded metrics on canvas, in chips and in sheets read through this. Example: report=insights:&from=today-28d&to=now. |
| `AMBIGUOUS_MCP_ANALYTICS_MV_METADATA` | Analytics mv metadata | Get materialized view name and last refresh time. |
| `AMBIGUOUS_MCP_ANALYTICS_PROJECTS_ACCESS_REQUEST_CREATE` | Analytics projects access request create | Ask the project's owners for access at viewer or editor. Must ask higher than the role held (`400 access_role_not_higher`); `409 access_request_open` while one is open; `404` for an unknown project. |
| `AMBIGUOUS_MCP_ANALYTICS_PROJECTS_ACCESS_REQUEST_CURRENT` | Analytics projects access request current | Return whether the caller has an open access request for the project. |
| `AMBIGUOUS_MCP_ANALYTICS_PROJECTS_ACCESS_REQUEST_DECIDE` | Analytics projects access request decide | Approve at viewer or editor, or decline, an open access request. Project owners only. Returns 409 once decided. |
| `AMBIGUOUS_MCP_ANALYTICS_PROJECTS_GET` | Analytics projects get | Read one Analytics project, its view and the caller's role. `404` when the caller holds no role on it. |
| `AMBIGUOUS_MCP_ANALYTICS_PROJECTS_LIST` | Analytics projects list | List the Analytics projects the caller holds a role on, each with its view and the caller's role. Workspace admins hold no implicit role: a private project an admin was not added to is not listed. |
| `AMBIGUOUS_MCP_ANALYTICS_PROJECTS_PERMISSIONS_LIST` | Analytics projects permissions list | List the project's members: users and teams with their roles. The Everyone team row is the workspace tier. |
| `AMBIGUOUS_MCP_ANALYTICS_QUERY_EXECUTE` | Analytics query execute | Execute an ad-hoc analytics query (events/insights/funnel/retention/cohort). Returns structured results over the project's view (the workspace default project when project_id is omitted). |
| `AMBIGUOUS_MCP_ANALYTICS_RESTRICTED_MARKS_LIST` | Analytics restricted marks list | List the workspace's restricted event names, trait keys and metric keys. Workspace admin only. |
| `AMBIGUOUS_MCP_ANALYTICS_RETENTIONS_GET` | Analytics retentions get | Read a saved retention report's name and stored query definition by ID, without computing retention. Use analytics_retentions_list to find report IDs. Requires a role on the report's project; `404` otherwise. |
| `AMBIGUOUS_MCP_ANALYTICS_RETENTIONS_LIST` | Analytics retentions list | List saved retention reports in the active workspace, including their names and query definitions. Lists one Analytics project (`project_id`) and requires a role on it. |
| `AMBIGUOUS_MCP_ANALYTICS_SETTINGS_GET` | Analytics settings get | Get the workspace's analytics settings — the timezone calendar windows such as today-7d and day/week/month buckets resolve in. |
| `AMBIGUOUS_MCP_ANALYTICS_USERS_AGGREGATES` | Analytics users aggregates | List analytics user profiles from the materialized view (faster at high volume, nightly refresh). Falls back to direct read when MV is unavailable. |
| `AMBIGUOUS_MCP_ANALYTICS_USERS_LIST` | Analytics users list | List analytics user profiles (paginated, searchable). Returns traits, first_seen, last_identified. |
| `AMBIGUOUS_MCP_ANALYTICS_USER_TIMELINE` | Analytics user timeline | Get a user's event timeline with session grouping (30-min inactivity split). Walks the alias graph (depth 5) to include all prior identities. |
| `AMBIGUOUS_MCP_ANALYTICS_WRITE_KEY_LIST` | Analytics write key list | List all writeKeys for the workspace (plaintext never returned on list). |
| `AMBIGUOUS_MCP_APPEND_SHEET_VALUES` | Append sheet values | Append rows of values to a sheet at the first empty row in a range. The server finds the insertion point — no need to read the last row first. Uses OVERWRITE semantics (does not shift existing data). |
| `AMBIGUOUS_MCP_APPLY_DEAL_TEMPLATE` | Apply deal template | Create a new deal from a saved deal template. The template provides default pipeline, stage, amount, probability, and line items. Use this when starting a deal that matches a known pattern (e.g., 'Standard Enterprise Plan'). |
| `AMBIGUOUS_MCP_APPLY_MASTER_TO_SLIDE` | Apply master to slide | Link a master slide to a specific slide by 0-based index. The slide stores a by-reference link, retains its existing elements as child-owned content, and clears prior master-element override markers. Current master elements inherit at render time and future master edits flow through automatically. |
| `AMBIGUOUS_MCP_APPLY_TASK_TEMPLATE` | Apply task template | Create a new task by applying a template's defaults. The template pre-fills status, priority, estimate, assignee, description, and labels. Override any field by passing it explicitly. Title is always required. |
| `AMBIGUOUS_MCP_APPLY_TRANSITION_TO_ALL` | Apply transition to all | Apply a slide transition to every slide in the deck. Set transition.type to 'none' to clear transitions on all slides. Prefer duration_s (float seconds, 0.1–10); legacy speed presets map to slow=1.0s, medium=0.5s, fast=0.3s. |
| `AMBIGUOUS_MCP_ARCHIVE_MAIL_THREAD` | Archive mail thread | Archive every inbox-folder message in a thread |
| `AMBIGUOUS_MCP_ASSET_GET_CONTENT` | Asset get content | An image inside a doc, sheet, slide deck, canvas board, wiki page or task description is an asset of that container, not a Drive file: it never appears in Drive, and it is readable exactly when its container is. Returns the image bytes when the caller can read the container — through the document's role, the wiki page's role or the task's access check, collaborators in other workspaces included. Bytes are proxied, never redirected, with `Cache-Control: no-store`; an active type such as SVG is served as a download. Every miss is the same 404. |
| `AMBIGUOUS_MCP_ASSIGN_ROLE` | Assign role | Assign a role to a user. Requires admin role. |
| `AMBIGUOUS_MCP_AUTH_WHOAMI` | Auth whoami | Return the current authenticated user's profile (works with both JWT and API-key auth), including active workspace name + ID and agent kind + manager when applicable. needs_workspace_setup: true indicates the account has no workspace yet. |
| `AMBIGUOUS_MCP_AUTOMATIONS_ENQUEUE` | Automations enqueue | Queue an enabled automation for background execution. Send a JSON object with an optional payload object containing the trigger data. Returns 202 Accepted with run_id, status and status_url; the Location response header points to GET /api/automations/runs/{run_id}. Poll with the same credential until success, failed, filtered, cancelled or depth_exceeded. The durable scheduler resumes queued work. Dry runs use /api/automations/{id}/test instead; _test_mode is rejected on this endpoint. |
| `AMBIGUOUS_MCP_BATCH_ARCHIVE_EMAILS` | Batch archive emails | Archive multiple emails in one atomic call. Moves all specified messages to the archive folder. Use this when the user wants to bulk-archive many emails (e.g., inbox-zero cleanup, archiving all messages from a sender). |
| `AMBIGUOUS_MCP_BATCH_CLEAR_SHEET_VALUES` | Batch clear sheet values | Clear all cell values in multiple ranges atomically. Sets cells to null without removing rows or columns. Useful for resetting template sheets or clearing data regions. |
| `AMBIGUOUS_MCP_BATCH_FILE_PERMISSIONS` | Batch file permissions | Batch-fetch permissions for up to 50 files by ID. Returns a map of file_id → permissions array. |
| `AMBIGUOUS_MCP_BATCH_GET_CONTACTS` | Batch get contacts | Fetch multiple CRM contacts by their IDs in a single request (max 100). Missing or inaccessible IDs are silently omitted from the result. |
| `AMBIGUOUS_MCP_BATCH_GET_DEALS` | Batch get deals | Fetch multiple CRM deals by their IDs in a single request (max 100). Missing or inaccessible IDs are silently omitted from the result. |
| `AMBIGUOUS_MCP_BATCH_GET_FILES` | Batch get files | Batch-fetch up to 50 files by ID. Powers drive:// embed hydration in Chat/Docs/Wiki/CRM. |
| `AMBIGUOUS_MCP_BATCH_GET_SHEET_VALUES` | Batch get sheet values | Fetch multiple disjoint ranges from a spreadsheet in a single request. Avoids N sequential round-trips when reading KPIs from different regions. |
| `AMBIGUOUS_MCP_BATCH_MODIFY_EMAILS` | Batch modify emails | Batch modify multiple emails in one atomic call. Can star/unstar, mark read/unread, add/remove labels, and change folder — all at once for up to 500 messages. Use this when the user wants to bulk-update many emails (e.g., star all from a sender, mark a batch as read, apply labels to multiple messages). |
| `AMBIGUOUS_MCP_BATCH_TRASH_EMAILS` | Batch trash emails | Trash multiple emails in one atomic call. Moves all specified messages to the trash folder. Use this when the user wants to bulk-trash many emails (e.g., spam cleanup, clearing a project mailbox). |
| `AMBIGUOUS_MCP_BLOCK_SENDER` | Block sender | Block a sender (address or domain). |
| `AMBIGUOUS_MCP_BOOK_EVENT_RESOURCES` | Book event resources | Book one or more resources (rooms, equipment) for an existing event. Returns a conflict error if a resource is already booked. |
| `AMBIGUOUS_MCP_BROWSE_PUBLIC_CHANNELS` | Browse public channels | Browse the workspace's public channels, including the ones the caller has not joined, each with a `joined` flag and member count. `list_channels` returns memberships only, so this is the only way to discover a public channel you are not in and get the id `chat_channel_join` needs. Private channels and DMs are never listed. Use this when the user asks what channels exist, or asks to join a channel by name. |
| `AMBIGUOUS_MCP_BULK_ARCHIVE_TASKS` | Bulk archive tasks | Archive up to 100 tasks at once. Only archives tasks the caller created or is assigned to. |
| `AMBIGUOUS_MCP_BULK_COPY_FILES` | Bulk copy files | Copy multiple files to a folder (max 100). The destination needs editor access (contributor in a shared drive); a folder the caller cannot see answers 404 like one that does not exist, and a visible one they cannot write to answers 403. A copy into a shared-drive folder belongs to that drive. |
| `AMBIGUOUS_MCP_BULK_DELETE_CONTACTS` | Bulk delete contacts | Delete many CRM contacts in a single operation. Returns counts of deleted/skipped/failed items. |
| `AMBIGUOUS_MCP_BULK_DELETE_DEALS` | Bulk delete deals | Delete many CRM deals at once by their ids. |
| `AMBIGUOUS_MCP_BULK_DELETE_MESSAGES` | Bulk delete messages | Soft-delete up to 100 messages in a channel. Deletes only the IDs the caller may delete (own messages, or any message when the caller is a channel admin); every other ID returns in `rejected`. Emits one bulk `message.deleted` event, never one per message. |
| `AMBIGUOUS_MCP_BULK_DELETE_TASKS` | Bulk delete tasks | Soft-delete multiple tasks at once by ID. Only deletes tasks the current user created. Max 100 task IDs per call. Subtasks cascade. Use `restore_task` to recover individually. |
| `AMBIGUOUS_MCP_BULK_EXPORT_CONTACTS` | Bulk export contacts | Export selected contacts as CSV or vCard. CSV includes core fields and custom properties; vCard preserves imported RFC 6350 properties and parameters. |
| `AMBIGUOUS_MCP_BULK_EXPORT_DEALS` | Bulk export deals | Export selected deals as CSV |
| `AMBIGUOUS_MCP_BULK_MOVE_FILES` | Bulk move files | Move multiple files to a folder (max 100). The destination needs editor access (contributor in a shared drive); a folder the caller cannot see answers 404 like one that does not exist, and a visible one they cannot write to answers 403. Per-file failures come back in `errors`: "File not found" for a file the caller cannot view, "Forbidden" for one they can view but not edit. An item whose sharing is restricted (editors can't share, on it or a folder above it) moves only with its owner. |
| `AMBIGUOUS_MCP_BULK_UPDATE_CONTACTS` | Bulk update contacts | Update many CRM contacts in a single operation. Useful for re-assigning ownership, updating lifecycle stage on a list of contacts, or reclassifying industry. Provide an array of contact IDs and the fields to apply to all of them. |
| `AMBIGUOUS_MCP_BULK_UPDATE_DEALS` | Bulk update deals | Update many CRM deals in a single operation. Useful for moving multiple deals to a new stage, reassigning ownership, or marking a batch of deals as won/lost. Provide an array of deal IDs and the fields to apply. |
| `AMBIGUOUS_MCP_BULK_UPDATE_TASKS` | Bulk update tasks | Update multiple tasks at once by ID. Only updates tasks the current user has access to (creator or assignee). Max 200 task IDs per call. Omit fields you do not want to change. Pass `null` to clear a nullable field (assignee_id, project_id, due_date, goal_id, task_status_id). |
| `AMBIGUOUS_MCP_CALENDAR_CONFLICTS` | Calendar conflicts | Detect attendee scheduling conflicts. |
| `AMBIGUOUS_MCP_CALENDAR_EVENT_EXPORT_ICS` | Calendar event export ics | Export single event as .ics. |
| `AMBIGUOUS_MCP_CALENDAR_EVENT_MEETING_NOTES_CREATE` | Calendar event meeting notes create | Create a meeting-notes doc for an event, or — when `document_id` is given — link that existing doc and grant attendees access. |
| `AMBIGUOUS_MCP_CALENDAR_EVENT_MEETING_NOTES_UNLINK` | Calendar event meeting notes unlink | Unlink meeting-notes doc. |
| `AMBIGUOUS_MCP_CALENDAR_EVENT_REMINDERS_CREATE` | Calendar event reminders create | Add a reminder to a calendar event. |
| `AMBIGUOUS_MCP_CALENDAR_EVENT_REMINDERS_LIST` | Calendar event reminders list | List event reminders. |
| `AMBIGUOUS_MCP_CALENDAR_EVENT_REMINDERS_SET` | Calendar event reminders set | Replace reminder list. |
| `AMBIGUOUS_MCP_CALENDAR_EVENT_UNBOOK_RESOURCES` | Calendar event unbook resources | Release every resource booked for a calendar event. |
| `AMBIGUOUS_MCP_CALENDAR_EXPORT_ICS` | Calendar export ics | Export entire calendar as .ics. |
| `AMBIGUOUS_MCP_CALENDAR_EXTERNAL_AUTH_URL` | Calendar external auth url | Start external provider OAuth. |
| `AMBIGUOUS_MCP_CALENDAR_EXTERNAL_CALENDARS_ENABLE_SYNC` | Calendar external calendars enable sync | Enable two-way sync. |
| `AMBIGUOUS_MCP_CALENDAR_EXTERNAL_CALENDARS_LIST` | Calendar external calendars list | List calendars on connection. |
| `AMBIGUOUS_MCP_CALENDAR_EXTERNAL_CONNECTION_DELETE` | Calendar external connection delete | Disconnect external account. |
| `AMBIGUOUS_MCP_CALENDAR_EXTERNAL_CONNECTIONS_LIST` | Calendar external connections list | List connected external accounts. |
| `AMBIGUOUS_MCP_CALENDAR_EXTERNAL_FORCE_SYNC` | Calendar external force sync | Schedule every mirror calendar on this connection for an immediate background pull. Poll the connection's `last_sync_at`; completion is any value at or after `requested_at`. |
| `AMBIGUOUS_MCP_CALENDAR_EXTERNAL_SYNCED_DISABLE` | Calendar external synced disable | Disable sync for one calendar. |
| `AMBIGUOUS_MCP_CALENDAR_IMPORT_ICS_URL` | Calendar import ics url | Import an .ics feed by URL. Fetches the URL server-side and imports its events into the calendar. |
| `AMBIGUOUS_MCP_CALENDAR_REMINDER_DELETE` | Calendar reminder delete | Delete one calendar event reminder by id. |
| `AMBIGUOUS_MCP_CALENDAR_RESOURCE_DELETE` | Calendar resource delete | Delete a bookable calendar resource by id. |
| `AMBIGUOUS_MCP_CALENDAR_RESOURCE_GET` | Calendar resource get | Get one bookable calendar resource by id. |
| `AMBIGUOUS_MCP_CALENDAR_RESOURCES_CREATE` | Calendar resources create | Create a bookable resource. |
| `AMBIGUOUS_MCP_CALENDAR_RESOURCE_UPDATE` | Calendar resource update | Update a bookable calendar resource's details. |
| `AMBIGUOUS_MCP_CALENDARS_CREATE` | Calendars create | Create a calendar in the current workspace. |
| `AMBIGUOUS_MCP_CALENDARS_DELETE` | Calendars delete | Delete a calendar and every event on it. |
| `AMBIGUOUS_MCP_CALENDARS_PERMISSIONS_GET` | Calendars permissions get | Get a single user's permission entry on a calendar, including their role, display name, and email. Useful for checking if a specific user has access without listing all permissions. |
| `AMBIGUOUS_MCP_CALENDARS_UPDATE` | Calendars update | Update calendar fields. |
| `AMBIGUOUS_MCP_CALENDAR_UPCOMING_REMINDERS` | Calendar upcoming reminders | Reminders due to fire within the next `window_hours` (default 24, max 168), soonest first. Each row carries the event it is about — title, span, status, location and calendar — so the caller renders the row without a second fetch. |
| `AMBIGUOUS_MCP_CANCEL_SCHEDULED_EMAIL` | Cancel scheduled email | Cancel a scheduled email |
| `AMBIGUOUS_MCP_CANCEL_SCHEDULED_MESSAGE` | Cancel scheduled message | Cancel a pending scheduled message so it's never sent. Use this when the user says 'never mind' or changes their plan before the scheduled time. |
| `AMBIGUOUS_MCP_CANCEL_SCHEDULER_BOOKING` | Cancel scheduler booking | Cancel a booking as its host. The booked event is cancelled and the booker is always emailed the cancellation, with the optional message. |
| `AMBIGUOUS_MCP_CHANGE_COWORKER_MANAGER` | Change coworker manager | Reassign the accountable human (manager) for a coworker. Admin-only — the current manager cannot reassign themselves out. Changing manager revokes the coworker's existing API keys and realtime sessions; the new manager must reconnect it. An unchanged manager keeps keys. |
| `AMBIGUOUS_MCP_CHAT_CHANNEL_CREATE` | Chat channel create | Create a chat channel in the workspace. |
| `AMBIGUOUS_MCP_CHAT_CHANNEL_DELETE` | Chat channel delete | Delete a chat channel and its messages. |
| `AMBIGUOUS_MCP_CHAT_CHANNEL_GET` | Chat channel get | Get a specific channel by UUID, with members. |
| `AMBIGUOUS_MCP_CHAT_CHANNEL_GROUP_REMOVE` | Chat channel group remove | Remove a group from channel (clean up fan-out rows) |
| `AMBIGUOUS_MCP_CHAT_CHANNEL_JOIN` | Chat channel join | Self-join a public channel (no body required) |
| `AMBIGUOUS_MCP_CHAT_CHANNEL_LAST_MESSAGES` | Chat channel last messages | Batch-fetch the latest message preview for multiple channels in one request. Pass `ids` as a comma-separated list of channel IDs (max 100). Returns one entry per channel the caller can read, each carrying its `channel_id`. Replaces per-channel `GET /messages?limit=1` calls so a DMs/channels list renders previews without an N+1 request fan-out. |
| `AMBIGUOUS_MCP_CHAT_CHANNEL_LEAVE` | Chat channel leave | Leave a chat channel you belong to. |
| `AMBIGUOUS_MCP_CHAT_CHANNEL_MEMBER_REMOVE` | Chat channel member remove | Remove a member from a chat channel. |
| `AMBIGUOUS_MCP_CHAT_CHANNEL_MEMBERS_ADD` | Chat channel members add | Add member(s) or a group |
| `AMBIGUOUS_MCP_CHAT_CHANNEL_NOTIFICATION_PREFERENCE` | Chat channel notification preference | Choose your channel notification preference, not mute/unmute; use set_channel_muted for that. unread_only (default) surfaces unread activity; all_messages also notifies on unmuted messages. mentions_only shows mention badges; nothing hides channel unread/badge indicators and suppresses keyword and subscribed-thread alerts. Direct mention and broadcast notification delivery remains separate. This does not change the mute indicator or expiry. Per-user; other members are unchanged. |
| `AMBIGUOUS_MCP_CHAT_CHANNEL_NOTIFICATION_PREFS` | Chat channel notification prefs | Update the caller's per-channel notification preferences (unread_display: count \| dot \| since_visit). |
| `AMBIGUOUS_MCP_CHAT_CHANNEL_UPDATE` | Chat channel update | Update a chat channel's name, topic or settings. |
| `AMBIGUOUS_MCP_CHAT_DRAFT_CREATE_SAVED` | Chat draft create saved | Create a saved (named) draft for the caller. |
| `AMBIGUOUS_MCP_CHAT_DRAFT_DELETE` | Chat draft delete | Delete a draft owned by the caller. |
| `AMBIGUOUS_MCP_CHAT_DRAFTS_LIST` | Chat drafts list | The caller's chat drafts (inflight + saved), newest first. |
| `AMBIGUOUS_MCP_CHAT_DRAFT_UPDATE` | Chat draft update | Update a saved draft owned by the caller. |
| `AMBIGUOUS_MCP_CHAT_EMOJI_IMAGE` | Chat emoji image | Serve custom emoji image from GCS |
| `AMBIGUOUS_MCP_CHAT_MENTIONS_INBOX` | Chat mentions inbox | Messages from other users that @-mention the caller. Powers the Mentions tab. |
| `AMBIGUOUS_MCP_CHAT_MESSAGE_DELETE` | Chat message delete | Delete one message from a chat channel. |
| `AMBIGUOUS_MCP_CHAT_MESSAGE_UPDATE` | Chat message update | Edit message or pin/unpin |
| `AMBIGUOUS_MCP_CHAT_PREFERENCES` | Chat preferences | Workspace-level chat preferences readable by any authenticated member (default_reactions). |
| `AMBIGUOUS_MCP_CHAT_REACTIONS_INBOX` | Chat reactions inbox | Messages authored by the caller that carry reactions from other users. Powers the Mentions & Reactions inbox. |
| `AMBIGUOUS_MCP_CHAT_SAVED_IDS_LIST` | Chat saved ids list | Get saved message IDs for a channel (for UI bookmarked state) |
| `AMBIGUOUS_MCP_CHAT_SIDEBAR_CREATE_SECTION` | Chat sidebar create section | Create a custom chat-sidebar section for the caller. |
| `AMBIGUOUS_MCP_CHAT_SIDEBAR_DELETE_SECTION` | Chat sidebar delete section | Delete a chat-sidebar section owned by the caller. |
| `AMBIGUOUS_MCP_CHAT_SIDEBAR_LIST_SECTIONS` | Chat sidebar list sections | The caller's custom chat-sidebar sections, ordered by position. |
| `AMBIGUOUS_MCP_CHAT_SIDEBAR_REORDER_SECTIONS` | Chat sidebar reorder sections | Reorder the caller's chat-sidebar sections. |
| `AMBIGUOUS_MCP_CHAT_SIDEBAR_UPDATE_SECTION` | Chat sidebar update section | Rename a chat-sidebar section or set its channels. |
| `AMBIGUOUS_MCP_CHAT_THREAD_ACTIVITY_LIST` | Chat thread activity list | List thread-activity inbox for the current user. Powers the sidebar "Threads" inbox entry. Returns readable threads the user participates in or explicitly marked unread, with peer-only unread counts and own-inclusive unread anchors. |
| `AMBIGUOUS_MCP_CHAT_THREAD_GET` | Chat thread get | Get the replies in a chat message's thread. |
| `AMBIGUOUS_MCP_CHECK_AVAILABILITY` | Check availability | Check free/busy availability for one or more users in a given time range. Returns busy time slots (not event details) for each user. Use this when the user asks to find a free time, check if someone is available, or schedule a meeting. Call this before create_event to avoid scheduling conflicts. |
| `AMBIGUOUS_MCP_CHECK_RESOURCE_AVAILABILITY` | Check resource availability | Check if a specific resource (room, equipment) is free in a time range. Call before booking to avoid conflicts. |
| `AMBIGUOUS_MCP_CHECK_WORKSPACE_SLUG` | Check workspace slug | Check whether a workspace slug is available. |
| `AMBIGUOUS_MCP_CLAIM_DOCUMENT` | Claim document | Make an unclaimed document yours. A document, spreadsheet, presentation or board created without an account returns a single-use `claim_key`; call this with it after signing in and the document moves into your active workspace with you as owner, keeping its id and URL. Its link drops to view-only, which you can raise again. A second claim of the same document, or a wrong key, is refused with 409 `claim_rejected`, which does not say which. |
| `AMBIGUOUS_MCP_CLEAR_CALENDAR` | Clear calendar | Delete ALL events from a calendar. Owner-only — use for resetting shared calendars at quarter boundaries or wiping test data. Returns the count of deleted events. This is irreversible. |
| `AMBIGUOUS_MCP_CLEAR_REMINDER` | Clear reminder | Clear a pending reminder on a saved message. The message stays saved; only the reminder is removed. |
| `AMBIGUOUS_MCP_CLEAR_SHEET_VALIDATION` | Clear sheet validation | Remove a data validation rule from a spreadsheet by range. The range is matched after normalization (sheet tab defaults to Sheet1 if not specified). Returns 404 if no rule exists for that range. |
| `AMBIGUOUS_MCP_CLEAR_USER_STATUS` | Clear user status | Clear the current user's status (emoji + text + expiresAt). Does NOT change DND — use set_user_dnd with until=null to clear DND separately. |
| `AMBIGUOUS_MCP_CODE_COMMENT_UPDATE` | Code comment update | Edit or delete an owned comment; maintainers may delete published comments. Concurrent edits require the last observed body. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`. |
| `AMBIGUOUS_MCP_CODE_CONNECTIONS_LIST` | Code connections list | List repositories offered by the workspace GitHub installation. Workspace administrators only. |
| `AMBIGUOUS_MCP_CODE_PULL_AUTO_MERGE` | Code pull auto merge | Enable or cancel durable Code auto-merge using the PR review policy and GitHub checks. Requires merge authority and the last read version. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`. |
| `AMBIGUOUS_MCP_CODE_PULL_CHANGES_SINCE_REVIEW` | Code pull changes since review | Compare the caller's last reviewed head with the current head. Historical or truncated source is explicitly reported. |
| `AMBIGUOUS_MCP_CODE_PULL_COMMENT` | Code pull comment | Start a discussion or reply to a thread. Inline comments retain their original revision and source excerpt. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`. |
| `AMBIGUOUS_MCP_CODE_PULL_COMMIT` | Code pull commit | Read the diff for one commit in this pull request. |
| `AMBIGUOUS_MCP_CODE_PULL_CREATE` | Code pull create | Create or adopt a GitHub pull request with an accountable Ambiguous author. An omitted base uses the repository's default target branch. Retries use the same idempotency key. autoMerge arms auto-merge on the new pull request in the same call, so it needs no version and cannot race the first check update; it requires merge authority on the repository and is ignored when the key or number returns an existing Code pull request. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`. |
| `AMBIGUOUS_MCP_CODE_PULL_EXPORT` | Code pull export | Export the complete review record with original anchors and attribution as versioned JSON or Markdown. |
| `AMBIGUOUS_MCP_CODE_PULL_GET` | Code pull get | Read a native review, its revision, discussion, checks and merge blockers. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`. |
| `AMBIGUOUS_MCP_CODE_PULL_MERGE` | Code pull merge | Merge the confirmed pull request version into its existing target after fresh revision, authorization, review-policy and GitHub checks. No target branch is accepted. The provider confirms the outcome; uncertain requests remain pending. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`. |
| `AMBIGUOUS_MCP_CODE_PULL_REFRESH` | Code pull refresh | Reconcile with current GitHub state. Never interprets an older webhook as current source truth. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`. |
| `AMBIGUOUS_MCP_CODE_PULL_REVIEW` | Code pull review | Submit a review for the specified comparison as an authenticated user or agent with repository review permission. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`. |
| `AMBIGUOUS_MCP_CODE_PULLS_LIST` | Code pulls list | Permission-filtered pull request inbox. |
| `AMBIGUOUS_MCP_CODE_PULL_UPDATE` | Code pull update | Edit metadata, assign reviewers, follow, close, reopen or mark ready. Requires the last read version. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`. |
| `AMBIGUOUS_MCP_CODE_REPOSITORIES_LIST` | Code repositories list | List repositories the caller can read, with their Code role. |
| `AMBIGUOUS_MCP_CODE_REPOSITORY_COMPARE` | Code repository compare | Compare two repository refs before opening a pull request. |
| `AMBIGUOUS_MCP_CODE_REPOSITORY_CONNECT` | Code repository connect | Connect a repository from this workspace's existing GitHub installation. Workspace admin only; grants the connector repository ownership. |
| `AMBIGUOUS_MCP_CODE_REPOSITORY_GRANT` | Code repository grant | Grant or revoke a workspace user or team. Null role revokes. Repository owner only. |
| `AMBIGUOUS_MCP_CODE_REPOSITORY_GRANTS` | Code repository grants | Read repository access grants. Repository owner only. |
| `AMBIGUOUS_MCP_CODE_REPOSITORY_METADATA` | Code repository metadata | Read the repository labels and milestones available for pull requests. |
| `AMBIGUOUS_MCP_CODE_REPOSITORY_PRINCIPALS` | Code repository principals | List workspace users and teams available for an explicit repository grant. Repository owner only. |
| `AMBIGUOUS_MCP_CODE_REPOSITORY_REVIEWERS` | Code repository reviewers | List currently eligible Ambiguous reviewers, including agents. |
| `AMBIGUOUS_MCP_CODE_REPOSITORY_UPDATE` | Code repository update | Update the default target branch, review policy or connection. A null target resets to GitHub's default branch. Repository owner only. |
| `AMBIGUOUS_MCP_CODE_REVIEW_DISMISS` | Code review dismiss | Dismiss a blocking review with an auditable reason. Maintainer only. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`. |
| `AMBIGUOUS_MCP_CODE_REVIEW_RESOLVE` | Code review resolve | Resolve or reopen a review without changing its verdict. The PR author or maintainer may resolve another reviewer's feedback. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`. |
| `AMBIGUOUS_MCP_COMPUTE_PIVOT_TABLE` | Compute pivot table | Compute the result of a persisted pivot table — applies row/column grouping, value aggregation, sort orders, and any matching slicer filters, and returns the rendered cells. The pivot config itself (row/column/value fields, source range) is not modified. |
| `AMBIGUOUS_MCP_COMPUTE_WIKI_ROLLUPS` | Compute wiki rollups | Compute and return rollup values for all rows in the database. Each rollup aggregates a property across related rows. |
| `AMBIGUOUS_MCP_COPY_SHEET_TO` | Copy sheet to | Copy a sheet tab from one spreadsheet to another. Deep-copies columns, rows, formulas, formatting, and merges. Cross-document formulas will show as #REF!. Requires viewer access on source and editor access on destination. |
| `AMBIGUOUS_MCP_COWORKERS_CONVERSATION_GET` | Coworkers conversation get | Proxy (workspace-isolated): get a single conversation thread. |
| `AMBIGUOUS_MCP_COWORKERS_CONVERSATIONS_LIST` | Coworkers conversations list | Proxy (workspace-isolated): list conversations for the coworker in the active workspace. |
| `AMBIGUOUS_MCP_COWORKERS_EXECUTION_CANCEL` | Coworkers execution cancel | Kill switch: cancel an in-flight execution. Flips an active (PENDING/RUNNING/PAUSED) coworker_executions row to CANCELLED; the coworker's execution loop aborts at its next action-call boundary. Idempotent no-op on an already-terminal execution. |
| `AMBIGUOUS_MCP_COWORKERS_EXECUTION_GET` | Coworkers execution get | Get one execution with full trace data — task row, parent/children lineage, conversation, reasoning cycles, and tool-call activities. Powers the Execution Trace debug view. |
| `AMBIGUOUS_MCP_COWORKERS_EXECUTIONS_LIST` | Coworkers executions list | Proxy: list coworker execution history (paginated). |
| `AMBIGUOUS_MCP_COWORKERS_MONITORED_CHANNELS_ADD` | Coworkers monitored channels add | Proxy (workspace-isolated): start monitoring a channel. |
| `AMBIGUOUS_MCP_COWORKERS_MONITORED_CHANNELS_LIST` | Coworkers monitored channels list | Proxy (workspace-isolated): list channels the coworker is monitoring. |
| `AMBIGUOUS_MCP_COWORKERS_MONITORED_CHANNELS_REMOVE` | Coworkers monitored channels remove | Proxy (workspace-isolated): stop monitoring a channel. |
| `AMBIGUOUS_MCP_COWORKERS_PLAYBOOKS_ARCHIVE` | Coworkers playbooks archive | Archive a playbook. Archived playbooks are hidden from lists and cannot be selected during dispatch, but remain linked to historical executions for audit. |
| `AMBIGUOUS_MCP_COWORKERS_PLAYBOOKS_CREATE` | Coworkers playbooks create | Create a playbook and its initial version. `instructions` and `subtasks` seed version 1, which becomes the current version. |
| `AMBIGUOUS_MCP_COWORKERS_PLAYBOOKS_DELETE` | Coworkers playbooks delete | Delete a playbook and its versions. Returns 409 if any coworker_executions still reference the playbook — use the archive endpoint to retire it instead. |
| `AMBIGUOUS_MCP_COWORKERS_PLAYBOOKS_GET` | Coworkers playbooks get | Get one playbook with its current version's instructions and subtasks. |
| `AMBIGUOUS_MCP_COWORKERS_PLAYBOOKS_LIST` | Coworkers playbooks list | List the coworker's playbooks (metadata + current version pointer). |
| `AMBIGUOUS_MCP_COWORKERS_PLAYBOOKS_UPDATE` | Coworkers playbooks update | Edit playbook metadata in place (title, objective). Instructions and subtasks are immutable — create a new version instead. |
| `AMBIGUOUS_MCP_COWORKERS_PLAYBOOK_VERSIONS_CREATE` | Coworkers playbook versions create | Append a new version. Auto-increments the version number and marks the new version current. Prior versions stay readable for audit. |
| `AMBIGUOUS_MCP_COWORKERS_PLAYBOOK_VERSIONS_GET` | Coworkers playbook versions get | Get one historical version's instructions and subtasks. |
| `AMBIGUOUS_MCP_COWORKERS_PLAYBOOK_VERSIONS_LIST` | Coworkers playbook versions list | List all versions of a playbook, newest first. |
| `AMBIGUOUS_MCP_COWORKERS_ROTATE_TOKEN` | Coworkers rotate token | Rotate the management token used to talk to the coworker service. |
| `AMBIGUOUS_MCP_CREATE_CANVAS` | Create canvas | Create a new (empty) canvas — a Miro-style infinite whiteboard. Use when starting a fresh flowchart, product map, or swimlane flow; returns the canvas envelope with an empty `data.elements`, then add objects with create_canvas_element. Coordinates: board units, top-left origin, +x right / +y down. Example: create_canvas({ title: "Q1 product map" }) → { id: "", data: { elements: [] } }. |
| `AMBIGUOUS_MCP_CREATE_CANVAS_ELEMENT` | Create canvas element | Add one element to a board — a sticky, text, shape, image, codeBlock, frame, swimlane, connector, or metric. Use when placing a new object; to attach a connector so it re-routes when shapes move, set each endpoint to an existing element id with an anchor (n/s/e/w) — free-form points stay fixed and never follow a move, so use them only for unattached lines. Provide `type` and geometry; the server mints the element id and returns it, and every other element on the board is untouched. Fields are flat, never nested under `element`, and `id` is the board. Send only the fields of that type: sticky and text take `content`; shape takes `shape` and `content`; image takes `src`; codeBlock takes `code` and `language`; frame takes `name` and an optional `metricWindow`; metric takes `report` (insights: or funnels:, a saved analytics report), optional `step`, `title` and `window` ({ from, to } like today-28d / now) and renders that report's live value; connector takes `from` and `to` as `{ element, anchor }` or `{ point: { x, y } }`, with `x`,`y`,`w`,`h` all 0. Coordinates: board units, top-left origin, +x right / +y down — pass `x`,`y` (the element's top-left corner) with `w`,`h`. Example: create_canvas_element({ id: "", type: "sticky", x: 100, y: 80, w: 160, h: 120, content: "Idea" }). |
| `AMBIGUOUS_MCP_CREATE_CHART` | Create chart | Embed a chart on a tab of the sheet. Charts visualize a rectangular data range — pick a chart type (bar / line / pie / scatter), the source range, and an overlay position. Returns the created chart with its server-assigned id. |
| `AMBIGUOUS_MCP_CREATE_CONTACT` | Create contact | Create a new CRM contact (person or company). Persons can be linked to a company via company_id. IMPORTANT: Before creating a contact, ALWAYS call list_contacts with a search query (q) to check if a contact with the same name or email already exists. If a matching contact is found, use update_contact instead of creating a duplicate. Only create a new contact if no match is found. Use this when the user asks to add a contact, log a lead, or create a company record. |
| `AMBIGUOUS_MCP_CREATE_CONTACT_GROUP` | Create contact group | Create a named contact group for organizing contacts. Groups allow overlapping membership — a contact can be in multiple groups. |
| `AMBIGUOUS_MCP_CREATE_CRM_PROPERTY_DEFINITION` | Create crm property definition | Define a typed custom property for contacts or deals. field_type 'relation' (with relation_target contact\|company\|deal) makes the property a link to another record: values written to custom_properties under this key must be the id of an existing record of the target type. |
| `AMBIGUOUS_MCP_CREATE_CRM_VIEW` | Create crm view | Create a saved CRM view: a named filter+sort preset for contacts, companies, or deals. Useful when the user asks to 'save this filter' or 'create a view for high-value deals'. |
| `AMBIGUOUS_MCP_CREATE_DATA_CONNECTOR` | Create data connector | Create a new data connector that fetches data into specific cells of a sheet. After creating, call run_data_connector to execute it. |
| `AMBIGUOUS_MCP_CREATE_DEAL` | Create deal | Create a new CRM deal (revenue opportunity). Deals belong to a pipeline and sit in a specific stage. Link to a contact and/or company. Use this when the user asks to create a deal, log an opportunity, or start tracking a sale. |
| `AMBIGUOUS_MCP_CREATE_DEAL_TEMPLATE` | Create deal template | Create a deal template — a reusable preset for creating deals with standard pipeline/stage/amount and line items. Use when the user has a repeatable sale like 'Standard Enterprise Plan'. |
| `AMBIGUOUS_MCP_CREATE_DOC` | Create doc | Create a new doc. `content` is Markdown (recommended) or a ProseMirror JSON string. Returns the created document; read, update, share and trash it through the `/api/documents/{id}` operations. For a spreadsheet use `create_sheet`, for a deck `create_presentation`, for a whiteboard `create_canvas`. |
| `AMBIGUOUS_MCP_CREATE_DRAFT_EMAIL` | Create draft email | Create a draft email without sending it. The draft is saved in the drafts folder for later review, editing, or sending. Use this when the user wants to compose an email for later, save a draft, or prepare a message without sending it immediately. |
| `AMBIGUOUS_MCP_CREATE_EVENT` | Create event | Create a new calendar event. Requires a title, start time, and end time. Optionally add a description, location, attendees, recurrence, and more. Use this when the user asks to schedule a meeting, add an event, or book time. If the user doesn't specify a calendar, use list_calendars to find their default calendar ID first. |
| `AMBIGUOUS_MCP_CREATE_FOLDER` | Create folder | Create a new folder in Drive. Returns the created folder with id, name, and path. Use this when the user asks to create, make, or add a new folder for organizing files. Supports nested folders via parent_folder_id. |
| `AMBIGUOUS_MCP_CREATE_FORM` | Create form | Create a new form for collecting data (surveys, feedback, registrations, quizzes). Returns the created form with id and public slug. Use this when the user asks to create a survey, questionnaire, feedback form, registration form, or any structured data collection. Define fields with types, labels, validation, and optional conditional logic. |
| `AMBIGUOUS_MCP_CREATE_FORM_VARIANT` | Create form variant | Create a new A/B test variant by duplicating the parent form. Optionally override fields to change question wording, field types, options, or validation. Traffic weight (0–100) controls the percentage of visitors who see this variant versus the control. Use when the user asks to set up an A/B test or add a variant. |
| `AMBIGUOUS_MCP_CREATE_MAIL_LABEL` | Create mail label | Create a mail label for organizing threads. |
| `AMBIGUOUS_MCP_CREATE_MAIL_RULE` | Create mail rule | Create a mail rule that acts on matching messages. |
| `AMBIGUOUS_MCP_CREATE_MAIL_TEMPLATE` | Create mail template | Create a reusable mail template for composing. |
| `AMBIGUOUS_MCP_CREATE_NAMED_RANGE` | Create named range | Create a named range or named expression on a spreadsheet. Send either an A1 range or an exact literal Excel expression, such as a structured table reference. External-workbook expressions are preserved verbatim and remain unresolved. |
| `AMBIGUOUS_MCP_CREATE_PIPELINE` | Create pipeline | Create a new CRM pipeline with ordered stages. Each stage has a name and an optional default probability (0-100). Most workspaces need only one pipeline; create additional ones for distinct sales processes (e.g., 'New Business' vs 'Renewals'). |
| `AMBIGUOUS_MCP_CREATE_PIVOT_TABLE` | Create pivot table | Create a pivot table from sheet data. A new sheet tab is automatically created to hold the pivot. Specify the source data range, which columns to group by (rows/columns), and which columns to aggregate (values). |
| `AMBIGUOUS_MCP_CREATE_PRESENTATION` | Create presentation | Create a new presentation deck. Omit `content` for a deck with one blank slide, or pass deck JSON to create it with its slides in place: `{ slides: [{ elements: [{ type: "text", x: 80, y: 60, w: 800, h: 80, text: "Q1 review", fontSize: 44 }] }] }`. A slide is 960 by 540 units with a top-left origin, and elements take the shape `add_slide` accepts. Returns the created `SlideDeck` envelope. |
| `AMBIGUOUS_MCP_CREATE_PRODUCT` | Create product | Create a product in the workspace catalog. Products are the reusable items that can be attached to deal line items and quote line items. Set is_active=false to retire without deleting. |
| `AMBIGUOUS_MCP_CREATE_PROJECT` | Create project | Create a new project to group related tasks. Use this when the user asks to start a new project or create a container for tasks. |
| `AMBIGUOUS_MCP_CREATE_PROJECT_UPDATE` | Create project update | Post a status update on a project. Use this when the user wants to report progress, flag a risk, or share a status update on a project. The status field captures the health signal (on_track, at_risk, off_track, paused, completed, cancelled). |
| `AMBIGUOUS_MCP_CREATE_QUOTE` | Create quote | Create a CRM quote (proposal) with line items. Auto-computes subtotal, tax, discount, and total. Link to a deal/contact/company via IDs. Status defaults to 'draft' — use send_quote to email it. |
| `AMBIGUOUS_MCP_CREATE_RESOURCE_COMMENT` | Create resource comment | Create a comment on a document, task, wiki page, mail conversation, pull request, or code review. Replies use parent_id. Documents, wiki pages and Code support anchor; documents, tasks, wiki pages and Code support idempotency_key. Unsupported fields are rejected by the owning module. Mail comments are internal notes and cannot be sent as email. |
| `AMBIGUOUS_MCP_CREATE_ROLE` | Create role | Create a custom role with specific permissions. Requires admin role. |
| `AMBIGUOUS_MCP_CREATE_SCHEDULER_LINK` | Create scheduler link | Create a scheduler link (booking page). Returns the public URL slug and availability settings. If auto_create_contact is true, every booking auto-creates a CRM contact + deal. |
| `AMBIGUOUS_MCP_CREATE_SCORING_RULE` | Create scoring rule | Create a lead scoring rule. When a contact matches (field + operator + value), the specified points are added to their lead score. Positive points indicate engagement; negative points indicate disqualification signals. |
| `AMBIGUOUS_MCP_CREATE_SEQUENCE` | Create sequence | Create a multi-step CRM sequence (email/wait/task/call/branch steps). Use this when the user asks to build a nurture campaign or outreach cadence. |
| `AMBIGUOUS_MCP_CREATE_SHARED_DRIVE` | Create shared drive | Create a shared drive. Creator becomes a manager. |
| `AMBIGUOUS_MCP_CREATE_SHEET` | Create sheet | Create a new spreadsheet. Returns the full `Sheet` envelope (id, title, owner, visibility, timestamps, and `data` body) so the caller can immediately read or edit cells without a second round-trip. Optional `content` may be a SheetData JSON object or a string that parses as JSON. |
| `AMBIGUOUS_MCP_CREATE_SHEET_IMAGE` | Create sheet image | Create editable floating images with cell anchors and CSS pixel geometry. Image src must reference an image asset owned by this sheet. |
| `AMBIGUOUS_MCP_CREATE_SHEET_PICTURE_GROUP` | Create sheet picture group | Create editable picture groups with cell anchors and CSS pixel geometry. Every leaf references an image asset owned by this sheet; native group transforms use EMU coordinates. |
| `AMBIGUOUS_MCP_CREATE_SHEET_SHAPE` | Create sheet shape | Create editable floating shapes with editable text, cell anchors and CSS pixel geometry. |
| `AMBIGUOUS_MCP_CREATE_SIGN_DOCUMENT` | Create sign document | Create a draft signing document. |
| `AMBIGUOUS_MCP_CREATE_SIGN_TEMPLATE` | Create sign template | Create a reusable signing template from field layout and signer roles. |
| `AMBIGUOUS_MCP_CREATE_SLICER` | Create slicer | Add a slicer to a tab of the sheet. Slicers filter pivot tables and charts that share the same source range by the values selected for a single column. `selectedValues: null` passes everything through; `[]` filters everything out; a non-empty array passes only those values. Returns the created slicer with its server-assigned id. |
| `AMBIGUOUS_MCP_CREATE_SLIDE_MASTER` | Create slide master | Create a new master slide for a deck. If no elements are provided, a default Title + Subtitle layout is used. |
| `AMBIGUOUS_MCP_CREATE_SUBTASK` | Create subtask | Create a subtask under the given parent task. Equivalent to `POST /api/tasks` with `parent_task_id` pre-filled from the URL parameter. |
| `AMBIGUOUS_MCP_CREATE_TASK` | Create task | Create a new task. Auto-subscribes the creator and (if assigned) the assignee. Auto-sets SLA due date when priority is set without an explicit due_date. Auto-logs a CRM activity if linked to a contact. |
| `AMBIGUOUS_MCP_CREATE_TEAM` | Create team | Create a new team in the workspace. The caller becomes the team admin. Teams can serve as email distribution lists (when email_local_part is set) and/or permission targets. Use this when the user asks to create a team, distribution list, or mailing list. |
| `AMBIGUOUS_MCP_CREATE_WIKI_PAGE` | Create wiki page | Create a new wiki page within a space. Pages use Markdown content and support nested hierarchies via parent_page_id. Use this when the user asks to create a wiki page, add documentation, write a runbook, or add to the knowledge base. Call list_wiki_spaces first to get the space ID. |
| `AMBIGUOUS_MCP_CREATE_WIKI_PAGE_VERSION` | Create wiki page version | Create a manual snapshot of the current wiki page state. Useful before a risky edit or when the user wants to mark a 'known good' checkpoint. Optional `label` names the snapshot. Returns the new version's id + metadata. |
| `AMBIGUOUS_MCP_CREATE_WIKI_SPACE` | Create wiki space | Create a new wiki space (a top-level container for pages). Use this when the user asks to create a new knowledge base area, team wiki, or documentation section. Spaces organize pages by team or domain (e.g., 'Engineering', 'Product', 'Company Handbook'). |
| `AMBIGUOUS_MCP_CREATE_WIKI_SYNCED_BLOCK` | Create wiki synced block | Create a synced block — a reusable content fragment that can be embedded in multiple wiki pages and stays in sync everywhere it's used. Returns the new block's id. Use this when the user asks to create a shared snippet, reusable callout, or cross-page content. |
| `AMBIGUOUS_MCP_CREATE_WORKSPACE_INVITE` | Create workspace invite | Create workspace invites. With no recipient it mints a generic shareable invite link (returned as `invite_url`) and emails nobody; with recipients it creates one invite per address and emails each. Role defaults to `member` and is forced to `member` for any value other than `admin`. |
| `AMBIGUOUS_MCP_CRM_CONTACT_FILE_ATTACH` | Crm contact file attach | Attach a Drive file to a contact. The file becomes readable by every workspace member who can read the contact, so a file you do not own needs the share right on it (403 `file_attach_requires_share` when you can only view it). |
| `AMBIGUOUS_MCP_CRM_CONTACT_FILE_DETACH` | Crm contact file detach | Detach a file from a contact |
| `AMBIGUOUS_MCP_CRM_CONTACT_FILES_LIST` | Crm contact files list | List files attached to a contact |
| `AMBIGUOUS_MCP_CRM_CONTACT_PHOTO_GET` | Crm contact photo get | Serve the photo image stored for a CRM contact. |
| `AMBIGUOUS_MCP_CRM_DEAL_ACTIVITIES` | Crm deal activities | List activities for deal (owner-scoped) |
| `AMBIGUOUS_MCP_CRM_DEAL_FILE_ATTACH` | Crm deal file attach | Attach a Drive file to a deal. The file becomes readable by everyone who can read the deal, so a file you do not own needs the share right on it (403 `file_attach_requires_share` when you can only view it). |
| `AMBIGUOUS_MCP_CRM_DEAL_FILE_DETACH` | Crm deal file detach | Detach a file from a deal |
| `AMBIGUOUS_MCP_CRM_DEAL_FILES_LIST` | Crm deal files list | List files attached to a deal |
| `AMBIGUOUS_MCP_CRM_QUOTE_PDF` | Crm quote pdf | Export quote as PDF (or printable HTML with ?format=html) |
| `AMBIGUOUS_MCP_CYCLES_ADD_TASKS` | Cycles add tasks | Add tasks to the cycle. Body `{task_ids: [...]}`. |
| `AMBIGUOUS_MCP_CYCLES_ANALYTICS` | Cycles analytics | Burndown + summary analytics for the cycle. |
| `AMBIGUOUS_MCP_CYCLES_COMPLETE` | Cycles complete | Complete a cycle. If `auto_rollover` is set, incomplete tasks are moved to the next cycle. |
| `AMBIGUOUS_MCP_CYCLES_CREATE` | Cycles create | Create a new cycle. Body fields: name, start_date, end_date, status?, cooldown_days?, auto_rollover?. |
| `AMBIGUOUS_MCP_CYCLES_DELETE` | Cycles delete | Delete a cycle. Tasks attached to the cycle are unlinked, not deleted. |
| `AMBIGUOUS_MCP_CYCLES_GET` | Cycles get | Get one task cycle and its dates by id. |
| `AMBIGUOUS_MCP_CYCLES_LIST` | Cycles list | List cycles in the active workspace. `?status=` filters by status; `?limit=` (1–200) and `?offset=` paginate. `has_more` is set when the underlying query returned a hint of more rows. |
| `AMBIGUOUS_MCP_CYCLES_REMOVE_TASKS` | Cycles remove tasks | Remove tasks from the cycle. Body `{task_ids: [...]}`. |
| `AMBIGUOUS_MCP_CYCLES_UPDATE` | Cycles update | Update cycle fields. |
| `AMBIGUOUS_MCP_CYCLES_VELOCITY` | Cycles velocity | Cross-cycle velocity (last N closed cycles). Default `limit=10`. |
| `AMBIGUOUS_MCP_DECIDE_ACCESS_REQUEST` | Decide access request | Approve an open access request at a named role, or decline it. Only principals entitled to share the resource may decide. Returns 409 once decided. |
| `AMBIGUOUS_MCP_DECIDE_MAIL_APPROVAL` | Decide mail approval | Approve and send, request changes, reject, or (as the sender) withdraw one submitted email. The decision names the revision it applies to: exactly one decision per revision succeeds, and a decision on a superseded revision conflicts rather than releasing content the caller has not read. Approving records the human and time against that revision; it authorizes nothing else — not the thread, not a reply, not a later email. |
| `AMBIGUOUS_MCP_DELETE_ACTIVITY` | Delete activity | Delete one logged CRM activity by id. |
| `AMBIGUOUS_MCP_DELETE_CANVAS_ELEMENT` | Delete canvas element | Delete one element from a board by id. Use when removing an object; connectors attached to it are not auto-deleted, so patch or delete those separately. Every other element is untouched. Coordinates: board units, top-left origin, +x right / +y down (unchanged by a delete). Example: delete_canvas_element({ id: "", elId: "" }). |
| `AMBIGUOUS_MCP_DELETE_CHART` | Delete chart | Remove a chart from the sheet. Returns `{ deleted: true }` on success. |
| `AMBIGUOUS_MCP_DELETE_CONDITIONAL_FORMAT` | Delete conditional format | Delete a conditional formatting rule from a spreadsheet by its ID. Returns 200 on success, 404 if the rule does not exist. |
| `AMBIGUOUS_MCP_DELETE_CONTACT` | Delete contact | Delete a CRM contact (owner-scoped). Permanently removes the contact record. Use with caution — prefer updating lifecycle_stage to 'evangelist' or archiving via merge instead. |
| `AMBIGUOUS_MCP_DELETE_CONTACT_GROUP` | Delete contact group | Delete a contact group. Memberships are removed but contacts themselves are preserved. |
| `AMBIGUOUS_MCP_DELETE_CONTACT_PHOTO` | Delete contact photo | Delete a CRM contact's profile photo. Clears the avatar_url and removes the stored image. |
| `AMBIGUOUS_MCP_DELETE_COWORKER` | Delete coworker | Delete a coworker (revokes API key + tears down config). |
| `AMBIGUOUS_MCP_DELETE_CRM_PROPERTY_DEFINITION` | Delete crm property definition | Delete a custom-property definition. Existing custom_properties values are left in place; they simply stop being typed. |
| `AMBIGUOUS_MCP_DELETE_CRM_VIEW` | Delete crm view | Delete a saved CRM view. |
| `AMBIGUOUS_MCP_DELETE_CUSTOM_EMOJI` | Delete custom emoji | Delete a custom emoji from the workspace. Use this when the user asks to remove or clean up a custom emoji. This does not remove existing reactions or messages that used the emoji — it only stops new usage. |
| `AMBIGUOUS_MCP_DELETE_DATA_CONNECTOR` | Delete data connector | Delete a data connector. Does not affect the cells it previously wrote to. |
| `AMBIGUOUS_MCP_DELETE_DEAL` | Delete deal | Delete a CRM deal (owner-scoped). Permanently removes the deal record and its line items. Prefer updating status to 'lost' with a lost_reason for reporting purposes. |
| `AMBIGUOUS_MCP_DELETE_DEAL_LINE_ITEM` | Delete deal line item | Delete a deal line item. By default the deal's total amount is re-synced after deletion. |
| `AMBIGUOUS_MCP_DELETE_DEAL_TEMPLATE` | Delete deal template | Delete a deal template (does not affect deals previously created from it). |
| `AMBIGUOUS_MCP_DELETE_DOCUMENT_VERSION` | Delete document version | Delete a version snapshot of a document. At least one version must always remain — returns an error if attempting to delete the last version. Requires editor permission. |
| `AMBIGUOUS_MCP_DELETE_EMAIL` | Delete email | Delete one email message by id. |
| `AMBIGUOUS_MCP_DELETE_EVENT` | Delete event | Delete a calendar event. This is a destructive action — always confirm with the user before calling. If the user is currently viewing an event, use the event ID from the page context. Guests are emailed a cancellation only when `send_updates` asks for it. |
| `AMBIGUOUS_MCP_DELETE_FILE` | Delete file | Delete a file or folder from Drive. This is a destructive action — always confirm with the user before executing. Deleting a folder also deletes all files inside it. Use this when the user explicitly asks to delete, remove, or trash a file or folder. |
| `AMBIGUOUS_MCP_DELETE_FORM` | Delete form | Delete a form and all its responses. This is a destructive action — always confirm with the user before executing. Use this when the user explicitly asks to delete or remove a form. |
| `AMBIGUOUS_MCP_DELETE_FORM_RESPONSE` | Delete form response | Delete a single form response. This is destructive — always confirm with the user before executing. Use when the user asks to remove or delete a specific submission. |
| `AMBIGUOUS_MCP_DELETE_FORM_VARIANT` | Delete form variant | Delete an A/B test variant (and its underlying duplicated form). Destructive — always confirm with the user. Use when the user asks to remove a variant or end an experiment. |
| `AMBIGUOUS_MCP_DELETE_MAIL_LABEL` | Delete mail label | Delete one mail label from this mailbox. |
| `AMBIGUOUS_MCP_DELETE_MAIL_RULE` | Delete mail rule | Delete one mail rule by id. |
| `AMBIGUOUS_MCP_DELETE_MAIL_TEMPLATE` | Delete mail template | Delete one saved mail template by id. |
| `AMBIGUOUS_MCP_DELETE_NAMED_RANGE` | Delete named range | Delete a named range from a spreadsheet by name. Names are matched case-insensitively. |
| `AMBIGUOUS_MCP_DELETE_PIPELINE` | Delete pipeline | Delete a CRM pipeline and all of its stages. Deals in the pipeline must be moved or deleted first. |
| `AMBIGUOUS_MCP_DELETE_PIVOT_TABLE` | Delete pivot table | Remove a pivot table from the sheet. The host tab itself stays — only the pivot row in `pivotTables[]` is removed. Returns `{ deleted: true }` on success. |
| `AMBIGUOUS_MCP_DELETE_PRODUCT` | Delete product | Delete a product from the workspace catalog. Existing deal/quote line items referencing it are NOT deleted, but their product_id is nulled. |
| `AMBIGUOUS_MCP_DELETE_PROJECT` | Delete project | Delete a project by ID. Only project admins or workspace admins can delete. Tasks belonging to the project are not deleted — they become unassigned from the project. |
| `AMBIGUOUS_MCP_DELETE_QUOTE` | Delete quote | Delete a CRM quote and its line items. |
| `AMBIGUOUS_MCP_DELETE_RECURRING_EVENT_FUTURE` | Delete recurring event future | Delete this and all future occurrences of a recurring event by adding an UNTIL clause to the master's RRULE, ending the series the day before the given split_date. |
| `AMBIGUOUS_MCP_DELETE_RECURRING_EVENT_SINGLE` | Delete recurring event single | Delete a single occurrence of a recurring event by adding the occurrence date to the master's excluded_dates. The occurrence is suppressed without affecting other instances. |
| `AMBIGUOUS_MCP_DELETE_RESOURCE_COMMENT` | Delete resource comment | Delete an existing document, task, wiki, mail-thread or Code comment by its comment ID. Existing author, ownership, and parent-resource permissions apply; each module's reply-deletion behavior is preserved. |
| `AMBIGUOUS_MCP_DELETE_ROLE` | Delete role | Delete a custom role. System roles cannot be deleted. Requires admin role. |
| `AMBIGUOUS_MCP_DELETE_SCHEDULER_LINK` | Delete scheduler link | Delete a scheduler link. Existing confirmed bookings remain but the public booking page stops accepting new bookings. |
| `AMBIGUOUS_MCP_DELETE_SCORING_RULE` | Delete scoring rule | Delete a lead scoring rule. |
| `AMBIGUOUS_MCP_DELETE_SEQUENCE` | Delete sequence | Delete a sequence (and all its enrollments). |
| `AMBIGUOUS_MCP_DELETE_SHARED_DRIVE` | Delete shared drive | Delete a shared drive (destructive, manager-only). |
| `AMBIGUOUS_MCP_DELETE_SHEET_COLUMNS` | Delete sheet columns | Delete columns atomically and return the bounded change receipt for undo or redo. |
| `AMBIGUOUS_MCP_DELETE_SHEET_IMAGE` | Delete sheet image | Delete editable floating images with cell anchors and CSS pixel geometry. Image src must reference an image asset owned by this sheet. |
| `AMBIGUOUS_MCP_DELETE_SHEET_PICTURE_GROUP` | Delete sheet picture group | Delete editable picture groups with cell anchors and CSS pixel geometry. Every leaf references an image asset owned by this sheet; native group transforms use EMU coordinates. |
| `AMBIGUOUS_MCP_DELETE_SHEET_ROWS` | Delete sheet rows | Delete rows from a sheet tab by 0-based index. |
| `AMBIGUOUS_MCP_DELETE_SHEET_SHAPE` | Delete sheet shape | Delete editable floating shapes with editable text, cell anchors and CSS pixel geometry. |
| `AMBIGUOUS_MCP_DELETE_SLICER` | Delete slicer | Remove a slicer from the sheet. Returns `{ deleted: true }` on success. |
| `AMBIGUOUS_MCP_DELETE_SLIDE_MASTER` | Delete slide master | Delete an unused master slide. Returns 409 with the referencing slide count while the master is in use. |
| `AMBIGUOUS_MCP_DELETE_TEAM` | Delete team | Permanently delete a team from the workspace. Only team admins or workspace admins can delete. All memberships are removed. Child teams are orphaned (parent set to null). Use this when the user asks to delete, remove, or dissolve a team. |
| `AMBIGUOUS_MCP_DELETE_USER` | Delete user | Irreversibly delete a member. Requires admin and refuses the last owner. Reassigns CRM contacts to `successor_user_id` (default: acting admin); an ineligible successor aborts before mutation. |
| `AMBIGUOUS_MCP_DELETE_WIKI_PAGE` | Delete wiki page | Move a wiki page to Trash, together with every page beneath it. Trashed pages leave the tree and search, and can be brought back with `wiki_page_restore`; only `wiki_page_permanent_delete` removes them for good. A page that has child pages answers 409 with `requires_cascade` and `children_count` unless `cascade=true` is passed, so confirm with the user before trashing a sub-tree. Use this when the user asks to delete or remove a wiki page. |
| `AMBIGUOUS_MCP_DELETE_WIKI_SYNCED_BLOCK` | Delete wiki synced block | Soft-delete a synced block. Embedded references will show error chips until restored. Use restore_wiki_synced_block to undo. |
| `AMBIGUOUS_MCP_DETACH_MASTER_FROM_SLIDE` | Detach master from slide | Detach a slide from its master. The slide keeps its current rendered elements but no longer inherits from the master. |
| `AMBIGUOUS_MCP_DOCS_CREATE_NAMED_RANGE` | Docs create named range | Create a named range (template placeholder) on a document. Named ranges anchor to ProseMirror node positions and are used for template-based document generation. Use replace_named_range_content to fill a named range with content. Name must be alphanumeric + underscore, must not start with a digit (e.g., party_name, companyAddress). |
| `AMBIGUOUS_MCP_DOCS_DELETE_NAMED_RANGE` | Docs delete named range | Delete a named range (template placeholder) from a document by name. Names are unique per document. |
| `AMBIGUOUS_MCP_DOCS_LIST_NAMED_RANGES` | Docs list named ranges | List all named ranges (template placeholders) defined on a document. Returns each range's name and its anchored node positions. |
| `AMBIGUOUS_MCP_DOCUMENTS_ASSET_CREATE` | Documents asset create | Add an image to a doc, sheet, slide deck or canvas board as one of its own assets and get back the URL its body should store (`/api/assets/{id}/content`). Send the bytes as `content_base64`, `source_file_id` to copy a Drive file the caller can view, or `source_url` to import a public HTTPS image through the SSRF guard; neither source is referenced afterwards. The type is decided from the bytes and only images are accepted (415 otherwise); SVG uploads are sanitized before storage and refused with 415 when malformed. Stored SVG is sanitized on every read and served inline as image/svg+xml under a restrictive Content-Security-Policy; malformed stored SVG is refused with 404. Drive SVG downloads remain attachments. The bytes count against the container owner's storage (413 past it). The same image added to the same container again returns the asset already held. The asset is never visible in Drive and is readable exactly when the container is. |
| `AMBIGUOUS_MCP_DOCUMENTS_COMMENT_DELETE` | Documents comment delete | Delete a comment. Author or document owner only. |
| `AMBIGUOUS_MCP_DOCUMENTS_COMMENT_REACTION_ADD` | Documents comment reaction add | Add an emoji reaction to a comment. Idempotent per (user, emoji). Returns the comment's updated reaction aggregate. |
| `AMBIGUOUS_MCP_DOCUMENTS_COMMENT_REACTION_REMOVE` | Documents comment reaction remove | Remove the caller's emoji reaction from a comment. Returns the comment's updated reaction aggregate. |
| `AMBIGUOUS_MCP_DOCUMENTS_COMMENT_RESOLVE` | Documents comment resolve | Edit your own comment or resolve a thread. Content edits require commenter access; resolution requires editor access. expected_content rejects stale edits with 409. |
| `AMBIGUOUS_MCP_DOCUMENTS_COMMENTS_CREATE` | Documents comments create | Add a threaded comment. Commenter permission required. `parent_id` makes it a reply; `anchor` carries CRDT-stable position info. |
| `AMBIGUOUS_MCP_DOCUMENTS_COMMENTS_LIST` | Documents comments list | List threaded comments. Response includes per-user `unread_count` (comments by other users since the requester's last `mark-read`, not resolved). |
| `AMBIGUOUS_MCP_DOCUMENTS_COMMENTS_MARK_READ` | Documents comments mark read | Advance the requester's last-seen marker so the unread badge clears. Idempotent. |
| `AMBIGUOUS_MCP_DOCUMENTS_COMMENT_THREAD_MARK_READ` | Documents comment thread mark read | Mark one comment thread read for the requester, clearing its unread badge. Idempotent. `commentId` must be a root comment on this document; a reply id or a comment on another document is refused 404. |
| `AMBIGUOUS_MCP_DOCUMENTS_COMMENT_THREAD_MARK_UNREAD` | Documents comment thread mark unread | Mark one comment thread unread for the requester so it stays flagged until reopened, even when its only comments are the requester's own. `commentId` must be a root comment on this document; a reply id or foreign-document id is refused 404, and a resolved thread is refused 409 `comment_resolved`. |
| `AMBIGUOUS_MCP_DOCUMENTS_DELETE` | Documents delete | Soft-delete a document (move to trash). Owner only. |
| `AMBIGUOUS_MCP_DOCUMENTS_DUPLICATE` | Documents duplicate | Make a copy. Title becomes 'Copy of '. Visibility resets to restricted; labels/pin/star are NOT inherited. Requires viewer access on the source. |
| `AMBIGUOUS_MCP_DOCUMENTS_PERMANENT_DELETE` | Documents permanent delete | Permanently delete a trashed document. Irreversible. |
| `AMBIGUOUS_MCP_DOCUMENTS_PIN` | Documents pin | Toggle pinned state. Editor permission required (workspace-wide pin, not per-user). |
| `AMBIGUOUS_MCP_DOCUMENTS_RESTORE` | Documents restore | Restore a trashed document. |
| `AMBIGUOUS_MCP_DOCUMENTS_SHARED_WITH_ME` | Documents shared with me | Documents shared with the calling account through an explicit permission grant, across every workspace and every identity the account owns. Excludes documents the account owns. Each row names the workspace that shared it and the role the grant carries. `scope=workspace` narrows discovery to resources in the authenticated current workspace without changing access. |
| `AMBIGUOUS_MCP_DOCUMENTS_STAR` | Documents star | Toggle starred state. Viewer permission is sufficient. Body `{starred: bool}` is optional — omit to toggle. |
| `AMBIGUOUS_MCP_DOCUMENTS_THUMBNAIL` | Documents thumbnail | Content-derived thumbnail for doc/sheet/slide cards. Returns SVG by default or PNG for Accept: image/png; cached privately for 60 seconds. |
| `AMBIGUOUS_MCP_DOCUMENTS_TRASH_LIST` | Documents trash list | Find all deleted native Docs, Sheets, Slides and Canvas items owned by the caller. Returns their document IDs for documents_restore or documents_permanent_delete; optional type filters doc, sheet, slide or canvas. Uploaded Drive files and folders use list_trashed_files, which can also include materialized native-document shadow rows but is not a complete native-document trash list. An empty Drive-file trash result does not mean this document trash is empty. |
| `AMBIGUOUS_MCP_DOCUMENTS_VERSION_GET` | Documents version get | Get a version's metadata + serialized content snapshot. |
| `AMBIGUOUS_MCP_DOCUMENTS_VERSION_REVERT` | Documents version revert | Revert the document to a prior version. Force-snapshots current state first. |
| `AMBIGUOUS_MCP_DOCUMENTS_VERSIONS_CREATE` | Documents versions create | Create a manual snapshot (forces past the 5-minute throttle). |
| `AMBIGUOUS_MCP_DOCUMENTS_VERSIONS_LIST` | Documents versions list | List version snapshots, newest-first, cursor-paginated (default 50 per page). Walk via `next_cursor` until `has_more` is false. |
| `AMBIGUOUS_MCP_DRIVE_FILE_CONFIRM_UPLOAD` | Drive file confirm upload | Confirm a presigned upload completed successfully. Verifies the blob exists, rechecks its real size and stored bytes, then marks the file as confirmed and emits the upload event. A retryable storage-inspection failure leaves the upload pending and returns 503; a missing object removes the pending row and returns 410. Idempotent — confirming an already-confirmed file returns it unchanged without repeating the upload event. |
| `AMBIGUOUS_MCP_DRIVE_FILE_CONTENT` | Drive file content | A file's bytes. A browser is redirected to a short-lived signed storage URL where signing is available and is otherwise sent the bytes; an MCP tool call always gets the bytes, refused 413 above the MCP result size limit. Pass `?download=true` for `Content-Disposition: attachment`; default is inline. Content retrieval failures can return 503/504 via raw Response because those statuses are outside the typed contract error-code enum. |
| `AMBIGUOUS_MCP_DRIVE_FILE_IMPORT` | Drive file import | Add a file to Drive from JSON, for clients that cannot send multipart: give either an https `url` to fetch (up to 100 MB) or the bytes as `content_base64` (up to 25 MB decoded), plus a `name`. The file goes through the same checks as a browser upload: its type is decided from the bytes, blocked types are refused, and it counts against the caller's storage quota. Links to private network addresses are refused, including through redirects. Returns the stored file. |
| `AMBIGUOUS_MCP_DRIVE_FILE_REQUEST_CREATE` | Drive file request create | Create a revocable, write-only public file request for a folder. The capability token is returned only in this response. |
| `AMBIGUOUS_MCP_DRIVE_FILE_REQUEST_REMINT` | Drive file request remint | Replace a live file request's capability token without changing its request identity, limits, upload progress, or expiry. The previous token stops working immediately and the replacement token is returned only in this response. |
| `AMBIGUOUS_MCP_DRIVE_FILE_REQUEST_REVOKE` | Drive file request revoke | Revoke a folder's public file request immediately. |
| `AMBIGUOUS_MCP_DRIVE_FILE_REQUESTS_LIST` | Drive file requests list | List the caller's file requests for one owned Drive folder. |
| `AMBIGUOUS_MCP_DRIVE_FILES_RECENT` | Drive files recent | Recently used files for the current user — files they opened in the last 30 days (their own views, including files shared with them that they can still open) OR files they own created in the last 24 hours. Sorted newest first by their own last view, or creation for their own new files. |
| `AMBIGUOUS_MCP_DRIVE_FILES_SHARED_WITH_ME` | Drive files shared with me | Files shared with the current user through a direct, team or external grant, newest share first (`sort=modified` orders by last modified instead). Each row carries `shared_at` and `shared_by`. Excludes files the user owns. |
| `AMBIGUOUS_MCP_DRIVE_FILES_STARRED` | Drive files starred | Files the current user has starred. |
| `AMBIGUOUS_MCP_DRIVE_FILES_SUGGESTED` | Drive files suggested | Files the current user is likely to want next, each with the reason it is suggested: they opened it (`opened`), someone shared it with them (`shared`), or someone else added it to a folder they own or an agent they manage created it (`added`). Covers the last 14 days, newest reason first, at most one entry per file and only files the caller can still open. Stars never influence it. Use this for the My Drive home, not for a full history; use `drive_files_recent` for everything the user opened. |
| `AMBIGUOUS_MCP_DRIVE_FILE_TAG_ATTACH` | Drive file tag attach | Attach one of your tags to a Drive file, a doc/sheet/slide, or a form, so one tag can group a PDF with the document it belongs to. Owner-only (anyone else gets 404) and idempotent. Pass `resource_type` to name the kind, or omit it to infer it from the id. |
| `AMBIGUOUS_MCP_DRIVE_FILE_TAG_DETACH` | Drive file tag detach | Detach a tag from a Drive file, a doc/sheet/slide, or a form. Owner-only. Pass `?resource_type=` to name the kind, or omit it to infer it from the id. |
| `AMBIGUOUS_MCP_DRIVE_FILE_UPDATE` | Drive file update | Rename, move, or star/unstar a file. Requires edit access — the owner or an editor/owner share. A move also needs editor access on the destination folder (contributor in a shared drive), and an item whose sharing is restricted moves only with its owner (403 `drive_move_requires_owner`). |
| `AMBIGUOUS_MCP_DRIVE_FILE_UPLOAD_INIT` | Drive file upload init | Initiate a file upload. Reserves a Drive row + storage key and returns a short-lived presigned PUT URL the client uploads the bytes to. |
| `AMBIGUOUS_MCP_DRIVE_FOLDER_ANCESTORS` | Drive folder ancestors | Breadcrumb chain (root → leaf) for a folder. Powers breadcrumb hydration on deep-link reloads. Viewer permission is sufficient. |
| `AMBIGUOUS_MCP_DRIVE_PUBLISH_GALLERY` | Drive publish gallery | Publish a folder as an anyone-with-link gallery: stamp link visibility plus the given password/expiry onto the folder and its direct-child non-folder files, skipping legal records (reported as skipped_legal). An omitted password or expires_at keeps the folder's current value, so re-publishing to admit new files keeps the gallery's protection; an explicit null (or empty password) clears it. Owner-only. Materialized, not a cascade — files added after publishing stay restricted until republished. |
| `AMBIGUOUS_MCP_DRIVE_REVOKE_GALLERY` | Drive revoke gallery | Revoke a folder gallery: restore the folder and its direct-child files to restricted and clear link settings. Owner-only. Legal-record children are left untouched. |
| `AMBIGUOUS_MCP_DRIVE_SHARED_DRIVE_FOLDER_CREATE` | Drive shared drive folder create | Create a folder inside a shared drive. Requires contributor+ on the drive. Pass `parent_folder_id` to nest. |
| `AMBIGUOUS_MCP_DRIVE_TAG_CREATE` | Drive tag create | Create a new tag in the user's catalog. |
| `AMBIGUOUS_MCP_DRIVE_TAG_DELETE` | Drive tag delete | Delete a tag (cascades to all file assignments). |
| `AMBIGUOUS_MCP_DRIVE_TAG_FILES_LIST` | Drive tag files list | List everything you tagged with the given tag: Drive files, docs/sheets/slides and forms you own, newest first. Docs and forms carry `document_type`. |
| `AMBIGUOUS_MCP_DRIVE_TAGS_LIST` | Drive tags list | Current user's tag catalog. Each tag carries name, color, and sort order. |
| `AMBIGUOUS_MCP_DRIVE_TAG_UPDATE` | Drive tag update | Rename, recolor, or reorder a tag. |
| `AMBIGUOUS_MCP_DUPLICATE_SLIDE` | Duplicate slide | Deep-copy a slide within the same deck. The duplicate is inserted immediately after the source slide. All elements (including group children) receive new unique IDs to avoid collisions. Useful for template-based workflows: duplicate a template slide, then update the copy with new content. |
| `AMBIGUOUS_MCP_DUPLICATE_TASK` | Duplicate task | Clone a task — copies title (appends ' (copy)'), description, priority, project, goal, cycle, estimate, due/start date, recurrence, custom fields, and labels. The clone starts at status 'todo' with a fresh task key. |
| `AMBIGUOUS_MCP_EDIT_RECURRING_EVENT_ALL` | Edit recurring event all | Edit all occurrences in a recurring series. Updates the master event. |
| `AMBIGUOUS_MCP_EDIT_RECURRING_EVENT_FUTURE` | Edit recurring event future | Edit this and all future occurrences of a recurring event by splitting the series at the given date. Use this for 'change the meeting time from next week onwards' or 'update our recurring Friday sync starting next month'. |
| `AMBIGUOUS_MCP_EDIT_RECURRING_EVENT_SINGLE` | Edit recurring event single | Edit a single occurrence of a recurring event, creating an exception without affecting other occurrences. Use this when the user says 'move just next Tuesday's meeting to 3pm' or 'cancel only this one occurrence'. |
| `AMBIGUOUS_MCP_EMPTY_TRASH` | Empty trash | Permanently delete the trashed files the user holds the owner rung on. Shared-drive files are included only for drives the user manages. Irreversible — confirm with user first. Returns the number of files deleted. |
| `AMBIGUOUS_MCP_ENROLL_CONTACT_IN_SEQUENCE` | Enroll contact in sequence | Enroll a contact in a CRM sequence so they begin receiving the automated steps (emails, tasks, calls). Use this when the user asks to start a campaign for a specific contact. |
| `AMBIGUOUS_MCP_ENSURE_WIKI_REVERSE_RELATION` | Ensure wiki reverse relation | Auto-create the reverse relation property on the target database if missing. Idempotent — returns the existing or newly-created reverse property id. |
| `AMBIGUOUS_MCP_EXPORT_DOCUMENT` | Export document | Export a document, sheet, or slide to one of its supported standard formats. Sheets support xlsx, csv, tsv, and ods. Returns the file bytes with Content-Type and Content-Disposition attachment headers. |
| `AMBIGUOUS_MCP_EXPORT_DRIVE_FILE` | Export drive file | Export a workspace document (Doc, Sheet, or Slide) to a file format via its Drive ID. Docs support: docx, pdf, html, md. Sheets support: xlsx, csv. Slides support: pptx, pdf, html. Binary Drive files (images, archives, etc.) cannot be exported — use download instead. |
| `AMBIGUOUS_MCP_EXPORT_FORM_RESPONSES` | Export form responses | Download all matching form responses as CSV with field labels, display values, blank unanswered cells, and ISO submission timestamps. Streams beyond the response-list page size. |
| `AMBIGUOUS_MCP_FIND_AND_REPLACE_IN_DECK` | Find and replace in deck | Find and replace text across all slides in a presentation. Searches every text element and table cell on every slide. Useful for template-based workflows: create a deck from a template with placeholders like {{company_name}}, then replace them programmatically. Plain string matching only (no regex). |
| `AMBIGUOUS_MCP_FORMATTER_SET` | Formatter set | Set a flat map of fields on the node output. Native equivalent of the n8n `Set` node — alias `n8n-nodes-base.set → formatter_set`. Pure passthrough: `parameters.values` is resolved upstream by the dispatcher's `resolveActionParameters` walker, so JSONLogic rules referencing `{var: "."}` produce the literal value the handler echoes back. Downstream nodes reference the result via `{var: ".values."}`. Spec line 41: formatters are `formatter_*` operationIds. |
| `AMBIGUOUS_MCP_GET_ACCOUNT_ERASURE_OUTCOME` | Get account erasure outcome | Read a deleted member's durable erasure outcome and notice-delivery state. Requires admin or owner. |
| `AMBIGUOUS_MCP_GET_ACTIVITY` | Get activity | Get a single activity by ID. Useful for reading back a just-created activity via the resource URL in the activity.created event payload. |
| `AMBIGUOUS_MCP_GET_BILLING_BONUSES` | Get billing bonuses | Return the workspace's full earned-bonus history, newest-first — perpetual activation bonuses merged with one-time activation grants. Powers the Home Action-bonuses card, which needs the whole history the notification feed cannot show. Any authenticated caller in the workspace. |
| `AMBIGUOUS_MCP_GET_BILLING_QUOTA` | Get billing quota | Return the workspace's unified action-meter view: plan, base/earned/topup quota, consumed-this-month, reset_at, member count + cap, trial state, active bonuses, auto-recharge config. Replaces the deprecated /api/billing/usage + /api/billing/ai-usage endpoints. Any authenticated caller in the workspace. |
| `AMBIGUOUS_MCP_GET_CALENDAR` | Get calendar | Get a single calendar by ID. Returns the calendar's name, color, timezone, default status, and owner. Use this when the user asks about a specific calendar's settings or before creating events to verify the timezone. |
| `AMBIGUOUS_MCP_GET_CALENDAR_COLORS` | Get calendar colors | Get the available color palette for calendars and events. Returns 24 calendar colors and 11 event colors, each with a background and foreground hex value. Use this when the user asks what colors are available, or before setting a calendar or event color. |
| `AMBIGUOUS_MCP_GET_CANVAS` | Get canvas | Get a full canvas by id, including every element in `data.elements`. Use when you need the complete board; for a large board prefer get_canvas_manifest (ids/types/bounds only) or get_canvas_frame to stay within context budget. Coordinates: board units, top-left origin, +x right / +y down. Example: get_canvas({ id: "" }) → the board with all elements. |
| `AMBIGUOUS_MCP_GET_CANVAS_ELEMENTS` | Get canvas elements | Batch-fetch specific elements of a board by id — pass `ids` as a comma-separated list (max 500) and only those elements are returned, never the whole board. Use to refresh just the elements that changed (a collaborator's edit named in a `canvas.updated` change-feed frame carries their ids), staying element-scoped rather than reloading the board body. A requested id that is ABSENT from the response means the element was deleted — drop it locally. Coordinates: board units, top-left origin, +x right / +y down. Example: get_canvas_elements({ id: "", ids: "el-a,el-b" }) → { elements: [{ id: "el-a", … }] } (el-b was deleted). |
| `AMBIGUOUS_MCP_GET_CANVAS_FRAME` | Get canvas frame | Get a frame (or swimlane) element and its children — every element whose `frameId` points at it. Use to read one region of a large board in full detail. Coordinates: board units, top-left origin, +x right / +y down. Example: get_canvas_frame({ id: "", frameId: "" }) → { frame, elements: [...] }. |
| `AMBIGUOUS_MCP_GET_CANVAS_MANIFEST` | Get canvas manifest | Get a bounded manifest of a board — element ids, types, and bounds only (no style/content). Use this to survey a large board cheaply, then fetch a specific frame or the full board for detail. Coordinates: board units, top-left origin, +x right / +y down. Example: get_canvas_manifest({ id: "" }) → { element_count, elements: [{ id, type, x, y, w, h }] }. |
| `AMBIGUOUS_MCP_GET_CHANNEL_MESSAGES` | Get channel messages | Get recent messages from a chat channel. Returns messages with id, content (Markdown), author info, reactions, thread reply count, and timestamps. Use this when the user asks to read messages, catch up on a channel, or find a specific conversation. If the user is currently viewing a channel, use the channel ID from the page context. Messages are returned in reverse chronological order (newest first). |
| `AMBIGUOUS_MCP_GET_CHANNEL_READ_RECEIPTS` | Get channel read receipts | Get per-member read positions for a channel — who has read up to which message. Useful for reporting on whether an announcement has been seen by everyone. |
| `AMBIGUOUS_MCP_GET_CONTACT` | Get contact | Get a single CRM contact by ID, including full details: name, email, phone, title, company, lifecycle stage, custom properties, and timestamps. If the user is currently viewing a contact, use the contact ID from the page context. |
| `AMBIGUOUS_MCP_GET_CONTACT_SCORE` | Get contact score | Get a contact's current lead score with a breakdown of which scoring rules matched and how many points each contributed. Use this to explain why a contact is hot/cold. |
| `AMBIGUOUS_MCP_GET_COVER_THUMBNAIL` | Get cover thumbnail | Get the PNG thumbnail bytes for the first slide (cover image) of a presentation. Convenience endpoint — equivalent to get_slide_thumbnail with index 0. |
| `AMBIGUOUS_MCP_GET_COWORKER` | Get coworker | Get one AI coworker's configuration by id. |
| `AMBIGUOUS_MCP_GET_COWORKER_STATUS` | Get coworker status | Get a coworker's runtime status (proxied from coworker service). |
| `AMBIGUOUS_MCP_GET_CRM_ANALYTICS` | Get crm analytics | Get analytics for accessible deals, optionally scoped to one pipeline: pipeline value by stage, conversion rates, average deal size, sales velocity, and deals breakdown. |
| `AMBIGUOUS_MCP_GET_CRM_METRICS` | Get crm metrics | Get pipeline metrics summary: total open deals, total deal value, win rate, deals won/lost, and recent activity counts. Useful for high-level pipeline health questions. |
| `AMBIGUOUS_MCP_GET_CRM_REPORTS` | Get crm reports | Get CRM revenue, deals-by-source, pipeline-by-owner, and activity reports for accessible records, optionally scoped to one pipeline. Each report preserves its own timestamp axis. |
| `AMBIGUOUS_MCP_GET_CURRENT_WORKSPACE` | Get current workspace | Get the active workspace (name, slug, logo). Accessible to any authenticated user. |
| `AMBIGUOUS_MCP_GET_DATA_CONNECTOR` | Get data connector | Get a single data connector by ID, including its config and last-run status. |
| `AMBIGUOUS_MCP_GET_DEAL` | Get deal | Get a single CRM deal by ID, including full details: title, amount, currency, stage, pipeline, contact, company, owner, probability, close date, custom properties, and timestamps. Pass embed=line_items to include the full line-items array. If the user is currently viewing a deal, use the deal ID from the page context. |
| `AMBIGUOUS_MCP_GET_DEAL_TEMPLATE` | Get deal template | Get a single deal template with its line items and resolved pipeline/stage names. |
| `AMBIGUOUS_MCP_GET_DETAILED_USER_PRESENCE` | Get detailed user presence | Get detailed presence for a set of users — online (≤5min), idle (5–30min), or offline — plus the lastActiveAt timestamp. Capped at 100 user IDs. Fallback/cold-hydrate surface only — the primary presence path is the full-state push over the `presence` /ws/mux channel; poll this on connect or when the socket is down, not on a steady timer. |
| `AMBIGUOUS_MCP_GET_DOCS_PAGE_LAYOUT_DEFAULT` | Get docs page layout default | Get the caller's default layout for new Docs: `pageless_default: true` (the default) means new Docs start pageless, `false` means they start in pages. |
| `AMBIGUOUS_MCP_GET_DOCUMENT` | Get document | Get a single document by ID, including its full content and comments. If the user is currently viewing a document, use the document ID from the page context. |
| `AMBIGUOUS_MCP_GET_DOCUMENT_FOOTNOTES` | Get document footnotes | Get the footnotes from a document. Returns an array of footnotes, each with a footnoteId, body content (PM JSON), and the positions of inline references (footnoteRef nodes) in the body text. |
| `AMBIGUOUS_MCP_GET_DOCUMENT_HEADERS_FOOTERS` | Get document headers footers | Get the default, first-page, and even-page headers and footers from a document as ProseMirror JSON nodes (or null if not set). |
| `AMBIGUOUS_MCP_GET_DOCUMENT_PAGE_STYLE` | Get document page style | Get the page-level formatting for a document: margins (in PT), page size (letter/A4/legal or custom {width, height} in PT), and orientation (portrait/landscape). Empty object means default formatting. |
| `AMBIGUOUS_MCP_GET_DRIVE_STORAGE` | Get drive storage | Get Drive storage usage. |
| `AMBIGUOUS_MCP_GET_DRIVE_STORAGE_BREAKDOWN` | Get drive storage breakdown | Storage breakdown by file type. |
| `AMBIGUOUS_MCP_GET_EMAIL` | Get email | Get a single email by ID, including full Markdown body, sender, recipients (to/cc/bcc), subject, and timestamps. Use this when the user wants to read an email, see its contents, or reply to a specific message. If the user is currently viewing an email, use the email ID from the page context. Use detail='headers' for envelope fields only (no body), or 'minimal' for id + labels only. |
| `AMBIGUOUS_MCP_GET_EMAIL_ATTACHMENT_URL` | Get email attachment url | Get an attachment download URL: signed in cloud storage, authenticated API content in local storage. |
| `AMBIGUOUS_MCP_GET_EMAIL_CALENDAR_INVITE` | Get email calendar invite | Get calendar invite embedded in an email. |
| `AMBIGUOUS_MCP_GET_EMAIL_DELIVERABILITY` | Get email deliverability | Get email deliverability statistics (sent/bounced/complained/opened rates) for the past 30 days. Requires admin role. |
| `AMBIGUOUS_MCP_GET_EMAIL_OPENS` | Get email opens | Fetch open events for an email (sender only) Returns the rollup (first/last seen, open count) plus up to the most recent 50 individual open events. 403 if the caller doesn't own the email's mailbox. |
| `AMBIGUOUS_MCP_GET_EMAIL_SIGNATURE` | Get email signature | Get the workspace default email signature (Markdown). Requires admin role. |
| `AMBIGUOUS_MCP_GET_ENTITY_PREVIEW` | Get entity preview | Look up a hover-card style preview of any referenced entity (document, task, contact, deal, channel, chat message, user, event, file, wiki page, form, email). Module keys include `docs`, `tasks`, `channels`, `messages`, `users`. Returns rich details — title, status, owner, due date, amount, etc. — without fetching the full record. Use this when an entity is referenced by ID and you need a quick summary. |
| `AMBIGUOUS_MCP_GET_EVENT` | Get event | Get a single calendar event by ID, including full details: title, description, location, start/end times, recurrence rule, status, visibility, and attendees with RSVP status. If the user is currently viewing an event, use the event ID from the page context. |
| `AMBIGUOUS_MCP_GET_EVENT_INSTANCES` | Get event instances | List individual occurrences of a recurring event within a date range. Expands the RRULE server-side and returns instance objects with computed start/end times. Use this to find specific occurrences (e.g., 'what meetings are on next Tuesday?') or to list upcoming instances of a series. |
| `AMBIGUOUS_MCP_GET_FEEDBACK` | Get feedback | Read back one submission by its receipt. Answers only the submitter — anyone else, including other members of the submitter's workspace, gets 404. Returns the public projection: a status word (`filed` \| `accepted` \| `declined` \| `shipped`, derived from the task Ambiguous works), the title, the priority, the task key, and timestamps. Nothing else on the task is exposed. |
| `AMBIGUOUS_MCP_GET_FILE_INFO` | Get file info | Get detailed information about a file or folder in Drive. Returns id, name, mime_type, size_bytes, storage_key, owner info, parent folder, and timestamps. Use this when the user asks about a specific file's details, size, type, or location. If the user is currently viewing a file in Drive, use the resource ID from page context. |
| `AMBIGUOUS_MCP_GET_FORM` | Get form | Get a form's full details including field schema, settings, publish status, and slug. Use this when the user asks about a form's fields, structure, or configuration. If the user is currently viewing a form, use the resource ID from page context. |
| `AMBIGUOUS_MCP_GET_FORM_AB_ANALYTICS` | Get form ab analytics | Get A/B test comparison analytics for a form with variants. Returns control + each variant with views, responses, completion rate, and traffic weight. Use when the user asks which variant is winning, for A/B test results, or experiment performance comparison. |
| `AMBIGUOUS_MCP_GET_FORM_ANALYTICS` | Get form analytics | Get analytics for a form: total views, total responses, completion rate, average completion time, responses-by-day (last 30 days), per-field drop-off funnel, and per-field summaries (option counts for select fields, numeric stats for rating/number fields). Use when the user asks about form performance, response rate, completion rate, or field-level statistics. |
| `AMBIGUOUS_MCP_GET_FORM_RESPONSE` | Get form response | Get a single form response by ID. Returns respondent info, submitted data (keyed by field ID), and timestamp. Use when the user asks about a specific submission or wants to review a particular response. |
| `AMBIGUOUS_MCP_GET_MAIL_APPROVAL` | Get mail approval | Read one submitted email exactly as it will send — From, Reply-To, the complete To/Cc/Bcc set, subject, body with signature applied, attachment manifest, threading and requested schedule. A caller without access gets 404, never 403. |
| `AMBIGUOUS_MCP_GET_MAIL_APPROVAL_ATTACHMENT_URL` | Get mail approval attachment url | Presigned URL for one frozen attachment, addressed by its position in the manifest. The bytes are the copy taken at submit time, so a later edit of the source Drive file does not change what the reviewer reads. The URL is minted only after the review access check. |
| `AMBIGUOUS_MCP_GET_MAIL_RULE` | Get mail rule | Get one mail rule's conditions and actions by id. |
| `AMBIGUOUS_MCP_GET_MAIL_SIGNATURE` | Get mail signature | Get the effective email signature. |
| `AMBIGUOUS_MCP_GET_MAIL_TEMPLATE` | Get mail template | Get one saved mail template by id. |
| `AMBIGUOUS_MCP_GET_MAIL_THREAD` | Get mail thread | Get all emails in a thread + muted flag. |
| `AMBIGUOUS_MCP_GET_MESSAGE_READERS` | Get message readers | List the users who have read a specific message (i.e. whose read-cursor is at or past this message). Use this to check whether a message (e.g. an important announcement) has been seen by specific people. |
| `AMBIGUOUS_MCP_GET_MODULE_AVAILABILITY` | Get module availability | Which productivity modules are enabled for the caller's workspace: module key → boolean. Bootstrap gate for nav + routes. |
| `AMBIGUOUS_MCP_GET_MY_ACCESS_REQUEST` | Get my access request | Whether you have an open access request for a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar, task, project, or CRM pipeline. |
| `AMBIGUOUS_MCP_GET_NOTIFICATION_KEYWORDS` | Get notification keywords | Get the current user's notification keywords. The user receives a mention-style notification whenever any of these words appears in a message they can read. |
| `AMBIGUOUS_MCP_GET_OOO_STATUS` | Get ooo status | Check out-of-office status for one or more users. Returns per-user OOO flag and event details when applicable. Call this before scheduling to avoid inviting people who are OOO. |
| `AMBIGUOUS_MCP_GET_PIPELINE` | Get pipeline | Get a single CRM pipeline by ID with its ordered stages and its `visibility` — `workspace` when the pipeline is shared with the whole workspace, `private` when only its members reach its deals. A caller who is not a member receives 404. |
| `AMBIGUOUS_MCP_GET_PRESENTATION` | Get presentation | Get a presentation's full data including all slides and their elements. Returns the `SlideDeck` envelope: top-level metadata (id, title, slide_count, owner, visibility, timestamps) plus the structured deck body nested under `data` (see `SlideDeckData`). Read settings/slides/masterSlides as `response.data.slides[…]`, not at the response root. If the user is currently viewing a presentation, use the presentation ID from the page context. |
| `AMBIGUOUS_MCP_GET_PRODUCT` | Get product | Get one CRM product from the catalog by id. |
| `AMBIGUOUS_MCP_GET_PROJECT` | Get project | Get a single project by ID, including task count, visibility, and metadata. |
| `AMBIGUOUS_MCP_GET_QUOTE` | Get quote | Get a single CRM quote with its line items and linked deal/contact/company/owner. |
| `AMBIGUOUS_MCP_GET_READ_RECEIPTS_DEFAULT` | Get read receipts default | Get read-receipts default for new compose. |
| `AMBIGUOUS_MCP_GET_RESOLVED_PRESENCE` | Get resolved presence | Cold-hydrate the resolved presence dot for a set of users in the current workspace. Returns user_id → { kind, state } — the same already-resolved dot the projector pushes over the `presence` WebSocket channel. Used on connect and as the WS-down fallback; the client renders the state and computes nothing. Capped at 100 user IDs. |
| `AMBIGUOUS_MCP_GET_SCHEDULER_LINK` | Get scheduler link | Get a single scheduler link (owner-scoped) with its settings and booking count. |
| `AMBIGUOUS_MCP_GET_SECURITY_SETTINGS` | Get security settings | Get workspace security settings (require_2fa, session_timeout_hours, password_min_length, ip_allowlist). Requires admin role. |
| `AMBIGUOUS_MCP_GET_SEQUENCE` | Get sequence | Get a single sequence with its full step list and current enrollment count. |
| `AMBIGUOUS_MCP_GET_SETTINGS` | Get settings | Get all workspace settings. Requires admin role. |
| `AMBIGUOUS_MCP_GET_SHARED_DRIVE` | Get shared drive | Get shared drive details. |
| `AMBIGUOUS_MCP_GET_SHEET` | Get sheet | Get a spreadsheet's structured data including columns, rows, and formulas. Returns the `Sheet` envelope: top-level metadata (id, title, owner, visibility, timestamps) plus the structured sheet body nested under `data` (see `SheetData`). Read the tab list as `response.data.sheets`; columns and rows are under `response.data.sheets[0]`, not at the response root. If the user is currently viewing a sheet, use the sheet ID from the page context. |
| `AMBIGUOUS_MCP_GET_SHEET_RANGE` | Get sheet range | Get a rectangular range of cell values from a sheet. Useful when you only need a slice of a large sheet (max 10,000 cells). Returns a 2D array of values plus the resolved start/end column letters and row numbers. Use orientation=COLUMNS to get column-major arrays (each inner array is one column). valueRenderOption controls how cells render: STORED (default) returns stored values verbatim — formula cells return the formula string; FORMULA forces formula strings; EVALUATED runs the server-side formula engine and returns computed values (e.g., '=SUM(A1:A3)' becomes 6). Same-sheet refs across tabs (Sheet2!A1) resolve when evaluating; IMPORTRANGE returns #REF! (server cannot recurse cross-document). |
| `AMBIGUOUS_MCP_GET_SIGN_AUDIT` | Get sign audit | Get the append-only audit trail for a visible signing document. |
| `AMBIGUOUS_MCP_GET_SIGN_DOCUMENT` | Get sign document | Get a signing document with signers and fields. |
| `AMBIGUOUS_MCP_GET_SLIDE_THUMBNAIL` | Get slide thumbnail | Get the PNG thumbnail bytes for a specific slide. Sizes: small (200px), medium (800px, default), large (1600px). |
| `AMBIGUOUS_MCP_GET_SNOOZE_PRESETS` | Get snooze presets | Get the user's custom snooze quick-presets. Returns defaults when no custom presets are saved. |
| `AMBIGUOUS_MCP_GET_SWIPE_ACTIONS` | Get swipe actions | Get the caller's own mail-row swipe actions. Returns the defaults (right archive, left trash) when nothing is saved. |
| `AMBIGUOUS_MCP_GET_TASK` | Get task | Get a single task by ID, including full details: title, description, status, priority, assignee, due date, labels, and subtask count. |
| `AMBIGUOUS_MCP_GET_TEAM` | Get team | Get details of a single team including its first 10 members. Returns team metadata (name, slug, visibility, join policy, email) and an embedded members list with each member's user_id, display_name, email, role, and added_at. Use this when the user asks about a specific team, its members, or 'who is in team X?'. |
| `AMBIGUOUS_MCP_GET_UNDO_SEND_SETTING` | Get undo send setting | Get undo-send duration preference. |
| `AMBIGUOUS_MCP_GET_UNREAD_COUNTS` | Get unread counts | Get the full unread projection (mail inbox, per-channel chat badges with mute/preference resolved, notifications, total). Used for cold-connect / reconnect hydration; live updates arrive on the mux `unread` channel. |
| `AMBIGUOUS_MCP_GET_USAGE_STATS` | Get usage stats | Get workspace usage statistics including storage breakdown by user and module, active user count, API call volume, and per-module adoption metrics. Requires admin or owner role. Use this when the user asks about workspace usage, storage consumption, billing metrics, or capacity planning. |
| `AMBIGUOUS_MCP_GET_USER_PRESENCE` | Get user presence | Get online status (true = online within the last 5 minutes) for a set of users in the current workspace. Returns user_id → boolean. Capped at 100 user IDs. Fallback/cold-hydrate surface only — the primary presence path is the full-state push over the `presence` /ws/mux channel; poll this on connect or when the socket is down, not on a steady timer. |
| `AMBIGUOUS_MCP_GET_USERS_NOTIFICATION_PREFERENCES` | Get users notification preferences | Return the user's notification preferences, merged with defaults so newly-added keys always render. |
| `AMBIGUOUS_MCP_GET_USER_STATUS` | Get user status | Get the current user's active chat status (emoji + text) and DND-until timestamp. Use this before setting or clearing the status to know the current state. |
| `AMBIGUOUS_MCP_GET_VACATION_SETTINGS` | Get vacation settings | Get vacation auto-reply settings. |
| `AMBIGUOUS_MCP_GET_WIKI_DATABASE_ROW` | Get wiki database row | Get a single database row by id. |
| `AMBIGUOUS_MCP_GET_WIKI_PAGE` | Get wiki page | Get a wiki page's full details including Markdown content, child pages, backlinks (pages that link to this page), and metadata. Use this when the user asks about a page's content, wants to read documentation, or needs to check what links to a specific page. If the user is currently viewing a wiki page, use the resource ID from page context. |
| `AMBIGUOUS_MCP_GET_WIKI_PAGE_VERSION` | Get wiki page version | Get a wiki page version's full content (title + markdown body). Use this when the user asks what a previous version looked like, wants to compare versions, or needs the content of a specific snapshot. |
| `AMBIGUOUS_MCP_GET_WIKI_SPACE_GRAPH` | Get wiki space graph | Get backlink graph data for a wiki space. Returns nodes (pages) and edges (links between pages). Use this when the user asks to visualize the knowledge graph, see how pages connect, or find highly-linked 'hub' pages. |
| `AMBIGUOUS_MCP_GET_WIKI_SYNCED_BLOCK` | Get wiki synced block | Get a synced block by ID. Returns the block's content and metadata. Use this when you need to read the current content of a shared block. |
| `AMBIGUOUS_MCP_GET_WORKSPACE` | Get workspace | Get the current workspace details (id, name, slug). Requires admin role. |
| `AMBIGUOUS_MCP_GRANT_ACCESS` | Grant access | Share a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar with exactly one user_id or named team_id (workspace members/teams), or email (anyone; sends an invitation). For all current/future workspace humans and agents use set_visibility(visibility=workspace, workspaceRole), not per-person grants or the Everyone entry. invite_to_workspace=true sends a membership invite (admin-only); message applies only to email. Unsupported roles are rejected; re-sharing cannot lower a live grant. |
| `AMBIGUOUS_MCP_GROUP_SLIDE_ELEMENTS` | Group slide elements | Group existing top-level elements on a slide into a single group. The group's bounding box is computed automatically from the children. Children positions become relative to the group origin. At least 2 element IDs required. A named element may itself be a group — `groupElements` validates only that each id is top-level on the slide, so groups nest. |
| `AMBIGUOUS_MCP_HOME_DIGEST` | Home digest | Workspace-home roll-up: trailing-window task velocity (with prior-window deltas) plus the actor-aggregated team digest, visibility-gated per viewer. The `window` param selects the trailing window (7d default, or 1d for Today). Accessible to any authenticated workspace member. |
| `AMBIGUOUS_MCP_INSERT_PAGE_BREAK` | Insert page break | Insert a page break into a document at a given position. Forces subsequent content to start on the next page in exported .docx and .pdf files. The page break is inserted as a block node between paragraphs. |
| `AMBIGUOUS_MCP_INSERT_PAGE_NUMBER` | Insert page number | Insert a page number placeholder into a document. The placeholder renders as the current page number in exported .docx and .pdf files. Commonly used inside headers or footers (e.g., 'Page X') but can also appear inline in the body text. The placeholder is inserted as an inline node within a paragraph. |
| `AMBIGUOUS_MCP_INSERT_SECTION_BREAK` | Insert section break | Insert a section break into a document at a given position. Section breaks divide the document into sections that can have different formatting. A 'next_page' section break forces content to the next page (like a page break but marks a new section). A 'continuous' section break starts a new section on the same page. |
| `AMBIGUOUS_MCP_INVITE_USER` | Invite user | Invite a human by email with a member or admin role. Requires admin. |
| `AMBIGUOUS_MCP_LEAVE_RESOURCE` | Leave resource | Remove your own direct grant on a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar. The owner cannot leave. Returns an undo_token that shared_with_me_undo_leave accepts for ten minutes. |
| `AMBIGUOUS_MCP_LIST_ACCESS` | List access | List named/team grants, workspace/link tiers and pending invitations for a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar. id names the resource; grant IDs name recipients. To remove broad access but keep explicit collaborators and their roles, use set_visibility(visibility=restricted). The Everyone entry mirrors workspace access, not a named share. Resource kind is inferred from id. |
| `AMBIGUOUS_MCP_LIST_ACTIVITY` | List activity | List recent workspace activity (last 30 days). Scoped to the current user's workspace. Filterable by resource type, resource ID, and acting user. |
| `AMBIGUOUS_MCP_LIST_ADDRESS_BOOK` | List address book | List the caller's address book: the shared CRM contacts they can see unioned with their own privately captured addresses, deduplicated on email with the shared record winning. Use this to resolve a recipient the user has written to before instead of asking them to retype an address. Private entries are never visible to another member. |
| `AMBIGUOUS_MCP_LIST_ARCHIVED_THREADS` | List archived threads | List archived threads (one per thread) |
| `AMBIGUOUS_MCP_LIST_BLOCKED_SENDERS` | List blocked senders | List all blocked senders for current user's mailbox |
| `AMBIGUOUS_MCP_LIST_CALENDAR_EVENTS` | List calendar events | List events scoped to a single calendar by its id — the RESTful path variant of list_events (`/api/calendars/events?calendar_id=…`). Requires at least viewer access to the calendar. |
| `AMBIGUOUS_MCP_LIST_CALENDARS` | List calendars | List the user's calendars. Returns calendar id, name, color, timezone, and whether it's the default. Use this to find the user's default calendar ID before creating events. |
| `AMBIGUOUS_MCP_LIST_CHANNELS` | List channels | List the user's chat channels. Returns channels with id, name, type (public/private/dm), description, member count, and creator info. Use this when the user asks to see their channels, find a specific channel by name, or when you need a channel ID to send a message. |
| `AMBIGUOUS_MCP_LIST_CHARTS` | List charts | List every chart across every tab of the sheet. Each entry is annotated with the `tab` name it lives in. |
| `AMBIGUOUS_MCP_LIST_CONDITIONAL_FORMATS` | List conditional formats | List all conditional formatting rules on a spreadsheet. Returns each rule's ID, ranges (A1 notation), and one canonical rule payload. |
| `AMBIGUOUS_MCP_LIST_CONTACT_ACTIVITIES` | List contact activities | List activities (notes, calls, emails, meetings, tasks) on a specific contact's timeline. Useful for summarizing recent interactions with a contact before sending an email or making a call. |
| `AMBIGUOUS_MCP_LIST_CONTACT_GROUP_MEMBERS` | List contact group members | List all contacts that are members of a contact group. Returns the contact id, name, email, and type for each member. |
| `AMBIGUOUS_MCP_LIST_CONTACT_GROUPS` | List contact groups | List all contact groups in the workspace with their member counts. Groups are named collections for organizing contacts (e.g., 'Conference leads 2026'). |
| `AMBIGUOUS_MCP_LIST_CONTACTS` | List contacts | List CRM contacts. Supports filtering by type, lifecycle stage, owner, and text search. Returns contacts with id, name, email, phone, type, lifecycle_stage, company, and timestamps. Use this when the user asks to see their contacts, find a person, or list companies. Also use this with the 'q' parameter to search for existing contacts BEFORE creating new ones to prevent duplicates. |
| `AMBIGUOUS_MCP_LIST_CRM_ACTIVITIES` | List crm activities | List recent CRM activity visible to the current user across contact and deal timelines. |
| `AMBIGUOUS_MCP_LIST_CRM_PROPERTY_DEFINITIONS` | List crm property definitions | List the workspace's typed custom-property definitions for contacts and deals, including relation properties that link a record to another contact, company, or deal. Optionally filter by entity_type. |
| `AMBIGUOUS_MCP_LIST_CRM_VIEWS` | List crm views | List the user's saved CRM views (filter + sort presets for contacts/companies/deals). Views personalize how CRM data is displayed without changing the underlying records. |
| `AMBIGUOUS_MCP_LIST_CRM_WORKSPACE_USERS` | List crm workspace users | List all users (humans and agents) in the current workspace who can own CRM records. Use before assigning contacts or deals to a specific owner_id. |
| `AMBIGUOUS_MCP_LIST_CUSTOM_EMOJIS` | List custom emojis | List all custom emojis uploaded to the current workspace. Returns each emoji with id, name (without colons), image URL, and creator info. Use this to discover what custom emojis are available before referring to them by name. |
| `AMBIGUOUS_MCP_LIST_DATA_CONNECTOR_RUN_HISTORY` | List data connector run history | List recent execution history for a data connector. Each row records one manual or scheduled run with its status, duration, row count, and error (if any). Use the `limit` query param to cap the page size (default 20, max 100). Results are ordered by completion time, newest first. |
| `AMBIGUOUS_MCP_LIST_DATA_CONNECTORS` | List data connectors | List data connectors registered on a sheet. Connectors fetch data from external sources (URL, CSV, etc.) into specific cells. |
| `AMBIGUOUS_MCP_LIST_DEAL_LINE_ITEMS` | List deal line items | List all line items for a deal, plus the computed total. |
| `AMBIGUOUS_MCP_LIST_DEALS` | List deals | List CRM deals. Supports filtering by pipeline, stage, and status. Returns deals with id, title, amount, currency, stage, pipeline, contact, status, and timestamps. Use this when the user asks to see their deals, check the pipeline, or find opportunities. |
| `AMBIGUOUS_MCP_LIST_DEAL_TEMPLATES` | List deal templates | List deal templates in the workspace (reusable deal presets: default pipeline, stage, amount, probability, and line items). |
| `AMBIGUOUS_MCP_LIST_DOCUMENTS` | List documents | List the current user's documents. Optionally filter by type. Includes externally owned documents by default; `scope=workspace` limits discovery to the authenticated current workspace. |
| `AMBIGUOUS_MCP_LIST_DRAFTS` | List drafts | List the unsent draft emails in this mailbox. |
| `AMBIGUOUS_MCP_LIST_DRIVE_FOLDERS` | List drive folders | List only folders (not files) in Drive — useful for folder pickers. Pass root to scope the listing to My Drive, shared drives, or Shared with me. |
| `AMBIGUOUS_MCP_LIST_EMAIL_ATTACHMENTS` | List email attachments | List attachments for an email |
| `AMBIGUOUS_MCP_LIST_ENROLLMENT_EVENTS` | List enrollment events | Get the event log for a single sequence enrollment (step-executed, email-opened, email-replied, branch-taken, completed). Useful for auditing why a contact moved to a particular step. |
| `AMBIGUOUS_MCP_LIST_EVENT_RESOURCES` | List event resources | List resources currently booked for an event (rooms, equipment). |
| `AMBIGUOUS_MCP_LIST_EVENTS` | List events | List calendar events across all of the user's calendars. Supports filtering by date range, calendar, and free-text search. Returns events with id, title, start/end times, location, status, and attendees. Use this when the user asks to see their schedule, upcoming meetings, or events for a date. Use the q parameter to search for events by keyword (matches title, description, location, and attendee names). |
| `AMBIGUOUS_MCP_LIST_FEEDBACK` | List feedback | List the caller's own submissions, newest first, as public projections (see `get_feedback`). Paginated with `limit` (default 50) and `offset`. |
| `AMBIGUOUS_MCP_LIST_FILES` | List files | List files and folders in the user's Drive. Returns items with id, name, mime_type, size_bytes, is_folder, parent_folder_id, owner info, and timestamps. Use this when the user asks to see their files, browse a folder, find a specific file, or check what's in Drive. If the user is currently viewing Drive, use context for the current folder. A `parent_id` the caller cannot view answers 404, exactly as an absent folder does; a folder shared from another workspace is browsed through `GET /api/drive/{id}/children` instead. |
| `AMBIGUOUS_MCP_LIST_FOLDER_CHILDREN` | List folder children | List the direct children of one folder, named in the path. Use this to browse into a folder — including one shared with you from another workspace, which the `parent_id` form of the list endpoint cannot return. Answers 404 for a folder the caller cannot view, exactly as an absent one does. |
| `AMBIGUOUS_MCP_LIST_FORM_RESPONSES` | List form responses | List responses submitted to a form. Returns responses with respondent info, submitted data (keyed by field ID), and timestamps. Use this when the user asks to see form results, check submissions, analyze feedback, or export response data. |
| `AMBIGUOUS_MCP_LIST_FORMS` | List forms | List the user's forms. Returns forms with id, title, slug, is_published, response count, timestamps, and the caller's own star and Drive tags. Pass `starred=true` for only the forms you starred. Use this when the user asks to see their forms, find a specific form, or check form status. |
| `AMBIGUOUS_MCP_LIST_FORM_VARIANTS` | List form variants | List A/B test variants for a form. Returns each variant's id, name, traffic weight, active status, and variant form ID. Use when the user asks about their A/B tests, variant list, or experiment setup. |
| `AMBIGUOUS_MCP_LIST_FORWARDING_ADDRESSES` | List forwarding addresses | List forwarding addresses + recent log. |
| `AMBIGUOUS_MCP_LIST_IDENTITY_API_KEYS` | List identity api keys | List the calling user's own API keys. Scoped to `c.var.user.id` — does not return keys belonging to other users in the same workspace. Admins managing other users' keys should use `GET /api/admin/api-keys`. |
| `AMBIGUOUS_MCP_LIST_INBOX` | List inbox | List the user's received emails (inbox). Returns emails with id, from, subject, preview, read status, and sent timestamp. Use this when the user asks to check their inbox, see recent emails, or find a specific email. Use detail='headers' for bandwidth-efficient scanning (omits body), or 'minimal' for id + labels only. Use label_ids to filter by specific labels (AND semantics — all listed labels must be present). |
| `AMBIGUOUS_MCP_LIST_MAIL_APPROVALS` | List mail approvals | List email submissions awaiting a human decision. Returns the caller's own submissions plus the ones they may decide — as the submitting agent's current manager, or as a workspace admin/owner. A former manager sees nothing. |
| `AMBIGUOUS_MCP_LIST_MAIL_BY_LABEL` | List mail by label | List emails with a specific label |
| `AMBIGUOUS_MCP_LIST_MAIL_LABELS` | List mail labels | List every mail label in this mailbox. |
| `AMBIGUOUS_MCP_LIST_MAIL_RULES` | List mail rules | List mail rules / filters. |
| `AMBIGUOUS_MCP_LIST_MAIL_TEMPLATES` | List mail templates | List the saved mail templates in this mailbox. |
| `AMBIGUOUS_MCP_LIST_MUTED_THREADS` | List muted threads | List muted threads (inbox view for muted conversations) |
| `AMBIGUOUS_MCP_LIST_MY_TEAMS` | List my teams | List teams the current user belongs to, with their role (admin or member) in each. Use this when the user asks 'what teams am I in?' or 'my teams' or 'my memberships'. |
| `AMBIGUOUS_MCP_LIST_MY_WORKSPACES` | List my workspaces | List workspaces the current user belongs to (human users may have multiple). Returns workspace id, name, slug, role, and which one is active. |
| `AMBIGUOUS_MCP_LIST_NAMED_RANGES` | List named ranges | List named ranges and named expressions on a spreadsheet. Each entry returns its name and either an A1 range or an exact literal expression. External-workbook expressions remain unresolved. |
| `AMBIGUOUS_MCP_LIST_PINNED_MESSAGES` | List pinned messages | List all pinned messages in a channel. Pinned messages are highlighted by members for ongoing reference (announcements, canonical links, etc.). Returns messages in newest-pin-first order. |
| `AMBIGUOUS_MCP_LIST_PIPELINE_MEMBERS` | List pipeline members | List the members of a CRM pipeline. Deal visibility is pipeline membership: a deal is visible to admins/owners and to members of its pipeline (directly or via a team). Roles are admin (can manage the pipeline + members) or member. |
| `AMBIGUOUS_MCP_LIST_PIPELINES` | List pipelines | List all CRM pipelines with their stages. Each pipeline contains an ordered list of stages with names, sort order, and default probabilities. Use this before creating or moving deals to find valid pipeline_id and stage_id values. |
| `AMBIGUOUS_MCP_LIST_PIVOT_TABLES` | List pivot tables | List every pivot table across every tab of the sheet. Each entry is annotated with the `tab` name it lives in. |
| `AMBIGUOUS_MCP_LIST_PRODUCTS` | List products | List products in the workspace catalog. Use this when the user asks about pricing or available SKUs, or before adding a product as a deal line item. |
| `AMBIGUOUS_MCP_LIST_PROJECTS` | List projects | List accessible projects in the current workspace, optionally filtering by a case-insensitive name query before pagination. Returns each project with name, icon, color, visibility, and task count. Use this when the user asks to see their projects or find a project by name. |
| `AMBIGUOUS_MCP_LIST_PROJECT_UPDATES` | List project updates | List status updates for a project, newest first. Returns the health timeline with author and timestamp. |
| `AMBIGUOUS_MCP_LIST_PROTECTED_RANGES` | List protected ranges | List all protected ranges on a spreadsheet. Returns each range with its ID, A1 range, description, warningOnly flag, and editorUserIds allowlist. |
| `AMBIGUOUS_MCP_LIST_QUOTES` | List quotes | List CRM quotes/proposals. Filter by status (draft, sent, accepted, rejected, expired), deal, or contact. Useful for finding outstanding quotes or recently-accepted ones. |
| `AMBIGUOUS_MCP_LIST_RESOURCE_COMMENTS` | List resource comments | Read comments on a document, task, wiki page, mail conversation, pull request, or code review. Resource type is resolved from ID; a mail conversation can use its thread key with mailbox_id. result preserves threading, pagination, unread counts, and entity references supplied by its owning module. |
| `AMBIGUOUS_MCP_LIST_RESOURCES` | List resources | List bookable resources (rooms, equipment) in the workspace. Call before booking a room to see what's available. |
| `AMBIGUOUS_MCP_LIST_ROLES` | List roles | List all roles in the workspace (system roles + custom roles). Requires admin role. |
| `AMBIGUOUS_MCP_LIST_RUNNING_EXECUTIONS` | List running executions | List in-flight executions across every coworker in the active workspace. Joins coworker_executions → coworkers, filtered by status IN ('PENDING','RUNNING'). Powers the 'Coworkers — running now' saved filter on People & Access. |
| `AMBIGUOUS_MCP_LIST_SAVED_MESSAGES` | List saved messages | List all messages the current user has saved (bookmarked) across all channels. Returns messages with saved_at timestamp, channel name, and channel type. Saved messages are private to the current user (unlike pinned messages, which are shared with the channel). |
| `AMBIGUOUS_MCP_LIST_SCHEDULED_MAIL` | List scheduled mail | List scheduled (unsent) emails |
| `AMBIGUOUS_MCP_LIST_SCHEDULED_MESSAGES` | List scheduled messages | List all pending scheduled messages for the current user across all channels. Returns each scheduled message with channel name/type and the scheduled_at timestamp. Use this to review what's queued to send later, or before updating/cancelling a scheduled message. |
| `AMBIGUOUS_MCP_LIST_SCHEDULER_BOOKINGS` | List scheduler bookings | List all bookings (across all scheduler links) owned by the current user. Useful for summarizing the user's upcoming meetings. |
| `AMBIGUOUS_MCP_LIST_SCHEDULER_LINK_BOOKINGS` | List scheduler link bookings | List all bookings for a single scheduler link (owner-scoped). |
| `AMBIGUOUS_MCP_LIST_SCHEDULER_LINKS` | List scheduler links | List the user's scheduler links (Calendly-style booking pages). Each link has a shareable slug, duration, availability hours, and optionally auto-creates a contact + deal when booked. |
| `AMBIGUOUS_MCP_LIST_SCORABLE_FIELDS` | List scorable fields | List the contact fields that can be used in scoring rules (lifecycle_stage, industry, title, website, custom_properties.*, etc.) and the operators each supports. |
| `AMBIGUOUS_MCP_LIST_SCORING_RULES` | List scoring rules | List all lead scoring rules for the workspace. |
| `AMBIGUOUS_MCP_LIST_SEND_AS_ADDRESSES` | List send as addresses | List available send-as addresses for current user |
| `AMBIGUOUS_MCP_LIST_SENT_MAIL` | List sent mail | List the emails sent from this mailbox. |
| `AMBIGUOUS_MCP_LIST_SEQUENCE_ENROLLMENTS` | List sequence enrollments | List all enrollments for a sequence, including each contact's current step, status, and next execute time. Useful for checking progress or finding an enrollment ID to unenroll. |
| `AMBIGUOUS_MCP_LIST_SEQUENCES` | List sequences | List all CRM email/task sequences (multi-step automated outreach campaigns). Returns sequences with their steps, active status, and current enrollment count. |
| `AMBIGUOUS_MCP_LIST_SHARED_DRIVE_FILES` | List shared drive files | List files in a shared drive. |
| `AMBIGUOUS_MCP_LIST_SHARED_DRIVE_MEMBERS` | List shared drive members | List shared drive members. |
| `AMBIGUOUS_MCP_LIST_SHARED_DRIVES` | List shared drives | List shared drives user is a member of. |
| `AMBIGUOUS_MCP_LIST_SHEET_IMAGES` | List sheet images | List editable floating images with cell anchors and CSS pixel geometry. Image src must reference an image asset owned by this sheet. |
| `AMBIGUOUS_MCP_LIST_SHEET_PICTURE_GROUPS` | List sheet picture groups | List editable picture groups with cell anchors and CSS pixel geometry. Every leaf references an image asset owned by this sheet; native group transforms use EMU coordinates. |
| `AMBIGUOUS_MCP_LIST_SHEETS` | List sheets | List the current user's spreadsheets (owned + shared). Convenience alias for `GET /api/documents?type=sheet`. Returns the lightweight `SheetSummary` shape without the structured `data` body — call `GET /api/sheets/:id` to load a specific sheet's tabs/columns/rows. |
| `AMBIGUOUS_MCP_LIST_SHEET_SHAPES` | List sheet shapes | List editable floating shapes with editable text, cell anchors and CSS pixel geometry. |
| `AMBIGUOUS_MCP_LIST_SHEET_VALIDATIONS` | List sheet validations | List all data validation rules on a spreadsheet. Returns each rule's range (A1 notation) and rule definition (type, values, strict, inputMessage). |
| `AMBIGUOUS_MCP_LIST_SIGN_DOCUMENTS` | List sign documents | List signing documents in the workspace. |
| `AMBIGUOUS_MCP_LIST_SIGN_TEMPLATES` | List sign templates | List reusable signing templates. |
| `AMBIGUOUS_MCP_LIST_SLICERS` | List slicers | List every slicer across every tab of the sheet. Slicers are interactive filter widgets that filter pivots / charts on a shared source range. Each entry is annotated with the `tab` name it lives in. |
| `AMBIGUOUS_MCP_LIST_SLIDE_MASTERS` | List slide masters | List the master slide templates registered on a presentation. Child slides link to masters by reference and resolve current master elements at render time, beneath child-owned elements. |
| `AMBIGUOUS_MCP_LIST_SNOOZED_MAIL` | List snoozed mail | List the snoozed emails in this mailbox. |
| `AMBIGUOUS_MCP_LIST_STARRED_MAIL` | List starred mail | List the starred emails in this mailbox. |
| `AMBIGUOUS_MCP_LIST_TASK_ATTACHMENTS` | List task attachments | List Drive files attached to a task. |
| `AMBIGUOUS_MCP_LIST_TASKS` | List tasks | List tasks in the workspace. Pass assignee_id to filter by assignee (use the caller's user ID for 'my tasks'). Supports filtering by status, priority, project, and free-text query. |
| `AMBIGUOUS_MCP_LIST_TASK_TEMPLATES` | List task templates | List task templates in the workspace. Templates pre-fill fields when creating tasks. Optionally filter by project. Returns name, default fields (priority, status, estimate, assignee, labels), and creator. |
| `AMBIGUOUS_MCP_LIST_TEAMS` | List teams | List workspace teams visible to the current user. Returns public teams and private teams the user is a member of, with member counts. Filterable by `q` (case-insensitive substring match on name + slug). Optional `limit` caps the result count. Use this when the user asks to see teams, distribution lists, or workspace teams. |
| `AMBIGUOUS_MCP_LIST_TRASHED_FILES` | List trashed files | Find deleted Drive file rows and folders the caller owns, trashed themselves, or holds the owner rung on (a folder above it is theirs, or they manage its shared drive). Returns paginated file IDs and metadata for restore_file or permanent_delete_file. Can include materialized native-document shadow rows, but does not list every native Docs, Sheets, Slides or Canvas item: use documents_trash_list for the complete native-document trash owned by the caller. An empty result does not mean the whole workspace trash is empty. |
| `AMBIGUOUS_MCP_LIST_USERS` | List users | List workspace members and agents with identity, role, status, storage usage, and timestamps. Requires admin or owner. |
| `AMBIGUOUS_MCP_LIST_USER_STATUSES` | List user statuses | List active chat statuses (emoji + text + DND) for users in the workspace. Only returns users who currently have a non-null status or active DND. Useful for 'who's on vacation?', 'is anyone in meetings?', or similar presence queries. |
| `AMBIGUOUS_MCP_LIST_WIKI_PAGE_DATABASES` | List wiki page databases | List all inline databases hosted on a wiki page. |
| `AMBIGUOUS_MCP_LIST_WIKI_PAGE_VERSIONS` | List wiki page versions | List the saved version snapshots for a wiki page (most recent first). Use this when the user asks for revision history, wants to see who edited and when, or needs to find a version to revert to. |
| `AMBIGUOUS_MCP_LIST_WIKI_SPACE_PAGES` | List wiki space pages | List pages in a wiki space with offset/limit pagination. Returns page summaries (id, title, slug, icon, parent_page_id, sort_order). Use this when the user asks to see all pages in a space, or when you need to paginate through a large space. |
| `AMBIGUOUS_MCP_LIST_WIKI_SPACES` | List wiki spaces | List all wiki spaces. Returns spaces with id, name, slug, description, icon, owner info, privacy setting, and page count. Use this when the user asks to see wiki spaces, browse the knowledge base, or when you need a space ID to create a page. |
| `AMBIGUOUS_MCP_LIST_WIKI_SYNCED_BLOCKS_BY_PAGE` | List wiki synced blocks by page | List synced blocks that were originally created on a specific page. Use this when the user asks what shared content a page publishes, or to audit reuse. |
| `AMBIGUOUS_MCP_LOG_ACTIVITY` | Log activity | Log an activity on a CRM contact or deal timeline. Activities track interactions like calls, emails, meetings, notes, and tasks. Use this when the user asks to log a call, record meeting notes, or add a note to a contact/deal. |
| `AMBIGUOUS_MCP_MAIL_ALIAS_CREATE` | Mail alias create | Add a new alias on a verified workspace domain |
| `AMBIGUOUS_MCP_MAIL_ALIAS_DELETE` | Mail alias delete | Delete a send-from alias address by id. |
| `AMBIGUOUS_MCP_MAIL_ALIASES_LIST` | Mail aliases list | List all aliases for current user's mailbox |
| `AMBIGUOUS_MCP_MAIL_ALIAS_SET_DEFAULT` | Mail alias set default | Set alias as default send-as identity |
| `AMBIGUOUS_MCP_MAIL_BLOCKLIST_CLEAR` | Mail blocklist clear | Unblock by raw pattern (convenience for "Unblock sender" button) |
| `AMBIGUOUS_MCP_MAIL_BLOCKLIST_REMOVE` | Mail blocklist remove | Unblock a sender by their blocklist entry id. |
| `AMBIGUOUS_MCP_MAIL_BULK_MODIFY` | Mail bulk modify | Apply one bulk action to emails chosen by id or search query. |
| `AMBIGUOUS_MCP_MAIL_EXPORT_EML` | Mail export eml | Export a message as RFC 5322 EML, returning retained source octets when available. |
| `AMBIGUOUS_MCP_MAIL_EXTERNAL_AUTH_URL` | Mail external auth url | Start connected-mailbox (Gmail) OAuth — returns the consent URL. |
| `AMBIGUOUS_MCP_MAIL_EXTERNAL_CONNECTION_DELETE` | Mail external connection delete | Disconnect a connected mailbox. |
| `AMBIGUOUS_MCP_MAIL_EXTERNAL_CONNECTIONS_LIST` | Mail external connections list | List connected mailboxes. |
| `AMBIGUOUS_MCP_MAIL_EXTERNAL_CONNECTION_TEST` | Mail external connection test | Verify a connected mailbox by fetching its Gmail profile. |
| `AMBIGUOUS_MCP_MAIL_FOLDER_COUNTS` | Mail folder counts | Per-folder badge counts for sidebar Returns { inbox: unread_count, drafts, scheduled, snoozed } — Gmail-style. |
| `AMBIGUOUS_MCP_MAIL_LABEL_COUNTS` | Mail label counts | Per-label unread counts for sidebar badges. A separate endpoint so the sidebar can refresh counts on read/receive without re-fetching the label definitions themselves. Shape mirrors /folder-counts. |
| `AMBIGUOUS_MCP_MAIL_MESSAGE_UNSUBSCRIBE` | Mail message unsubscribe | One-click unsubscribe. Triggers the List-Unsubscribe URL (RFC 8058) on the user's behalf. Falls back to telling the client to open a mailto: link if no HTTP URL is present. |
| `AMBIGUOUS_MCP_MAIL_SHARED_MAILBOX_ASSIGNEES` | Mail shared mailbox assignees | The people who can hold a thread in this shared mailbox — team grants flattened to their members. |
| `AMBIGUOUS_MCP_MAIL_SHARED_MAILBOX_CREATE` | Mail shared mailbox create | Create a shared mailbox and address it on a workspace domain (admin only) |
| `AMBIGUOUS_MCP_MAIL_SHARED_MAILBOX_DELETE` | Mail shared mailbox delete | Retire a shared mailbox (admin only). Soft: stored mail is retained and the address stays reserved. |
| `AMBIGUOUS_MCP_MAIL_SHARED_MAILBOXES_LIST` | Mail shared mailboxes list | List the shared mailboxes the caller holds, or every one in the workspace with `scope=managed` (admin only) |
| `AMBIGUOUS_MCP_MAIL_SHARED_MAILBOX_GET` | Mail shared mailbox get | Get one shared mailbox and its members |
| `AMBIGUOUS_MCP_MAIL_SHARED_MAILBOX_MEMBER_ADD` | Mail shared mailbox member add | Grant a user or a team access to a shared mailbox (admin only) |
| `AMBIGUOUS_MCP_MAIL_SHARED_MAILBOX_MEMBER_REMOVE` | Mail shared mailbox member remove | Revoke a user's or team's access to a shared mailbox (admin only) |
| `AMBIGUOUS_MCP_MAIL_SHARED_MAILBOX_RESTORE` | Mail shared mailbox restore | Restore a retired shared mailbox (admin only). Total — delete cascaded nothing. |
| `AMBIGUOUS_MCP_MAIL_SHARED_MAILBOX_UPDATE` | Mail shared mailbox update | Rename a shared mailbox's display name; its address is unchanged (admin only) |
| `AMBIGUOUS_MCP_MAIL_SMART_COMPOSE` | Mail smart compose | Suggest a short continuation of an email draft being written. Takes the text typed so far, optionally the subject and the earlier messages of the thread being replied to, and streams the suggested next words. |
| `AMBIGUOUS_MCP_MAIL_THREAD_MUTE_STATUS` | Mail thread mute status | Check if a thread is muted |
| `AMBIGUOUS_MCP_MAIL_TRASH_LIST` | Mail trash list | List trashed (soft-deleted) emails — the caller's own rows in folder='trash'. Restore one with `untrash_email`; nothing is purged automatically. |
| `AMBIGUOUS_MCP_MAIL_UNREAD_SUMMARY` | Mail unread summary | Unread mail summary for a cross-module unread view: the total unread count plus the top N (default 5, max 25) unread inbox rows with sender, subject, preview and timestamp, so a unified list can render without pulling the full inbox. |
| `AMBIGUOUS_MCP_MARK_ALL_CHANNELS_READ` | Mark all channels read | Mark all channels as read for the current user. Advances the read cursor in every channel the user is a member of to the latest message, clearing all unread badges at once. Use this when the user wants to dismiss all chat unreads (e.g. returning from vacation). |
| `AMBIGUOUS_MCP_MARK_CHANNEL_READ` | Mark channel read | Mark a channel as read up to a specific message. This clears the unread badge for the current user. Use this after the user has finished catching up on a channel, or programmatically to dismiss unread counts after the assistant reports on recent messages. |
| `AMBIGUOUS_MCP_MARK_CHANNEL_UNREAD` | Mark channel unread | Mark a channel as unread starting from a specific message. Moves the calling user's read cursor back to just before that message, so the channel shows an unread badge and the message becomes the unread boundary. Use this when the user wants to revisit a conversation later. |
| `AMBIGUOUS_MCP_MARK_EMAIL_READ` | Mark email read | Update email status (read/unread, starred, snoozed) |
| `AMBIGUOUS_MCP_MARK_THREAD_READ` | Mark thread read | Mark a thread as fully read up to the latest reply. Use this after the user has finished catching up on a thread, or when you want to programmatically dismiss unread reply counts for a specific thread. |
| `AMBIGUOUS_MCP_MARK_THREAD_UNREAD` | Mark thread unread | Mark a thread as unread so it reappears in the threads inbox with an unread badge. An optional reply_id marks that reply onward unread. Omit it to mark the whole thread unread. Restore accepts the prior cursor and its expected current cursor; a newer intent returns 409. |
| `AMBIGUOUS_MCP_MERGE_CONTACTS` | Merge contacts | Merge two CRM contacts that represent the same person/company. The secondary contact is deleted, and its activities and deals are re-linked to the primary. Use this when you discover duplicates (same email or name). The primary contact is the one kept; the secondary is removed. |
| `AMBIGUOUS_MCP_MIGRATE_DOCUMENT_SOURCE` | Migrate document source | Activate source-preserving editing on an existing document. Only its owner may migrate; the expected content hash prevents stale activation and the command ID makes retries idempotent. |
| `AMBIGUOUS_MCP_MODIFY_CONTACT_GROUP_MEMBERS` | Modify contact group members | Bulk add or remove contacts from a contact group. Idempotent — adding an already-present contact or removing an absent one is a no-op. |
| `AMBIGUOUS_MCP_MOVE_SHEET_COLUMN` | Move sheet column | Move a column to a new position. Rewrites dependent formulas so they follow the moved column to the same logical data, and re-anchors notes and comment anchors. |
| `AMBIGUOUS_MCP_MOVE_SHEET_ROW` | Move sheet row | Move a row to a new zero-based position, carrying its values, formatting, geometry and dependent references. |
| `AMBIGUOUS_MCP_NOTIFICATIONS_DISMISS` | Notifications dismiss | Soft-delete (hide from default feed). Preserved for audit / undismiss. |
| `AMBIGUOUS_MCP_NOTIFICATIONS_LIST` | Notifications list | List notifications for the current user. Supports cursor pagination via `?cursor=`; legacy offset pagination still works. Filters: `resource_types`, `excluded_resource_types`, `event_types`, `unread_only`; visibility toggles: `include_dismissed`, `include_snoozed`. |
| `AMBIGUOUS_MCP_NOTIFICATIONS_MARK_ALL_READ` | Notifications mark all read | Mark every unread notification in the optional resource/event scope as read. |
| `AMBIGUOUS_MCP_NOTIFICATIONS_MARK_READ` | Notifications mark read | Mark a single notification read. Returns `was_unread` — true only if THIS call flipped it. A consumer that gets `false` skips the work, so two processes on one identity cannot both act on one notification. |
| `AMBIGUOUS_MCP_NOTIFICATIONS_MARK_UNREAD` | Notifications mark unread | Convenience alias for `PATCH /api/notifications/:id` with `{read:false}`. |
| `AMBIGUOUS_MCP_NOTIFICATIONS_MUTE_CREATE` | Notifications mute create | Create or refresh your in-app/live notification suppression rule for resourceId, eventType, or both. Matching direct mentions are suppressed there too; email and push delivery are unchanged. This does not change a chat channel's mute setting or notification preference. For ordinary channel mute/unmute use set_channel_muted. At least one selector is required; resourceId also requires resourceType. until=null or omitted means indefinite. A matching rule's expiry is refreshed. |
| `AMBIGUOUS_MCP_NOTIFICATIONS_MUTE_DELETE` | Notifications mute delete | Remove a mute rule by id. Scoped to the owning user. |
| `AMBIGUOUS_MCP_NOTIFICATIONS_MUTES_LIST` | Notifications mutes list | List active mute rules. Pass `?include_expired=true` to also see rules whose `until` has passed (these no longer suppress notifications). |
| `AMBIGUOUS_MCP_NOTIFICATIONS_SNOOZE` | Notifications snooze | Hide until `{until: ISO8601}`. Pass `{until: null}` to clear snooze. |
| `AMBIGUOUS_MCP_NOTIFICATIONS_UNDISMISS` | Notifications undismiss | Restore a dismissed notification. |
| `AMBIGUOUS_MCP_PATCH_CANVAS_ELEMENT` | Patch canvas element | Update one element's fields (geometry, style, text, connector endpoints, lock). Use when moving, restyling, relabeling, or re-anchoring a single element. Provide only the fields to change; the element's id and type stay fixed and every other element is untouched (per-element diff — never a full-board replace). Coordinates: board units, top-left origin, +x right / +y down — set `x`,`y` to move the top-left corner. Example: patch_canvas_element({ id: "", elId: "", x: 240, y: 80 }) moves an element right by 140 units. |
| `AMBIGUOUS_MCP_PATCH_USERS_NOTIFICATION_PREFERENCES` | Patch users notification preferences | Partial update of notification preferences. Unknown keys → 400. Non-boolean values → 400. |
| `AMBIGUOUS_MCP_PAUSE_COWORKER` | Pause coworker | Pause coworker (stops scheduled executions). |
| `AMBIGUOUS_MCP_PERMANENT_DELETE_FILE` | Permanent delete file | Permanently delete a trashed file. Needs the owner rung; shared-drive content additionally needs a manager of that drive. A caller who can see the file without that authority gets 403. Irreversible — confirm with user first. |
| `AMBIGUOUS_MCP_POLL_CLOSE` | Poll close | Close a poll to further voting (creator or channel admin). |
| `AMBIGUOUS_MCP_POLL_CREATE` | Poll create | Create a poll in a channel. Creator must be a channel member. |
| `AMBIGUOUS_MCP_POLL_DELETE` | Poll delete | Delete a poll (creator or channel admin). |
| `AMBIGUOUS_MCP_POLL_GET` | Poll get | Poll details (question, options, the caller's votes). |
| `AMBIGUOUS_MCP_POLL_GET_BY_MESSAGE` | Poll get by message | Poll results for the poll attached to a chat message. |
| `AMBIGUOUS_MCP_POLL_RESULTS` | Poll results | Tallied poll results (respects anonymity). |
| `AMBIGUOUS_MCP_POLL_UNVOTE` | Poll unvote | Remove the caller's vote for a poll option. |
| `AMBIGUOUS_MCP_POLL_VOTE` | Poll vote | Cast a vote for a poll option. |
| `AMBIGUOUS_MCP_PROJECT_MEMBERS_ADD` | Project members add | Add a member. Body `{user_id, role?}` — or `{team_id, role?}` for a team share. A project editor may add, capped at its own role: granting a role above it is refused `403`. Notifies the new member. |
| `AMBIGUOUS_MCP_PROJECT_MEMBERS_LIST` | Project members list | List project members. |
| `AMBIGUOUS_MCP_PROJECT_MEMBERS_REMOVE` | Project members remove | Remove a grant from the project. The path id is the principal id: a user by default, or a team with `?type=team`. Notifies the removed user (unless self-removal). The Everyone team's row is refused — workspace access is set through the project's visibility, which is its only control. |
| `AMBIGUOUS_MCP_PROJECT_MEMBERS_UPDATE_ROLE` | Project members update role | Change a member's role. |
| `AMBIGUOUS_MCP_PROJECT_NOTIFICATION_PREF_GET` | Project notification pref get | Get the caller's notification preference for the project. |
| `AMBIGUOUS_MCP_PROJECT_NOTIFICATION_PREF_SET` | Project notification pref set | Set the caller's notification preference (`level`) for the project. |
| `AMBIGUOUS_MCP_PROJECT_TEMPLATES_APPLY` | Project templates apply | Create a new project from a template. Pass `{name, description}` in the body. |
| `AMBIGUOUS_MCP_PROJECT_TEMPLATES_CREATE` | Project templates create | Create a project template. |
| `AMBIGUOUS_MCP_PROJECT_TEMPLATES_DELETE` | Project templates delete | Delete a project template. |
| `AMBIGUOUS_MCP_PROJECT_TEMPLATES_GET` | Project templates get | Get a single project template. |
| `AMBIGUOUS_MCP_PROJECT_TEMPLATES_LIST` | Project templates list | List project templates in the workspace. |
| `AMBIGUOUS_MCP_PROJECT_UPDATES_DELETE` | Project updates delete | Delete a status update. Author or admin only. |
| `AMBIGUOUS_MCP_PROJECT_UPDATES_EDIT` | Project updates edit | Edit a status update. Author or admin only. |
| `AMBIGUOUS_MCP_PROTECT_RANGE` | Protect range | Protect a range in a spreadsheet. Protected ranges restrict editing to users in editorUserIds. Set warningOnly to true for soft warnings instead of hard blocks. |
| `AMBIGUOUS_MCP_PUBLISH_CALENDAR` | Publish calendar | Publish a calendar as a public read-only .ics feed URL (no auth required). Returns a shareable feed URL that anyone can subscribe to from Google/Apple/Outlook Calendar. Anyone holding the URL can read every event on the calendar until it is unpublished or its URL is rotated. |
| `AMBIGUOUS_MCP_PUBLISH_FORM` | Publish form | Publish a form so it accepts public responses. Semantic shortcut for PATCH /api/forms/{id} with is_published=true; same validation (every field needs a non-empty label). |
| `AMBIGUOUS_MCP_QUERY_WIKI_DATABASE` | Query wiki database | Query rows from an inline database with optional view, filter, and sort. Returns paginated results. |
| `AMBIGUOUS_MCP_REALTIME_EXCHANGE_CONNECTION_CAPABILITY` | Realtime exchange connection capability | Exchange the caller's normal credential (JWT or `ak_` API key) for a short-lived realtime connection capability scoped to exactly the caller's own workspace and credential session. Takes no input — workspace, principal and session are read off the authenticated credential, never a request field, so the endpoint has no field a caller could set to another principal's value. The capability names no resource, channel or operation: object-scoped channels each need their own resource capability, and every durable mutation is independently re-authorized API-side. Refused with 429 + `Retry-After` when the per-principal rate budget or this instance's concurrent database-admission budget is exhausted. |
| `AMBIGUOUS_MCP_REALTIME_EXCHANGE_RESOURCE_CAPABILITY` | Realtime exchange resource capability | Exchange the caller's normal credential for a short-lived capability over ONE object-scoped channel. The caller names the channel; it never names its own authority — the granted operations are resolved from the caller's real role on that object through the same `can()` seam the REST surface authorizes with, so the capability and a later durable commit cannot disagree about what this principal may do. `operations` may narrow that set and may never widen it: a request naming an operation the caller does not hold is refused rather than quietly reduced, because a clamped token lets a client believe it may write and discover otherwise only as frames dropped at the edge. An object the caller cannot reach answers 404 exactly as an absent one does. |
| `AMBIGUOUS_MCP_RECALCULATE_LEAD_SCORES` | Recalculate lead scores | Recalculate lead scores for all contacts in the workspace. Use this after creating or updating scoring rules so existing contacts pick up the new scoring. |
| `AMBIGUOUS_MCP_REGISTER_CUSTOM_DOMAIN` | Register custom domain | Register a custom email domain as a pending row; ownership must be verified via DNS TXT before sending is enabled. Requires admin role. |
| `AMBIGUOUS_MCP_REMOVE_ACCESS` | Remove access | Remove a named grant, pending invitation or link access on a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar. Give exactly one user_id, team_id, pending_share_id (unaccepted invitation), or link=true (restricts the link tier; unavailable on calendars). To remove broad access while retaining explicit collaborators use set_visibility(visibility=restricted), not Everyone removal. |
| `AMBIGUOUS_MCP_REMOVE_FORWARDING_ADDRESS` | Remove forwarding address | Remove a forwarding address |
| `AMBIGUOUS_MCP_REMOVE_PIPELINE_MEMBER` | Remove pipeline member | Remove a user or team from a CRM pipeline. The principalId is the user_id or team_id of the member to remove. |
| `AMBIGUOUS_MCP_REMOVE_ROLE` | Remove role | Remove a role from a user. Requires admin role. |
| `AMBIGUOUS_MCP_REMOVE_SHARED_DRIVE_MEMBER` | Remove shared drive member | Remove a shared drive member (manager-only; cannot remove last manager). |
| `AMBIGUOUS_MCP_REMOVE_SHEET_COLUMN` | Remove sheet column | Remove a column from a sheet tab by column ID. Use `?sheet=` to target a tab other than the first. |
| `AMBIGUOUS_MCP_REMOVE_SHEET_TAB` | Remove sheet tab | Remove a sheet tab by name. Cannot remove the last remaining tab. |
| `AMBIGUOUS_MCP_REMOVE_SLIDE` | Remove slide | Remove the slide at the given zero-based index. |
| `AMBIGUOUS_MCP_REMOVE_TASK_ATTACHMENT` | Remove task attachment | Remove a file attachment from a task. Does not delete the Drive file. |
| `AMBIGUOUS_MCP_RENAME_DOCUMENT_VERSION` | Rename document version | Rename a version snapshot of a document. Useful for labeling meaningful versions (e.g., "Pre-launch draft", "Board approved"). Requires editor permission. |
| `AMBIGUOUS_MCP_RENAME_SHEET_TAB` | Rename sheet tab | Rename an existing sheet tab. |
| `AMBIGUOUS_MCP_REORDER_MAIL_LABELS` | Reorder mail labels | Reorder the mail labels shown in the sidebar. |
| `AMBIGUOUS_MCP_REORDER_MAIL_RULES` | Reorder mail rules | Reorder the mail rules to change which runs first. |
| `AMBIGUOUS_MCP_REORDER_SLIDES` | Reorder slides | Reorder slides in a presentation. Provide the full list of slide indices in the desired new order. Example: [2, 0, 1, 3] moves the third slide to the front. |
| `AMBIGUOUS_MCP_REPLACE_NAMED_RANGE_CONTENT` | Replace named range content | Replace all content within a named range with new content. Used for template-based document generation — define named ranges as placeholders, then call this to fill each one. The named range must have positional anchors (startNodeId/endNodeId). Content can be Markdown text or PM JSON. Returns 409 if the anchored nodes no longer exist (stale range after CRDT edits). |
| `AMBIGUOUS_MCP_REPLACE_SHAPES_WITH_IMAGE` | Replace shapes with image | Replace text placeholder elements with an image across all slides. Finds text elements whose text matches the search string and replaces them with image elements at the same position and size. Like Google Slides ReplaceAllShapesWithImage — useful for template-based workflows where placeholder shapes like {{logo}} are swapped with actual images. |
| `AMBIGUOUS_MCP_REPLACE_SHEET_TAB` | Replace sheet tab | Replace a sheet tab's columns and/or rows wholesale. Use for bulk data replacement. Use update_cells for surgical edits. |
| `AMBIGUOUS_MCP_REQUEST_ACCESS` | Request access | Ask the owner of a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar, task, project, or CRM pipeline for access at a role higher than any you hold. Documents, Drive items and wiki pages offer viewer, commenter and editor; forms and calendars viewer and editor; projects commenter and editor; tasks editor; pipelines member. Returns 409 while a request is already open. |
| `AMBIGUOUS_MCP_RESCHEDULE_SCHEDULED_EMAIL` | Reschedule scheduled email | Change the delivery time of a pending scheduled email without changing its content. |
| `AMBIGUOUS_MCP_RESEND_FORWARDING_VERIFICATION` | Resend forwarding verification | Resend verification email |
| `AMBIGUOUS_MCP_RESTORE_FILE` | Restore file | Restore a file from trash. Needs the owner rung (the owner, the owner of a folder above it, or a manager of its shared drive); a caller who can see the file without it gets 403. |
| `AMBIGUOUS_MCP_RESTORE_SHEET_STRUCTURE` | Restore sheet structure | Undo or redo a structural change receipt without overwriting unrelated later edits. |
| `AMBIGUOUS_MCP_RESTORE_TASK` | Restore task | Restore a soft-deleted task when the caller has task editor access. |
| `AMBIGUOUS_MCP_RESTORE_WIKI_SYNCED_BLOCK` | Restore wiki synced block | Restore a previously deleted synced block. Embedding pages will render the block again instead of showing error chips. |
| `AMBIGUOUS_MCP_RESUME_COWORKER` | Resume coworker | Resume a paused coworker. |
| `AMBIGUOUS_MCP_REVERT_WIKI_PAGE_VERSION` | Revert wiki page version | Revert a wiki page to a previous version snapshot. This replaces the current content with the version's content and rebuilds the page's collaborative state from it. A snapshot of the current state is automatically created before reverting. This is destructive for the in-progress edit — always confirm with the user first. |
| `AMBIGUOUS_MCP_REVOKE_API_KEY` | Revoke api key | Revoke an API key. Immediate — any requests using the key will fail. Requires admin role. |
| `AMBIGUOUS_MCP_REVOKE_IDENTITY_API_KEY` | Revoke identity api key | Revoke (permanently delete) one of the calling user's own API keys. 404 if the key doesn't belong to the calling user. Returns 204 No Content on success. |
| `AMBIGUOUS_MCP_ROTATE_CALENDAR_PUBLISH_URL` | Rotate calendar publish url | Rotate a published calendar's read-only subscription URL. The previous URL is revoked immediately. |
| `AMBIGUOUS_MCP_RSVP_EMAIL_INVITE` | Rsvp email invite | RSVP to a calendar invite on an email. |
| `AMBIGUOUS_MCP_RSVP_EVENT` | Rsvp event | RSVP to a calendar event that the user is invited to. Use this when the user asks to accept, decline, or mark tentative on an event invitation. |
| `AMBIGUOUS_MCP_RUN_DATA_CONNECTOR` | Run data connector | Execute a data connector: fetch the latest data and write it to the connector's target cells. Returns the connector with updated last-run metadata. |
| `AMBIGUOUS_MCP_SAVE_MESSAGE` | Save message | Bookmark an EXISTING chat message in the current user's private Later/saved list. Resolve the original message_id with search_chat_messages or get_channel_messages when it is not supplied. Does not post or copy a message, and does not set a timed reminder (use set_reminder for that). Saving an already-saved message is a no-op. |
| `AMBIGUOUS_MCP_SCAN_BUSINESS_CARD` | Scan business card | OCR a photo of a business card and extract structured contact fields (name, title, company, email, phone, website, address, notes). Returns JSON with each field nullable when not present on the card. Use when the user uploads or references a business card image and wants to add the contact to CRM. The image must be passed as a base64 data URL (data:image/jpeg;base64,...) of an image format Gemini Vision supports (JPEG, PNG, WebP, HEIC). Max 6 MB. |
| `AMBIGUOUS_MCP_SEARCH_CALENDAR_EVENTS` | Search calendar events | Full-text search across all calendar events for the current workspace. Returns matching events with id, title, start/end times, and calendar info. Use this when the user asks to find a specific event by name or description keyword. |
| `AMBIGUOUS_MCP_SEARCH_CHAT_MESSAGES` | Search chat messages | Find existing chat messages by keyword, phrase, or topic across the caller's accessible channels. Results include the message id and channel context needed to bookmark, remind, react, reply, or edit that message. Use channel_id to restrict the search to a known channel; this read does not post messages. |
| `AMBIGUOUS_MCP_SEARCH_MAIL` | Search mail | Full-text + operator search (Gmail-style: from:, to:, cc:, bcc:, subject:, has:attachment, is:read\|unread\|starred, in:inbox\|sent\|drafts\|trash\|archive, label:, after:YYYY-MM-DD, before:YYYY-MM-DD, size:N, larger:N, smaller:N, "phrase"). cc:/bcc: filter by recipient type. size:/larger:/smaller: filter by body byte size. |
| `AMBIGUOUS_MCP_SEARCH_PALETTE` | Search palette | Cross-module command-palette search — every module including chat messages. `q` is the query string; `limit` caps results (default 30, max 50). Empty query returns an empty response. Module diversity is preserved. `counts` carries the per-module match total before the per-module cap. |
| `AMBIGUOUS_MCP_SEARCH_WIKI` | Search wiki | Case-insensitive substring search across wiki page titles and Markdown content. Returns only pages the caller can view under the effective page-to-space permission rules, with id, title, space, and content snippets. Use this when the user asks to find information in the wiki, look up documentation, or search the knowledge base. More efficient than reading individual pages. |
| `AMBIGUOUS_MCP_SEARCH_WORKSPACE` | Search workspace | Search across every module in the user's workspace (docs, sheets, slides, canvas, tasks, contacts, deals, channels, chat messages, wiki, forms, calendar, users, mail, files, teams, and saved Analytics reports for callers who can read them). Returns a flat list of results with module-aware metadata, plus `counts` — the per-module match total before the per-module cap. Optional module filter narrows the search to one or more modules; `sort` picks relevance or recency. Use this when the user asks to find something but you don't know which module it lives in. |
| `AMBIGUOUS_MCP_SEND_DRAFT_EMAIL` | Send draft email | Send a previously created draft email. The draft transitions from the drafts folder to sent, SES delivery is triggered, and recipient inbox copies are created. Use this when the user wants to send a draft they previously saved. A send is not always a delivery: when the sender is an agent limited to workspace recipients and any To/Cc/Bcc address is external, the WHOLE email is queued for a human decision instead of being sent — the response carries `delivery_status: pending_approval` and `pending_approval.review_id`, and nothing has reached the recipients. Report that state; do not report it as sent, and do not re-send it. |
| `AMBIGUOUS_MCP_SEND_EMAIL` | Send email | Send an email from the current user. The body is written in Markdown and automatically converted to a beautifully formatted HTML email for delivery. Use this when the user asks to send an email, message someone, or share something via email. Supports to, cc, and bcc recipients. Recipients are specified by email address. A send is not always a delivery: when the sender is an agent limited to workspace recipients and any To/Cc/Bcc address is external, the WHOLE email is queued for a human decision instead of being sent — the response carries `delivery_status: pending_approval` and `pending_approval.review_id`, and nothing has reached the recipients. Report that state; do not report it as sent, and do not re-send it. |
| `AMBIGUOUS_MCP_SEND_MESSAGE` | Send message | Post a NEW message visible to the chat channel's members, or send a thread reply. Use for requested communication, not for finding, bookmarking, or reminding about an existing message: those actions use search_chat_messages/get_channel_messages then save_message/set_reminder on the returned message id. Content is Markdown with @mentions, code blocks, and links. Use the current channel ID when supplied by page context. To reply, set thread_id to the original parent message's id. To attach a file, upload it with drive_file_upload_proxy (source=chat) and include [name](drive://) in content. |
| `AMBIGUOUS_MCP_SEND_QUOTE` | Send quote | Send a CRM quote via email to the contact. Marks the quote as 'sent'. By default, sends to the linked contact's email address. |
| `AMBIGUOUS_MCP_SEND_SCHEDULED_MESSAGE_NOW` | Send scheduled message now | Deliver a pending scheduled message immediately instead of waiting for its scheduled time. Flips the message to sent and fans it out to the channel right now. Fails if the message has already been sent or cancelled. Use this when the user wants to send a queued message without waiting. |
| `AMBIGUOUS_MCP_SEND_TEST_NOTIFICATION_EMAIL` | Send test notification email | Send a test notification email (useful for checking email rendering and deliverability). Requires admin role. |
| `AMBIGUOUS_MCP_SET_CHANNEL_ARCHIVED` | Set channel archived | Archive or unarchive a chat channel. Archiving freezes writes for everyone. Requires the same administrative authority as the individual archive and unarchive actions. |
| `AMBIGUOUS_MCP_SET_CHANNEL_MUTED` | Set channel muted | Mute or unmute a chat channel for yourself, including DMs, temporarily or indefinitely. Muting silences ordinary message, keyword and subscribed-thread alerts and removes the channel-presence badge contribution; direct mentions and broadcasts still reach you. This changes the channel mute setting, not its notification preference or a delivery-suppression rule. muted=true optionally accepts until or duration_ms; omit both for indefinite mute. muted=false cannot include timing fields. |
| `AMBIGUOUS_MCP_SET_DECK_FONTS` | Set deck fonts | Set the heading and/or body font across a whole presentation: every text box, shape and table on every slide and master, group children and per-run rich-text fonts included. Text at 28px or larger takes the heading font; smaller text and tables take the body font. Fonts are a closed list. The saved deck is re-read before responding: a 409 means some elements still use another font, so the change is incomplete and must not be reported as done. |
| `AMBIGUOUS_MCP_SET_DEFAULT_SEND_AS` | Set default send as | Set the user's default send-as address. |
| `AMBIGUOUS_MCP_SET_DOCS_PAGE_LAYOUT_DEFAULT` | Set docs page layout default | Set the caller's default layout for new Docs (`pageless_default: true` = pageless, `false` = pages). Affects only Docs created afterwards; existing Docs keep their layout. |
| `AMBIGUOUS_MCP_SET_DOCUMENT_FOOTNOTES` | Set document footnotes | Set footnote body content on a document. Replaces all existing footnoteBody nodes. Each footnote must have a footnoteId and either a text string (auto-wrapped in a paragraph) or a content array (PM JSON). To add inline footnote references in the body text, use update_document with PM JSON content containing footnoteRef nodes with matching footnoteIds. |
| `AMBIGUOUS_MCP_SET_DOCUMENT_HEADERS_FOOTERS` | Set document headers footers | Set default, first-page, and even-page headers and footers. Each field accepts a plain text string (auto-wrapped in a paragraph), a ProseMirror JSON node, or null to remove. Omit a field to leave unchanged. |
| `AMBIGUOUS_MCP_SET_EMAIL_ARCHIVED` | Set email archived | Archive an email or return it to the inbox. archived=true archives; false unarchives. Existing mailbox access rules apply. |
| `AMBIGUOUS_MCP_SET_EMAIL_SIGNATURE` | Set email signature | Set the workspace default email signature. Pass null (or omit markdown) to clear. Requires admin role. |
| `AMBIGUOUS_MCP_SET_MAIL_SIGNATURE` | Set mail signature | Set personal email signature. Pass null to clear. |
| `AMBIGUOUS_MCP_SET_MAIL_THREAD_ASSIGNEE` | Set mail thread assignee | Assign a shared-mailbox conversation to a member, or clear its assignment with user_id=null. Does not change its folder. |
| `AMBIGUOUS_MCP_SET_MAIL_THREAD_MUTED` | Set mail thread muted | Mute or unmute a mail conversation. muted=true moves it out of the inbox and keeps future replies muted; false restores it. mailbox_id selects a shared mailbox. |
| `AMBIGUOUS_MCP_SET_NOTIFICATION_KEYWORDS` | Set notification keywords | Replace the current user's notification keyword list. Keywords are case-insensitive, whole-word, and capped at 20 entries (each up to 50 characters). Duplicates/empties are dropped. Use this when the user says 'alert me whenever someone mentions X' or 'stop notifying me about Y'. |
| `AMBIGUOUS_MCP_SET_PINNED_HEADER_ROWS` | Set pinned header rows | Set the number of pinned (repeating) header rows on a table in a document. Pinned header rows repeat on every printed page when the table spans multiple pages in exported .docx and .pdf files. Set to 0 to clear the pinned header rows attribute. |
| `AMBIGUOUS_MCP_SET_REACTION` | Set reaction | Add or remove your emoji reaction on a chat message or a document, task, wiki, mail-thread or Code comment. The target is resolved from ID. present=true adds; false removes. Existing parent visibility, workspace custom-emoji rules, broadcast-message identity, and missing-reaction errors apply. |
| `AMBIGUOUS_MCP_SET_READ_RECEIPTS_DEFAULT` | Set read receipts default | Toggle the default for new compose windows |
| `AMBIGUOUS_MCP_SET_REMINDER` | Set reminder | Remind only the signed-in user about an existing chat message at a future time. A channel named in a personal reminder request locates the source message; it is not an audience or a request to post there. When message_id is unknown, first find the original with search_chat_messages or get_channel_messages; an unknown ID does not mean the message is absent. If the target cannot be identified, ask for clarification instead of publishing a replacement. Automatically bookmarks the original in Later. remind_at is an ISO 8601 datetime and must be in the future. |
| `AMBIGUOUS_MCP_SET_RESOURCE_STARRED` | Set resource starred | Add or remove favorites (star/unstar) for documents, spreadsheets, presentations, canvases, Drive items, forms, channels or teams. Resource type is resolved from ID; existing starring/access rules apply. Tasks-sidebar view/project pins use tasks_favorites_add/remove instead. |
| `AMBIGUOUS_MCP_SET_SHEET_VALIDATION` | Set sheet validation | Set a data-validation rule on a spreadsheet cell range in A1 notation. Supports dropdown/range lists, numeric/text/date conditions, checkbox values, and custom formulas. Numeric constraints use JSON numbers, not numeric strings. Strict configures invalid-entry rejection rather than warnings in the editor; API cell writes do not enforce these rules. |
| `AMBIGUOUS_MCP_SET_SNOOZE_PRESETS` | Set snooze presets | Set the user's custom snooze quick-presets (up to 10). Pass an empty array to reset to defaults. |
| `AMBIGUOUS_MCP_SET_SWIPE_ACTIONS` | Set swipe actions | Set the caller's own mail-row swipe actions — one action per direction, chosen from archive, trash, read, star, snooze. |
| `AMBIGUOUS_MCP_SET_TASK_ARCHIVED` | Set task archived | Archive or unarchive a task. Archive is separate from Trash; archived=false does not restore a trashed task. Existing project and task permissions apply. |
| `AMBIGUOUS_MCP_SET_TASK_SUBSCRIPTION` | Set task subscription | Subscribe or unsubscribe yourself from a task's notifications. When subscribed=true, user_id may select another subscriber under the existing subscription rules; unsubscribe applies only to yourself. Subscription does not grant task access. |
| `AMBIGUOUS_MCP_SET_UNDO_SEND_SETTING` | Set undo send setting | Set undo-send duration (seconds). |
| `AMBIGUOUS_MCP_SET_USER_DND` | Set user dnd | Enable or disable Do-Not-Disturb for the current user. Pass an ISO-8601 timestamp in the future to snooze notifications until that time, or pass null to disable DND immediately. Use this when the user says 'mute me for an hour', 'DND until 5pm', or 'turn off DND'. |
| `AMBIGUOUS_MCP_SET_USER_STATUS` | Set user status | Set the current user's chat status — an emoji, short text (<=100 chars), and optional auto-clear timestamp. All fields are optional; pass null to clear a single field. Use this when the user says things like 'set my status to lunch until 1pm' or 'I'm on vacation'. |
| `AMBIGUOUS_MCP_SET_VACATION_SETTINGS` | Set vacation settings | Update vacation auto-reply settings. |
| `AMBIGUOUS_MCP_SET_VISIBILITY` | Set visibility | Set broad access to a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar: restricted removes broad tiers but keeps owner and explicit collaborators; workspace covers current/future workspace humans and agents at workspaceRole; link/public use linkPermission, optionally behind linkPassword until linkExpiresAt. Use this for Everyone/workspace access, not individual grants or the Everyone entry. Calendars allow only restricted/workspace; forms publish responder links separately. Unsupported fields are rejected. |
| `AMBIGUOUS_MCP_SHARED_WITH_ME_HIDE` | Shared with me hide | Hide one row from the caller's own Shared-with-me list. Revokes nothing — the grant is untouched and the resource stays reachable by its id or link; only the list entry goes. 404 when the caller holds no live grant or the key lacks that resource's read scope. Idempotent. |
| `AMBIGUOUS_MCP_SHARED_WITH_ME_LIST` | Shared with me list | Everything shared with the calling account through a direct grant, a team grant, or a bound external grant, across docs / sheets / slides, Drive, Wiki, Forms and Calendar — and across every workspace and identity the account owns. Excludes what the account owns, and excludes workspace-tier access, which is standing authority rather than a share. An API key sees only resource families within its read scopes. Newest share first. `scope=workspace` narrows discovery to resources in the authenticated current workspace without changing access. |
| `AMBIGUOUS_MCP_SHARED_WITH_ME_UNDO_LEAVE` | Shared with me undo leave | Undo a "Remove me": restore the exact grant the caller removed, from the `undo_token` the leave call returned. The token is bound to the caller, single-use, and lasts ten minutes. An outside grant is re-checked against the workspace's current outside-sharing policy. 400 `undo_token_invalid` / `undo_token_expired` / `undo_token_used`; 403 `outside_sharing_off` / `outside_sharing_domain_not_allowed`; 404 when the resource is gone or the key lacks its read scope. |
| `AMBIGUOUS_MCP_SHEET_GET_DATA` | Sheet get data | Get the spreadsheet as the structured JSON canvas. Returns the `Sheet` envelope: top-level metadata plus the structured sheet body nested under `data` (see `SheetData`). Read the tab list as `response.data.sheets`; columns and rows are under `response.data.sheets[0]`, not at the response root. |
| `AMBIGUOUS_MCP_SHEET_UPDATE_CELLS` | Sheet update cells | Update specific cells in a spreadsheet. Provide an array of cell updates, each specifying the row index (0-based), column ID, and new value. If the user is currently viewing a sheet, use the sheet ID from the page context. |
| `AMBIGUOUS_MCP_SIGN_ADD_FIELD` | Sign add field | Add a signature field to a signing document. |
| `AMBIGUOUS_MCP_SIGN_ADD_SIGNER` | Sign add signer | Add a signer or CC recipient. An agent user can be a CC recipient but never a signer; adding one as a signer is refused. |
| `AMBIGUOUS_MCP_SIGN_GET_CERTIFICATE` | Sign get certificate | Download the Certificate of Completion for a completed document. |
| `AMBIGUOUS_MCP_SIGN_GET_REFERENCES` | Sign get references | List signing documents that use this document as a source. |
| `AMBIGUOUS_MCP_SIGN_PREPARE_SEND` | Sign prepare send | Validate signers and render the PDF preview (draft → preview_pending). |
| `AMBIGUOUS_MCP_SIGN_REMOVE_FIELD` | Sign remove field | Remove a field from a signing document. |
| `AMBIGUOUS_MCP_SIGN_REMOVE_SIGNER` | Sign remove signer | Remove a signer or CC recipient from a draft signing document. |
| `AMBIGUOUS_MCP_SIGN_REORDER_SIGNERS` | Sign reorder signers | Atomically set the sequential signing order: the full ordered list of the document's signer-role ids. Draft only. |
| `AMBIGUOUS_MCP_SIGN_UPDATE_FIELD` | Sign update field | Reassign, reposition, resize, or change requiredness for a field on a draft signing document. The field id is stable — updates never re-create the field. |
| `AMBIGUOUS_MCP_SIGN_VERIFY_DOCUMENT` | Sign verify document | Verify the integrity and signature of a completed document. |
| `AMBIGUOUS_MCP_SLIDE_APPLY_TEMPLATE` | Slide apply template | Apply a slide template — built-in or workspace — to the deck or to a single slide. |
| `AMBIGUOUS_MCP_SLIDE_LAYOUTS_LIST` | Slide layouts list | List the slide-level layouts the editor knows about. |
| `AMBIGUOUS_MCP_SLIDE_SAVE_AS_TEMPLATE` | Slide save as template | Save an existing deck as a reusable workspace template. Deep-copies the deck with fresh element IDs into a new workspace-visible template document; the source deck is left untouched. Returns the new template's ID. |
| `AMBIGUOUS_MCP_SLIDE_STAR` | Slide star | Star a deck. Idempotent — re-starring is a no-op. |
| `AMBIGUOUS_MCP_SLIDE_STARS_LIST` | Slide stars list | List IDs of slide decks the current user has starred. |
| `AMBIGUOUS_MCP_SLIDE_TEMPLATES_LIST` | Slide templates list | List the built-in slide deck templates. |
| `AMBIGUOUS_MCP_SLIDE_UNSTAR` | Slide unstar | Unstar a deck. Idempotent. |
| `AMBIGUOUS_MCP_SLIDE_USE_TEMPLATE` | Slide use template | Start a new deck from a template — built-in or workspace. Deep-copies the template deck with fresh element IDs into a new deck, substitutes `{{key}}` placeholders to bracketed prompts (e.g. `{{client_name}}` → `[Client Name]`), and returns the new deck's ID. |
| `AMBIGUOUS_MCP_SNOOZE_EMAIL` | Snooze email | Snooze an email until a datetime. |
| `AMBIGUOUS_MCP_SNOOZE_REMINDER` | Snooze reminder | Re-snooze an existing saved message by updating its remind_at time. Resets reminded to false so the scheduler picks it up again. Accepts ISO 8601 datetime string; must be in the future. |
| `AMBIGUOUS_MCP_SORT_SHEET` | Sort sheet | Sort a tab's rows by one column, optionally within an exact filter range. Re-anchors formulas, comment anchors, and cell notes so nothing orphans. |
| `AMBIGUOUS_MCP_START_TASK_TIMER` | Start task timer | Start a time-tracking timer on a task for the current user. If another timer is already running for this user, it is stopped automatically (only one active timer per user). |
| `AMBIGUOUS_MCP_STOP_TASK_TIMER` | Stop task timer | Stop the current user's active timer. The duration is accumulated onto the task's time_spent_minutes total. Returns null if no timer is active. |
| `AMBIGUOUS_MCP_SUBMIT_FEEDBACK` | Submit feedback | Tell Ambiguous what happened in your own words. Only description is required; do not choose a report category or supply a goal outcome. Optional context and attachments are welcome, never required. Ambiguous handles classification and triage. Accepts unauthenticated REST calls; valid credentials optionally identify the submitter. Rate-limited per user when authenticated and per IP otherwise. Body shape: `{title?, description, priority?, screenshotDataUrl?, attachments?, context?}` — see `FeedbackInput`. The submission is stored as a task in Ambiguous's own Feedback project and the 200 carries that task's id as the receipt; there is no receipt without a record, so a storage failure is a 500 and the caller should retry. Returns 503 with `{error: "Feedback reporting not available"}` when the intake is not configured (outside the contract error-code enum, surfaced via raw Response). |
| `AMBIGUOUS_MCP_SUBMIT_FORM` | Submit form | Submit a response to a published form, identified by its public slug or form ID. Data is a map keyed by field ID with user answers. Use when an agent is filling out a form on behalf of a user or when completing a structured data-entry task. |
| `AMBIGUOUS_MCP_TASK_ASSET_CREATE` | Task asset create | Add an image to a task description as one of its own assets and get back the URL its body should store (`/api/assets/{id}/content`). Send the bytes as `content_base64`, `source_file_id` to copy a Drive file the caller can view, or `source_url` to import a public HTTPS image through the SSRF guard; neither source is referenced afterwards. The type is decided from the bytes and only images are accepted (415 otherwise); SVG uploads are sanitized before storage and refused with 415 when malformed. Stored SVG is sanitized on every read and served inline as image/svg+xml under a restrictive Content-Security-Policy; malformed stored SVG is refused with 404. Drive SVG downloads remain attachments. The bytes count against the container owner's storage (413 past it). The same image added to the same container again returns the asset already held. The asset is never visible in Drive and is readable exactly when the container is. |
| `AMBIGUOUS_MCP_TASK_COLLABORATORS_ADD` | Task collaborators add | Share a task with one workspace member: grants `editor` on this task and its subtasks (never on its project) and subscribes them. A projectless task is shared by its creator or assignee; a project task by an editor on that project. |
| `AMBIGUOUS_MCP_TASK_COLLABORATORS_LIST` | Task collaborators list | List the collaborators on a task — the people holding `editor` on it (and its subtasks) without a role on its project. |
| `AMBIGUOUS_MCP_TASK_COLLABORATORS_REMOVE` | Task collaborators remove | Revoke a task collaborator's grant. The add-time subscription is left in place — it grants no access on its own. |
| `AMBIGUOUS_MCP_TASKS_ACTIVITY` | Tasks activity | List audit-log activity entries for a task (status changes, assignments, comments, label edits, etc.). Paginated via `limit`/`offset`. |
| `AMBIGUOUS_MCP_TASKS_BATCH` | Tasks batch | Batch-fetch up to 50 tasks by ID. Powers LinkedTaskItem hydration in Docs/Wiki. |
| `AMBIGUOUS_MCP_TASKS_BY_KEY` | Tasks by key | Resolve a workspace-scoped task key (e.g. `WS-123`) to its task ID. Used by deep links and integrations. |
| `AMBIGUOUS_MCP_TASKS_DELETE` | Tasks delete | Soft-delete a task. Only the creator can delete. |
| `AMBIGUOUS_MCP_TASKS_EXPORT` | Tasks export | Export authorized tasks matching the selected filters as CSV (default) or JSON. CSV includes human-readable columns and a task_json column containing the complete public task representation. Owned description images are embedded; an unavailable or malformed owned image refuses the export with its task reference. |
| `AMBIGUOUS_MCP_TASKS_FAVORITES_ADD` | Tasks favorites add | Pin a saved task view or project in your Tasks sidebar. For document, Drive, channel or team favorites, use set_resource_starred. |
| `AMBIGUOUS_MCP_TASKS_FAVORITES_LIST` | Tasks favorites list | List your Tasks-sidebar pins: saved views and projects, not starred documents, Drive items, channels or teams. |
| `AMBIGUOUS_MCP_TASKS_FAVORITES_REMOVE` | Tasks favorites remove | Unpin a saved task view or project from your Tasks sidebar, matching resource_type and resource_id. For other resource favorites, use set_resource_starred. |
| `AMBIGUOUS_MCP_TASKS_FAVORITES_REORDER` | Tasks favorites reorder | Reorder your Tasks-sidebar view/project pins using ordered_ids (favorite-row IDs, top-to-bottom), not resource IDs. |
| `AMBIGUOUS_MCP_TASKS_INBOX_COUNT` | Tasks inbox count | Count of triage-bucket tasks (untriaged + projects in 'triage' status). Powers the sidebar inbox badge. |
| `AMBIGUOUS_MCP_TASKS_LABELS_ASSIGN` | Tasks labels assign | Assign a label to a task. Returns the task's full label list. |
| `AMBIGUOUS_MCP_TASKS_LABELS_CREATE` | Tasks labels create | Create a workspace task label. Returns 409 if a label with the same name already exists in the group. |
| `AMBIGUOUS_MCP_TASKS_LABELS_DELETE` | Tasks labels delete | Delete a task label. Existing assignments are removed. |
| `AMBIGUOUS_MCP_TASKS_LABELS_LIST` | Tasks labels list | List task labels visible in the workspace, grouped by `group_name`. Without `project_id`, returns workspace-level labels only. With `project_id`, returns workspace-level labels plus labels scoped to that project. |
| `AMBIGUOUS_MCP_TASKS_LABELS_REMOVE` | Tasks labels remove | Remove a label assignment from a task. Returns the task's remaining label list. |
| `AMBIGUOUS_MCP_TASKS_LABELS_UPDATE` | Tasks labels update | Update a task label. |
| `AMBIGUOUS_MCP_TASKS_PR_LINKS` | Tasks pr links | List GitHub pull requests linked to a task (via the integration-links service). |
| `AMBIGUOUS_MCP_TASKS_RELATIONS_BATCH` | Tasks relations batch | Batch-fetch every relation type for up to 200 tasks. Powers relation overlays and sweeps. |
| `AMBIGUOUS_MCP_TASKS_RELATIONS_CREATE` | Tasks relations create | Create a relation between two tasks. `blocking`/`blocked_by` auto-creates the inverse edge. With `type=duplicate, mark_as_duplicate=true` the source task is cancelled with a system comment. |
| `AMBIGUOUS_MCP_TASKS_RELATIONS_DELETE` | Tasks relations delete | Delete a task relation edge. Auto-deletes the inverse edge for blocking/blocked_by pairs. |
| `AMBIGUOUS_MCP_TASKS_RELATIONS_LIST` | Tasks relations list | List edges in the task-relations graph for a task (related, blocking, blocked_by, duplicate). |
| `AMBIGUOUS_MCP_TASKS_REMOVE_SUBSCRIBER` | Tasks remove subscriber | Remove another user's subscription from a task. Requires task access. |
| `AMBIGUOUS_MCP_TASKS_SLA_DASHBOARD` | Tasks sla dashboard | Aggregate SLA metrics for the workspace (compliance rates, avg times, counts per status). Optionally scope to a project. |
| `AMBIGUOUS_MCP_TASKS_SLA_THRESHOLDS` | Tasks sla thresholds | Get the workspace's SLA thresholds (response + resolution times per priority). Auth-only. |
| `AMBIGUOUS_MCP_TASKS_SUBSCRIBED` | Tasks subscribed | List task IDs the caller is subscribed to (manual + auto-subscribed via creator/assignee/comment). |
| `AMBIGUOUS_MCP_TASKS_SUBSCRIPTIONS_LIST` | Tasks subscriptions list | List all users subscribed to a task (with the reason each is subscribed). |
| `AMBIGUOUS_MCP_TASKS_SUBSCRIPTION_STATUS` | Tasks subscription status | Check whether the current user is subscribed to a task (and the reason if so). |
| `AMBIGUOUS_MCP_TASKS_SUBTASKS` | Tasks subtasks | List immediate subtasks of a task (`parent_task_id = :id`). |
| `AMBIGUOUS_MCP_TASKS_TEMPLATES_DELETE` | Tasks templates delete | Delete a task template. Workspace admins or project admins only. |
| `AMBIGUOUS_MCP_TASKS_TEMPLATES_GET` | Tasks templates get | Get a single task template by ID. |
| `AMBIGUOUS_MCP_TASKS_TEMPLATES_UPDATE` | Tasks templates update | Update a task template. Workspace admins or project admins only. |
| `AMBIGUOUS_MCP_TASKS_VIEWS_CREATE` | Tasks views create | Create a saved task view (filter + layout). Setting `is_shared: true` exposes it to the workspace. |
| `AMBIGUOUS_MCP_TASKS_VIEWS_DELETE` | Tasks views delete | Delete a saved task view. |
| `AMBIGUOUS_MCP_TASKS_VIEWS_LAYOUT_GET` | Tasks views layout get | Get the caller's layout preferences for a view, or fall back to the view's defaults. `source` indicates which. |
| `AMBIGUOUS_MCP_TASKS_VIEWS_LAYOUT_UPDATE` | Tasks views layout update | Upsert the caller's layout preferences for a view (per-project scope optional). |
| `AMBIGUOUS_MCP_TASKS_VIEWS_LIST` | Tasks views list | List task views accessible to the caller (own + shared + system defaults). |
| `AMBIGUOUS_MCP_TASKS_VIEWS_UPDATE` | Tasks views update | Update a saved task view (rename, change filters or layout defaults, toggle sharing). |
| `AMBIGUOUS_MCP_TEAMS_CANCEL_JOIN_REQUEST` | Teams cancel join request | Cancel your own pending join request for this team. |
| `AMBIGUOUS_MCP_TEAMS_GET_SUBSCRIPTION` | Teams get subscription | Get the caller's email-delivery preference for the team. Returns `{team_id, user_id, email_delivery}`. |
| `AMBIGUOUS_MCP_TEAMS_JOIN` | Teams join | Join a team. Open teams grant instant membership; request teams create a pending join request; invite teams reject. |
| `AMBIGUOUS_MCP_TEAMS_LEAVE` | Teams leave | Leave a team. Cannot leave if you're the last admin. |
| `AMBIGUOUS_MCP_TEAMS_MEMBERS_LIST` | Teams members list | Paginated member list. Private teams visible only to members or admins. |
| `AMBIGUOUS_MCP_TEAMS_MEMBERS_REMOVE` | Teams members remove | Remove a member. Admin only. Cannot remove the last admin. |
| `AMBIGUOUS_MCP_TEAMS_MEMBERS_UPDATE_ROLE` | Teams members update role | Change a member's role. Admin only. Cannot demote the last admin. |
| `AMBIGUOUS_MCP_TEAMS_REQUESTS_APPROVE` | Teams requests approve | Approve a join request — adds the user as a member. |
| `AMBIGUOUS_MCP_TEAMS_REQUESTS_DENY` | Teams requests deny | Deny a join request. |
| `AMBIGUOUS_MCP_TEAMS_REQUESTS_LIST` | Teams requests list | List pending join requests. Admin only. |
| `AMBIGUOUS_MCP_TEAMS_SEARCHABLE` | Teams searchable | Search teams visible to the caller for the share dialog. Returns the union of public teams and private teams where the caller is a member. Supports case-insensitive name filtering via `q` and a configurable `limit`. |
| `AMBIGUOUS_MCP_TEAMS_UPDATE_SUBSCRIPTION` | Teams update subscription | Update the caller's email-delivery preference for the team. Body: `{email_delivery: 'each' \| 'daily_digest' \| 'weekly_digest' \| 'none'}`. `none` is refused on the workspace-wide all-members list, which has no opt-out. |
| `AMBIGUOUS_MCP_TRANSFER_OWNERSHIP` | Transfer ownership | Make another principal owner of a document, spreadsheet, presentation, canvas, Drive item or form. The new owner needs a live explicit share: check list_access and do not re-grant an existing share. The previous owner keeps editor. Wiki and calendars cannot transfer ownership. |
| `AMBIGUOUS_MCP_TRASH_MAIL_THREAD` | Trash mail thread | Trash all messages in a thread atomically. Moves every message in the thread to the trash folder. |
| `AMBIGUOUS_MCP_UNBLOCK_SENDER` | Unblock sender | Unblock by id or pattern. |
| `AMBIGUOUS_MCP_UNDO_SEND_EMAIL` | Undo send email | Undo an in-flight send within the undo-send window. |
| `AMBIGUOUS_MCP_UNENROLL_CONTACT_FROM_SEQUENCE` | Unenroll contact from sequence | Permanently remove a contact from a CRM sequence (terminal — sets status to 'unenrolled'). The contact will not receive any further sequence steps. Returns 409 if already in a terminal status. Provide the enrollment ID (not the contact ID — find it via list_sequence_enrollments). |
| `AMBIGUOUS_MCP_UNFURL_LINK` | Unfurl link | Fetch OpenGraph / link-preview metadata for a URL (title, description, image, site name, favicon). Useful for generating rich previews of shared links, or inspecting what a URL would look like when shared in chat. Only http(s) URLs are allowed, and internal/private addresses are blocked. |
| `AMBIGUOUS_MCP_UNGROUP_SLIDE_ELEMENTS` | Ungroup slide elements | Dissolve a group element on a slide back into independent top-level elements. Children positions are converted from group-relative to absolute coordinates. The group element is removed and its former children become top-level elements on the slide. |
| `AMBIGUOUS_MCP_UNPROTECT_RANGE` | Unprotect range | Remove a protected range from a spreadsheet by its ID. Returns 200 on success, 404 if the range does not exist. |
| `AMBIGUOUS_MCP_UNPUBLISH_CALENDAR` | Unpublish calendar | Revoke the public .ics feed for a calendar, making it private again. |
| `AMBIGUOUS_MCP_UNPUBLISH_FORM` | Unpublish form | Unpublish a form so it stops accepting public responses. Semantic shortcut for PATCH /api/forms/{id} with is_published=false. |
| `AMBIGUOUS_MCP_UNSAVE_MESSAGE` | Unsave message | Remove a saved (bookmarked) message from the user's saved list. The message itself is untouched; only the personal bookmark is deleted. |
| `AMBIGUOUS_MCP_UNTRASH_EMAIL` | Untrash email | Restore a trashed email to inbox |
| `AMBIGUOUS_MCP_UNTRASH_MAIL_THREAD` | Untrash mail thread | Restore all trashed messages in a thread to inbox. Only affects messages currently in trash. |
| `AMBIGUOUS_MCP_UPDATE_ACCESS` | Update access | Change an existing named user/team grant on a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar. id names the resource; exactly one user_id or team_id names the recipient. For the workspace tier use set_visibility and workspaceRole, not the Everyone entry. role and expires_at are set exactly, including shorter expiry. |
| `AMBIGUOUS_MCP_UPDATE_API_KEY` | Update api key | Update an API key's name, scopes, or rate limit. Requires admin role. |
| `AMBIGUOUS_MCP_UPDATE_CANVAS` | Update canvas | Update canvas-level metadata (title, preview cover). Use to rename a canvas or set its preview; never touches elements — use the element ops for board content. Coordinates: board units, top-left origin, +x right / +y down. Example: update_canvas({ id: "", title: "Renamed board" }). |
| `AMBIGUOUS_MCP_UPDATE_CANVAS_TIMER` | Update canvas timer | Control a board's shared brainstorm countdown. Use to time-box a round: start (with duration_ms), pause (banks remaining time), resume (from banked time), or reset (clear). The server stamps `ends_at` from its own clock, so every participant renders the same countdown regardless of local clocks; the timer touches no elements. Coordinates: board units, top-left origin, +x right / +y down (unaffected by the timer). Example: update_canvas_timer({ id: "", action: "start", duration_ms: 300000 }) starts a 5-minute countdown. |
| `AMBIGUOUS_MCP_UPDATE_CHANNEL_MEMBER_ROLE` | Update channel member role | Change a channel member's role to 'admin' or 'member'. Requires channel admin privileges. Use this when the user asks to promote or demote a member in a channel. |
| `AMBIGUOUS_MCP_UPDATE_CHART` | Update chart | Patch a chart's config — type, title, data range, overlay position, or series styling. Only the fields you send are updated; the rest of the chart config is preserved. |
| `AMBIGUOUS_MCP_UPDATE_CONDITIONAL_FORMAT` | Update conditional format | Update a conditional formatting rule by ID. Partial update: ranges or one canonical rule payload; replacing the kind clears the previous kind. |
| `AMBIGUOUS_MCP_UPDATE_CONTACT` | Update contact | Update an existing CRM contact's fields. Provide only the fields you want to change. For interrupted sync recovery, read the contact and send expected_updated_at with only remaining changes. A 409 means the contact changed: read again and reconcile; never replay an earlier snapshot over newer values. If the user is currently viewing a contact, use the contact ID from the page context. |
| `AMBIGUOUS_MCP_UPDATE_CONTACT_GROUP` | Update contact group | Update an existing contact group's name, color, or sort order. Group name must remain unique within the workspace. |
| `AMBIGUOUS_MCP_UPDATE_COWORKER` | Update coworker | Update coworker metadata (persona, focus areas, display name, avatar). |
| `AMBIGUOUS_MCP_UPDATE_CRM_PROPERTY_DEFINITION` | Update crm property definition | Update a custom-property definition's label or select options. |
| `AMBIGUOUS_MCP_UPDATE_CRM_VIEW` | Update crm view | Update a saved CRM view (rename, change filters, toggle default/shared). |
| `AMBIGUOUS_MCP_UPDATE_DATA_CONNECTOR` | Update data connector | Update a data connector's name, config, target cells, or refresh schedule. |
| `AMBIGUOUS_MCP_UPDATE_DEAL` | Update deal | Update an existing CRM deal's fields. Provide only the fields you want to change. Use this to move a deal to a new stage, update the amount, mark as won/lost, etc. If the user is currently viewing a deal, use the deal ID from the page context. |
| `AMBIGUOUS_MCP_UPDATE_DEAL_LINE_ITEM` | Update deal line item | Update a deal line item (quantity, price, discount, name/description). Amount auto-recomputed. If sync_deal_amount defaults true, the deal's total is also refreshed. |
| `AMBIGUOUS_MCP_UPDATE_DEAL_TEMPLATE` | Update deal template | Update a deal template. Providing `line_items` replaces the entire line-item list. |
| `AMBIGUOUS_MCP_UPDATE_DECK_SETTINGS` | Update deck settings | Update deck-level settings: theme, aspect ratio, default background. Changing aspect ratio rescales every slide's elements proportionally; changing default background updates slides currently using the old default. |
| `AMBIGUOUS_MCP_UPDATE_DOCUMENT` | Update document | Edit an existing document inline. Read the document first (get_document), modify the content, then pass the full updated text — content replaces the entire body. Do NOT create a new document to edit; version history preserves prior states. Accepts Markdown or ProseMirror JSON (HTML tolerated but lossy — drops listed in `import_warnings`). Provide only the fields you want to change. |
| `AMBIGUOUS_MCP_UPDATE_DOCUMENT_PAGE_STYLE` | Update document page style | Set page-level formatting for a document: margins (PT), page size (letter/A4/legal or {width, height} in PT), orientation (portrait/landscape). 72 PT = 1 inch. These settings control export output (.docx, .pdf). Pass an empty object to reset to defaults. |
| `AMBIGUOUS_MCP_UPDATE_DRAFT_EMAIL` | Update draft email | Update an existing draft email. Only works on drafts (not sent messages). Use this to refine recipients, subject, or body of a draft across multiple iterations before sending. |
| `AMBIGUOUS_MCP_UPDATE_EVENT` | Update event | Update an existing calendar event. Provide only the fields you want to change. Use this to reschedule, change attendees, update the description, or cancel an event. If the user is currently viewing an event, use the event ID from the page context. |
| `AMBIGUOUS_MCP_UPDATE_FORM` | Update form | Update an existing form's title, description, fields, settings, or publish status. Use this when the user asks to edit a form, add/remove fields, publish/unpublish, or change form settings. If the user is currently viewing a form, use the resource ID from page context. |
| `AMBIGUOUS_MCP_UPDATE_FORM_VARIANT` | Update form variant | Update an A/B test variant's name, traffic weight, or active status. Use when the user asks to rename a variant, adjust the traffic split, or pause/resume an experiment. |
| `AMBIGUOUS_MCP_UPDATE_IDENTITY_API_KEY` | Update identity api key | Update name, scopes, or `rate_limit` on the calling user's own API key. Returns the updated key. 404 if the key doesn't belong to the calling user. |
| `AMBIGUOUS_MCP_UPDATE_MAIL_LABEL` | Update mail label | Update a mail label's name, color or sidebar order. |
| `AMBIGUOUS_MCP_UPDATE_MAIL_RULE` | Update mail rule | Update a mail rule's conditions or actions. |
| `AMBIGUOUS_MCP_UPDATE_MAIL_TEMPLATE` | Update mail template | Update a saved mail template's subject or body. |
| `AMBIGUOUS_MCP_UPDATE_NAMED_RANGE` | Update named range | Update a named range or named expression with either an A1 range or an exact literal Excel expression; optionally rename it with newName. Names are matched case-insensitively. External-workbook expressions are preserved verbatim and remain unresolved. |
| `AMBIGUOUS_MCP_UPDATE_PIPELINE` | Update pipeline | Update a pipeline's name or stages. Providing `stages` replaces the entire stage list — include every stage you want to keep. Reordering is done by the order in the array. |
| `AMBIGUOUS_MCP_UPDATE_PIVOT_TABLE` | Update pivot table | Patch a pivot table's config — source range, row/column/value fields, totals toggles, source-tab name. Only the fields you send are updated; the rest of the pivot config is preserved. Pass a `tab` field to move the pivot to a different tab. |
| `AMBIGUOUS_MCP_UPDATE_PRODUCT` | Update product | Update a CRM product's name, price or other fields. |
| `AMBIGUOUS_MCP_UPDATE_PROJECT` | Update project | Update a project's name, description, icon, or color. Provide only the fields you want to change. |
| `AMBIGUOUS_MCP_UPDATE_QUOTE` | Update quote | Update a CRM quote. Providing `line_items` replaces the entire line-item list. Totals are auto-recomputed. |
| `AMBIGUOUS_MCP_UPDATE_RESOURCE_COMMENT` | Update resource comment | Update an existing task, wiki, mail-thread or Code comment by its comment ID. content edits text; expected_content checks the original text and rejects stale edits with 409; resolved changes thread resolution. Code content and resolution changes are separate updates. Existing author and resource permissions apply. |
| `AMBIGUOUS_MCP_UPDATE_ROLE` | Update role | Update a custom role's name or permissions. Requires admin role. |
| `AMBIGUOUS_MCP_UPDATE_SCHEDULED_MESSAGE` | Update scheduled message | Edit the content or scheduled send time of a pending scheduled message before it's sent. Fails if the message has already been sent or cancelled. Use this when the user wants to fix a typo in a scheduled message or reschedule it. |
| `AMBIGUOUS_MCP_UPDATE_SCHEDULER_LINK` | Update scheduler link | Update a scheduler link (rename, change availability, toggle active, etc.). |
| `AMBIGUOUS_MCP_UPDATE_SCORING_RULE` | Update scoring rule | Update a lead scoring rule (name, field, operator, value, points, is_active). |
| `AMBIGUOUS_MCP_UPDATE_SECURITY_SETTINGS` | Update security settings | Update workspace security settings. Emits a security.updated audit event. Requires admin role. session_timeout_hours takes effect on next login; require_2fa stores the policy flag (enforcement is gated on 2FA implementation). |
| `AMBIGUOUS_MCP_UPDATE_SEQUENCE` | Update sequence | Update a sequence (rename, description, toggle active, replace step list). Providing `steps` replaces the entire step list. |
| `AMBIGUOUS_MCP_UPDATE_SETTINGS` | Update settings | Update workspace settings (name, logo, timezone, etc.). Requires admin role. Pass a flat key-value object. |
| `AMBIGUOUS_MCP_UPDATE_SHARED_DRIVE` | Update shared drive | Update a shared drive (manager-only). |
| `AMBIGUOUS_MCP_UPDATE_SHARED_DRIVE_MEMBER` | Update shared drive member | Update a member role (manager-only). |
| `AMBIGUOUS_MCP_UPDATE_SHEET_IMAGE` | Update sheet image | Update editable floating images with cell anchors and CSS pixel geometry. Image src must reference an image asset owned by this sheet. |
| `AMBIGUOUS_MCP_UPDATE_SHEET_MERGES` | Update sheet merges | Replace the complete merged-cell range collection for a sheet tab using zero-based inclusive startRow, startCol, endRow and endCol coordinates. Read the current sheet and retain unrelated entries when changing one merge. An empty merges array clears all merges on that tab. |
| `AMBIGUOUS_MCP_UPDATE_SHEET_PICTURE_GROUP` | Update sheet picture group | Update editable picture groups with cell anchors and CSS pixel geometry. Every leaf references an image asset owned by this sheet; native group transforms use EMU coordinates. |
| `AMBIGUOUS_MCP_UPDATE_SHEET_SHAPE` | Update sheet shape | Update editable floating shapes with editable text, cell anchors and CSS pixel geometry. |
| `AMBIGUOUS_MCP_UPDATE_SHEET_VALIDATION_SETTINGS` | Update sheet validation settings | Set worksheet validation prompt suppression without replacing cells, rules, or presentation. Send disablePrompts=null to restore the absent default setting. |
| `AMBIGUOUS_MCP_UPDATE_SIGN_DOCUMENT` | Update sign document | Update a draft signing document. |
| `AMBIGUOUS_MCP_UPDATE_SLICER` | Update slicer | Patch a slicer's config — source range, target column, selected values, overlay position, or title. Only the fields you send are updated; the rest of the slicer config is preserved. |
| `AMBIGUOUS_MCP_UPDATE_SLIDE` | Update slide | Update an existing slide in a presentation. Specify the slide by its 0-based index. You can update the slide properties (background, notes) and/or replace its elements. If the user is currently viewing a presentation, use the presentation ID from the page context. |
| `AMBIGUOUS_MCP_UPDATE_SLIDE_MASTER` | Update slide master | Update a master slide's name, background, or elements. Slides using the master resolve the updated elements by reference. |
| `AMBIGUOUS_MCP_UPDATE_TASK` | Update task | Update a task. Status changes to 'done' auto-spawn the next recurrence (when set), trigger CRM activity logging, and emit task.completed events. |
| `AMBIGUOUS_MCP_UPDATE_TEAM` | Update team | Update a team's settings (name, slug, description, email, parent, visibility, join policy, posting policy, icon, color). Only team admins or workspace admins can update. If changing parent, validates no cycle in hierarchy. Use this when the user asks to rename a team, move a team under a different parent, or change team settings. |
| `AMBIGUOUS_MCP_UPDATE_USER` | Update user | Update a member's role, status, or storage quota. Requires admin or owner; the last owner cannot lose ownership. |
| `AMBIGUOUS_MCP_UPDATE_WIKI_PAGE` | Update wiki page | Update an existing wiki page's content, title, icon, or parent. Use this when the user asks to edit a wiki page, update documentation, or move a page to a different parent. If the user is currently viewing a wiki page, use the resource ID from page context. |
| `AMBIGUOUS_MCP_UPDATE_WIKI_SYNCED_BLOCK` | Update wiki synced block | Update a synced block's content. All pages embedding this block will reflect the new content. Use this when the user asks to edit shared content or update a reusable snippet. |
| `AMBIGUOUS_MCP_UPDATE_WORKSPACE` | Update workspace | Update workspace name or slug. Requires admin role. |
| `AMBIGUOUS_MCP_USE_MAIL_TEMPLATE` | Use mail template | Record template use. |
| `AMBIGUOUS_MCP_USERS_LIST` | Users list | List users in the active workspace. Powers @mention pickers, assignee dropdowns, etc. Filterable by q (matches display_name + username, case-insensitive). Limit defaults to 50, hard cap 100. Member-accessible — use this to resolve a name to a user_id when assigning tasks or @mentioning people; the admin list_users tool is admin-gated and 403s for members/coworkers. |
| `AMBIGUOUS_MCP_USE_SIGN_TEMPLATE` | Use sign template | Create a new draft document from a template, populating fields with placeholder signer roles. |
| `AMBIGUOUS_MCP_VERIFY_DOMAIN` | Verify domain | Trigger DNS verification for a workspace domain. Requires admin role. |
| `AMBIGUOUS_MCP_VERIFY_DOMAIN_OWNERSHIP` | Verify domain ownership | Verify custom domain ownership via DNS TXT record. On success, auto-registers with SES to retrieve DKIM/SPF records. Requires admin role. |
| `AMBIGUOUS_MCP_WEBHOOKS_CREATE` | Webhooks create | Register a new webhook. Body shape matches `CreateWebhookInput` (url + events + optional description + optional `headers`, e.g. an `Authorization: Bearer …` a receiver requires). Returns the webhook record plus the HMAC signing `secret` (one-time visibility — store it; subsequent reads omit `secret`). Custom header values are likewise write-only — reads carry only `header_names`. |
| `AMBIGUOUS_MCP_WEBHOOKS_DELETE` | Webhooks delete | Delete one webhook subscription by id. |
| `AMBIGUOUS_MCP_WEBHOOKS_DELIVERIES_LIST` | Webhooks deliveries list | List recent delivery attempts (status, response, retries). Paginated via `?limit=` (default 25) and `?offset=` (default 0). |
| `AMBIGUOUS_MCP_WEBHOOKS_EVENT_TYPES` | Webhooks event types | List event types an agent can subscribe to. Includes the `*` wildcard. |
| `AMBIGUOUS_MCP_WEBHOOKS_GET` | Webhooks get | Get one webhook subscription's config by id. |
| `AMBIGUOUS_MCP_WEBHOOKS_LIST` | Webhooks list | List webhook registrations owned by the caller. |
| `AMBIGUOUS_MCP_WEBHOOKS_TEST` | Webhooks test | Send a test ping payload to the webhook URL. |
| `AMBIGUOUS_MCP_WEBHOOKS_UPDATE` | Webhooks update | Update a webhook (url, events, description, active, headers). Body shape matches `UpdateWebhookInput`. `headers` replaces the whole custom-header map; `null` or `{}` clears it. |
| `AMBIGUOUS_MCP_WIKI_DATABASE_CREATE` | Wiki database create | Create an inline database on a wiki page. Requires editor role on the host page. |
| `AMBIGUOUS_MCP_WIKI_DATABASE_GET` | Wiki database get | Get an inline database with its full row set. |
| `AMBIGUOUS_MCP_WIKI_DATABASE_ROW_CREATE` | Wiki database row create | Append a row to an inline database. Requires editor role on the host page. |
| `AMBIGUOUS_MCP_WIKI_DATABASE_ROW_DELETE` | Wiki database row delete | Delete a database row. |
| `AMBIGUOUS_MCP_WIKI_DATABASE_ROW_UPDATE` | Wiki database row update | Update properties or sort order on a database row. |
| `AMBIGUOUS_MCP_WIKI_DATABASE_UPDATE` | Wiki database update | Update an inline database's name, schema, or views. Requires editor role on the host page. |
| `AMBIGUOUS_MCP_WIKI_NATIVE_BACKUP` | Wiki native backup | Export a separately labeled, digest-bound native Wiki backup containing the complete workspace Wiki graph. This is not DOCX. |
| `AMBIGUOUS_MCP_WIKI_NATIVE_RESTORE` | Wiki native restore | Restore a native Wiki backup into its empty source workspace. Preserves spaces, hierarchy, page content, databases, backlinks, synced blocks, permissions, versions, and comments. |
| `AMBIGUOUS_MCP_WIKI_PAGE_ASSET_CREATE` | Wiki page asset create | Add an image to a wiki page (its body or its cover) as one of its own assets and get back the URL its body should store (`/api/assets/{id}/content`). Send the bytes as `content_base64`, `source_file_id` to copy a Drive file the caller can view, or `source_url` to import a public HTTPS image through the SSRF guard; neither source is referenced afterwards. The type is decided from the bytes and only images are accepted (415 otherwise); SVG uploads are sanitized before storage and refused with 415 when malformed. Stored SVG is sanitized on every read and served inline as image/svg+xml under a restrictive Content-Security-Policy; malformed stored SVG is refused with 404. Drive SVG downloads remain attachments. The bytes count against the container owner's storage (413 past it). The same image added to the same container again returns the asset already held. The asset is never visible in Drive and is readable exactly when the container is. |
| `AMBIGUOUS_MCP_WIKI_PAGE_BACKLINKS_LIST` | Wiki page backlinks list | List wiki pages that contain `[[link]]` references to this page. Use this to see what pages cite a given page, or to find inbound knowledge links. |
| `AMBIGUOUS_MCP_WIKI_PAGE_CHILDREN_LIST` | Wiki page children list | List the immediate child pages of a wiki page. Use this to traverse the page tree one level at a time, or to count children before a destructive delete. |
| `AMBIGUOUS_MCP_WIKI_PAGE_DATABASE_CREATE` | Wiki page database create | Create an inline database on a specific wiki page. |
| `AMBIGUOUS_MCP_WIKI_PAGE_DUPLICATE` | Wiki page duplicate | Duplicate a wiki page (and optionally its descendants) into a target space + parent. Returns the new top-level page. |
| `AMBIGUOUS_MCP_WIKI_PAGE_EXPORT` | Wiki page export | Export a wiki page to docx, pdf, html, or md. Streams the file with a Content-Disposition attachment header. |
| `AMBIGUOUS_MCP_WIKI_PAGE_PERMANENT_DELETE` | Wiki page permanent delete | Permanently delete a trashed wiki page. Irreversible. |
| `AMBIGUOUS_MCP_WIKI_PAGE_RESTORE` | Wiki page restore | Restore a trashed wiki page and its children. |
| `AMBIGUOUS_MCP_WIKI_SPACE_DELETE` | Wiki space delete | Delete a wiki space and all of its pages. |
| `AMBIGUOUS_MCP_WIKI_SPACE_GET` | Wiki space get | Get a wiki space by slug, with its full page tree. Supports cursor pagination on `pages`. |
| `AMBIGUOUS_MCP_WIKI_SPACE_MEMBER_ADD` | Wiki space member add | Add a user as a direct member of a wiki space with a given role. |
| `AMBIGUOUS_MCP_WIKI_SPACE_MEMBER_REMOVE` | Wiki space member remove | Remove a direct member from a wiki space. |
| `AMBIGUOUS_MCP_WIKI_SPACE_MEMBERS_LIST` | Wiki space members list | List distinct members of a space — the owner plus everyone with a page-level permission inside it. |
| `AMBIGUOUS_MCP_WIKI_SPACE_UPDATE` | Wiki space update | Update a wiki space. Only the space owner may change settings. |
| `AMBIGUOUS_MCP_WIKI_TRASH_LIST` | Wiki trash list | List trashed (soft-deleted) wiki pages in the workspace. |

## Supported Triggers

None listed.

## Troubleshooting

### 1. Why does Claude not use the Composio connector for Ambiguous?

The connector can show as connected, but Claude must use it in each Ambiguous conversation.
- Click + at the lower left of the chat, or type /.
- Hover Connectors.
- Turn on Composio.
- Ask Claude to connect to Ambiguous again.

### 2. Why does Claude show an MCP server error before Ambiguous connects?

Claude can show Couldn't reach the MCP server or Authorization with the MCP server failed when you add the connector for Ambiguous.
- Check that the connector URL is https://connect.composio.dev/mcp.
- Connectors run from Anthropic's cloud, so your device network is usually not the problem.
- Add the connector again from Customize > Connectors, then ask Claude to connect Ambiguous.
- If it fails again, send the error and the ofid_ reference id to support@composio.dev.

### 3. Why does the Ambiguous authorization link not work?

The Composio connector is one server. Your Ambiguous account connects separately when Claude asks for it.
- If the browser does not open, or the link expires, ask Claude to retry the Ambiguous connection.
- Composio creates a fresh Ambiguous authorization link.
- Open that link in your browser and finish the Ambiguous sign-in.

### 4. Why do Ambiguous actions fail after they worked before?

The Ambiguous connection can expire or lose permission.
- Ask Claude to inspect the Ambiguous connection.
- If the connection is unhealthy, disconnect it when Claude prompts you.
- Reconnect the Ambiguous account and retry the action.
- If Claude shows a permission prompt, approve it before Claude changes data in Ambiguous.
- If the action still fails with a permission error, check that the connected account has that permission in Ambiguous itself.

### 5. How do I switch to a different Ambiguous account?

Claude can manage the Ambiguous connection for you.
- Ask Claude to disconnect or delete the current Ambiguous account.
- Ask Claude to connect Ambiguous again.
- Open the new Composio authorization link for Ambiguous.
- Sign in with the other Ambiguous account in the browser.
- After the account connects, ask Claude to retry the Ambiguous task.

### 6. Why is my Ambiguous connection missing in Claude Desktop or on a Team plan?

The connector belongs to your Claude account, so your Ambiguous connection works in Claude Web, Desktop, and Cowork.
- In Claude Desktop, open Customize > Connectors.
- Next to Composio, click ⋮ and click Clear cache.
- If Ambiguous tools still do not appear, click ⋮, disconnect, remove the connector, and add it again.
- On Team or Enterprise, an Owner or Primary Owner must enable the connector before you can connect Ambiguous.

## Creating MCP Server - Stand-alone vs Composio SDK

The Ambiguous MCP server connects Claude Web, Desktop, and Cowork to your Ambiguous account through Composio. Once connected, Claude can use the available Ambiguous tools and triggers to complete tasks on your behalf.

## Complete Code

None listed.

## How to build Ambiguous MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/ambiguous_mcp/framework/chatgpt)
- [Hermes](https://composio.dev/toolkits/ambiguous_mcp/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/ambiguous_mcp/framework/atomic-agent)

## Related Toolkits

- [Google Sheets](https://composio.dev/toolkits/googlesheets) - Google Sheets is a cloud-based spreadsheet tool for real-time collaboration and data analysis. It lets teams work together from anywhere, updating information instantly.
- [Notion](https://composio.dev/toolkits/notion) - Notion is a collaborative workspace for notes, docs, wikis, and tasks. It streamlines team knowledge, project tracking, and workflow customization in one place.
- [Airtable](https://composio.dev/toolkits/airtable) - Airtable combines the flexibility of spreadsheets with the power of a database for easy project and data management. Teams use Airtable to organize, track, and collaborate with custom views and automations.
- [Asana](https://composio.dev/toolkits/asana) - Asana is a collaborative work management platform for teams to organize and track projects. It streamlines teamwork, boosts productivity, and keeps everyone aligned on goals.
- [Google Tasks](https://composio.dev/toolkits/googletasks) - Google Tasks is a to-do list and task management tool integrated into Gmail and Google Calendar. It helps you organize, track, and complete tasks across your Google ecosystem.
- [Linear](https://composio.dev/toolkits/linear) - Linear is a modern issue tracking and project planning tool for fast-moving teams. It helps streamline workflows, organize projects, and boost productivity.
- [Jira](https://composio.dev/toolkits/jira) - Jira is Atlassian’s platform for bug tracking, issue tracking, and agile project management. It helps teams organize work, prioritize tasks, and deliver projects efficiently.
- [Clickup](https://composio.dev/toolkits/clickup) - ClickUp is an all-in-one productivity platform for managing tasks, docs, goals, and team collaboration. It streamlines project workflows so teams can work smarter and stay organized in one place.
- [Monday](https://composio.dev/toolkits/monday) - Monday.com is a customizable work management platform for project planning and collaboration. It helps teams organize tasks, automate workflows, and track progress in real time.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Agiled](https://composio.dev/toolkits/agiled) - Agiled is an all-in-one business management platform for CRM, projects, and finance. It helps you streamline workflows, consolidate client data, and manage business processes in one place.
- [AirOps MCP](https://composio.dev/toolkits/airops_mcp) - AirOps MCP is AirOps' managed content platform exposing brand context, knowledge bases, and workflows. Use it to give agents brand-aware content, automate content workflows, and track Brand Kit edits.
- [Amazing Marvin](https://composio.dev/toolkits/amazing_marvin) - Amazing Marvin is a personal productivity app for tasks, projects, habits, planning, time tracking, and rewards. It helps you build a flexible workflow that matches how you actually work.
- [AnyDB](https://composio.dev/toolkits/any_db) - AnyDB is a flexible collaborative database platform for organizing records, files, and automated workflows. It helps teams centralize data, collaborate on records, and automate routine tasks.
- [ApptiveGrid](https://composio.dev/toolkits/apptivegrid) - ApptiveGrid is a collaborative no-code database and app platform for spaces, grids, forms, and structured records. It helps teams organize operational data, collect inputs, and build lightweight business apps without custom backend work.
- [Ascora](https://composio.dev/toolkits/ascora) - Ascora is a cloud-based field service management platform for service businesses. It streamlines scheduling, invoicing, and customer operations in one place.
- [Atlassian MCP](https://composio.dev/toolkits/atlassian_mcp) - Atlassian Rovo MCP connects agents to Jira, Jira Service Management, Confluence, Bitbucket, Compass, and Teamwork Graph workflows. It lets teams surface and act on Atlassian data while respecting existing user permissions.
- [Basecamp](https://composio.dev/toolkits/basecamp) - Basecamp is a project management and team collaboration tool by 37signals. It helps teams organize tasks, share files, and communicate efficiently in one place.
- [Beeminder](https://composio.dev/toolkits/beeminder) - Beeminder is an online goal-tracking platform that uses monetary pledges to keep you motivated. Stay accountable and hit your targets with real financial incentives.
- [Boxhero](https://composio.dev/toolkits/boxhero) - Boxhero is a cloud-based inventory management platform for SMBs, offering real-time updates, barcode scanning, and team collaboration. It helps businesses streamline stock tracking and analytics for smarter inventory decisions.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Ambiguous MCP?

With a standalone Ambiguous MCP server, the agents and LLMs can only access a fixed set of Ambiguous tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Ambiguous and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Claude Cowork?

Yes, you can. Claude Cowork fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Ambiguous tools.

### Can I manage the permissions and scopes for Ambiguous while using Tool Router?

Yes, absolutely. You can configure which Ambiguous scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Ambiguous data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
