> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plungeai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# The 20 tools — parameters and every action

> Names, parameters and action values below are the zod schemas the server validates against; tools/list is still authoritative for the key in hand (a fenced key sees fewer tools). The One API twin of each family is in plungeai-api-setup.


<!-- sources-of-truth: orchestration/mcp-gateway/server.ts, orchestration/mcp-gateway/tools.ts, orchestration/mcp-gateway/tools-bots.ts, orchestration/mcp-gateway/tools-triggers.ts, orchestration/mcp-gateway/extras.ts, orchestration/mcp-gateway/tool-exec.ts | last-synced: 2026-10-05 (MCP 2.6.0: 20 tools; action enums checked against the zod schemas) -->
Names, parameters and `action` values below are the zod schemas the server validates against; `tools/list` is still authoritative for the key in hand (a fenced key sees fewer tools). The One API twin of each family is in `plungeai-api-setup`.

```text
PlungeAI MCP 2.6.0. Server https://mcp.plungeai.com/v1 (Streamable HTTP), Authorization: Bearer ozk_YOUR_KEY. 20 tools; tools/list is authoritative (a fenced key sees fewer).
Pass user_request (the user's own words, verbatim) on every call. Output is final markdown: relay it verbatim. format:"json" returns machine-readable output.
FIND: plungeai_list_agents {search, category, agent_id, kind: agents|personas|experts|skills|models|workflows|connectors} = the live registry; ids come only from here.
  plungeai_get_tool_contract {agent_id} = schema, operations, credential status. plungeai_whoami = identity, tier, key label, rate window.
RUN: plungeai_execute_agent {agent, prompt} (always sync). plungeai_execute_tool {agent_id, operation, params, mode}. plungeai_run_mission {goal, allowed_tools, max_iterations} (async by default).
  plungeai_execute_workflow {workflow_id | workflow_yaml, input, inputs, mode: sync|async}.
RUNS: plungeai_get_workflow_status {execution_id} polls (and carries continuation). plungeai_get_result {execution_id, task_id?}. plungeai_followup {execution_id, prompt}.
  plungeai_continue {execution_id, approve | message}. plungeai_executions {action: list|get|output|conversation|delete|cancel|steer|files; message for steer}.
WORKFLOWS: plungeai_list_workflows {kind: workflow|agent|bot|campaign, folder, search}. plungeai_build_workflow {goal | workflow_id + instruction}. plungeai_templates {action: list|get|use}.
  plungeai_workflow {action: create|get|update|delete|list_versions|get_version|save_version|restore_version|a2a_door|permissions_get|permissions_set|files|file|inbox|bindings|bind|unbind|groups|group_set|group_delete|group_thread; kind}.
SCHEDULES: plungeai_schedule {action: stats|list|get|create|update|pause|resume|delete|run_now|runs|wake|webhook_mint|webhook_list|webhook_delete|email_mint|email_list|email_delete|hooks_mint|hooks_list|hooks_delete};
  create takes job_type agent|query|workflow|heartbeat, target, schedule (cron, or "@once" with run_at = ISO-8601 with a UTC offset).
MEMORY: plungeai_memory {action: recall|remember|search_runs|get_run}. plungeai_learn {action: learn|list|forget} (learn defaults to async). plungeai_chat {action: send|list_sessions|history|new}.
OUTCOMES: status ok | needs_input | needs_connection | needs_api_key | needs_approval | unavailable | error, with remediation.actions. A paused run ends with a pause block: relay it verbatim,
  call plungeai_continue only after the user decides (approve:true for an explicit yes, message for anything else). Never approve for the user; never retry the identical call blind.
```

## Notes that bite

- `plungeai_workflow` bot actions need `workflow_id` of a saved bot; `file` returns at most 5 MB inline (base64) — larger files come from the One API `GET /v1/workflows/{id}/workspace-files/download?path=`.
- `plungeai_workflow` `permissions_set` replaces each field you send; `locks` need a team admin over the workflow.
- `plungeai_workflow` `bind`/`unbind` take `channel` (telegram, whatsapp, discord, teams) and `sender_id`; `group_set` takes `group` (a name) and `members` (2–6 of your bot ids).
- `plungeai_executions` `steer` takes `message` and only reaches a running execution; `files` lists what the run wrote.
- `plungeai_schedule` trigger actions take the schedule as `job_id`; a minted secret is shown once; `wake` takes `job_id` and `note`.
- The MCP `plungeai_schedule` `job_type` accepts `agent` and `query` as well as `workflow` and `heartbeat`; the One API route `POST /v1/schedules` takes only `workflow` and `heartbeat`.
