{
  "server": {
    "name": "plungeai.com",
    "version": "2.5.1",
    "protocol": "2025-11-25"
  },
  "tools": [
    {
      "name": "plungeai_execute_workflow",
      "description": "Execute a CNL workflow (saved workflow_id or ad-hoc workflow_yaml). Streams progress. Use mode:\"async\" for long runs (>3 min) — it returns an execution_id to poll with plungeai_get_workflow_status. In ad-hoc YAML, write long strings as block scalars (`prompt: |`) — never hard-wrap a value; structured tool-agents take their card's parameters as task fields alongside `agent:`. Always answers with a structured outcome (never a raw error) — follow the remediation instead of retrying the identical call.",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "workflow_yaml": {
            "description": "Ad-hoc CNL workflow YAML. The `workflow:` wrapper is optional — bare top-level name/tasks is accepted and wrapped automatically.",
            "type": "string",
            "maxLength": 262144
          },
          "workflow_id": {
            "type": "string",
            "maxLength": 256
          },
          "input": {
            "type": "string",
            "maxLength": 65536
          },
          "inputs": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "maxLength": 128
            },
            "additionalProperties": {
              "type": "string",
              "maxLength": 8192
            }
          },
          "mode": {
            "type": "string",
            "enum": [
              "sync",
              "async"
            ]
          },
          "format": {
            "default": "markdown",
            "description": "markdown (default): rendered for an AI reader · json: the same outcome as a JSON document in `text` plus `structuredContent`",
            "type": "string",
            "enum": [
              "markdown",
              "json"
            ]
          }
        }
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "needs_input",
              "needs_connection",
              "needs_api_key",
              "needs_approval",
              "unavailable",
              "error"
            ]
          },
          "summary": {
            "type": "string"
          },
          "agent_id": {
            "type": "string"
          },
          "operation": {
            "type": "string"
          },
          "result": {
            "type": "string"
          },
          "execution_id": {
            "type": "string"
          },
          "missing": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "remediation": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              },
              "actions": {
                "type": "array",
                "items": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              }
            },
            "required": [
              "message",
              "actions"
            ],
            "additionalProperties": false
          },
          "contract": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "status",
          "summary"
        ],
        "additionalProperties": false
      },
      "defaults": {
        "mode": "sync",
        "format": "markdown"
      },
      "requiredNotes": {
        "workflow_yaml": "one of `workflow_yaml` / `workflow_id`",
        "workflow_id": "one of `workflow_yaml` / `workflow_id`"
      },
      "createsExecution": true,
      "section": "141-plungeai_execute_workflow"
    },
    {
      "name": "plungeai_execute_agent",
      "description": "Execute a single PROMPT-DRIVEN agent (e.g. \"llm-agent\", or \"skill-agent\" with a persona). Pass session_id to start/continue a conversational agent. Structured tool-agents (cards with a Parameters table, e.g. markitdown, weather-agent) take typed fields, not prose — use plungeai_get_tool_contract + plungeai_execute_tool for those. Always answers with a structured outcome (never a raw error) — follow the remediation instead of retrying the identical call.",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "agent": {
            "type": "string",
            "maxLength": 256
          },
          "prompt": {
            "type": "string",
            "maxLength": 65536
          },
          "persona": {
            "type": "string",
            "maxLength": 256
          },
          "model": {
            "type": "string",
            "maxLength": 256
          },
          "provider": {
            "type": "string",
            "maxLength": 256
          },
          "maxTokens": {
            "type": "integer",
            "minimum": 1,
            "maximum": 64000
          },
          "max_tokens": {
            "type": "integer",
            "minimum": 1,
            "maximum": 64000
          },
          "temperature": {
            "type": "number",
            "minimum": 0,
            "maximum": 2
          },
          "top_p": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "reasoning_effort": {
            "type": "string",
            "enum": [
              "low",
              "medium",
              "high",
              "xhigh"
            ]
          },
          "thinking_level": {
            "type": "string",
            "maxLength": 256
          },
          "streaming": {
            "type": "boolean"
          },
          "session_id": {
            "type": "string",
            "maxLength": 256
          },
          "format": {
            "default": "markdown",
            "description": "markdown (default): rendered for an AI reader · json: the same outcome as a JSON document in `text` plus `structuredContent`",
            "type": "string",
            "enum": [
              "markdown",
              "json"
            ]
          }
        },
        "required": [
          "agent",
          "prompt"
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "needs_input",
              "needs_connection",
              "needs_api_key",
              "needs_approval",
              "unavailable",
              "error"
            ]
          },
          "summary": {
            "type": "string"
          },
          "agent_id": {
            "type": "string"
          },
          "operation": {
            "type": "string"
          },
          "result": {
            "type": "string"
          },
          "execution_id": {
            "type": "string"
          },
          "missing": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "remediation": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              },
              "actions": {
                "type": "array",
                "items": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              }
            },
            "required": [
              "message",
              "actions"
            ],
            "additionalProperties": false
          },
          "contract": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "status",
          "summary"
        ],
        "additionalProperties": false
      },
      "defaults": {
        "model": "the agent's default",
        "provider": "the model's catalog provider",
        "streaming": "true",
        "format": "markdown"
      },
      "requiredNotes": {},
      "createsExecution": true,
      "section": "142-plungeai_execute_agent"
    },
    {
      "name": "plungeai_get_tool_contract",
      "description": "The exact invocation contract for one registry agent: JSON Schema for its parameters, operations (with approval gates), worked YAML examples, output shape, and LIVE credential status for the acting user (platform-managed vs \"connect Google first\"). Fetch this before the first plungeai_execute_tool call to an unfamiliar agent — the contract IS the API docs.",
      "readOnly": true,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "agent_id": {
            "type": "string",
            "maxLength": 256
          },
          "format": {
            "default": "markdown",
            "description": "markdown (default): rendered for an AI reader · json: the same outcome as a JSON document in `text` plus `structuredContent`",
            "type": "string",
            "enum": [
              "markdown",
              "json"
            ]
          }
        },
        "required": [
          "agent_id"
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "needs_input",
              "needs_connection",
              "needs_api_key",
              "needs_approval",
              "unavailable",
              "error"
            ]
          },
          "summary": {
            "type": "string"
          },
          "agent_id": {
            "type": "string"
          },
          "operation": {
            "type": "string"
          },
          "result": {
            "type": "string"
          },
          "execution_id": {
            "type": "string"
          },
          "missing": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "remediation": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              },
              "actions": {
                "type": "array",
                "items": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              }
            },
            "required": [
              "message",
              "actions"
            ],
            "additionalProperties": false
          },
          "contract": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "status",
          "summary"
        ],
        "additionalProperties": false
      },
      "defaults": {
        "format": "markdown"
      },
      "requiredNotes": {},
      "createsExecution": false,
      "section": "143-plungeai_get_tool_contract"
    },
    {
      "name": "plungeai_execute_tool",
      "description": "Execute one structured tool-agent directly with typed params: {agent_id, operation?, params}. Runs through the engine with full observability; use mode:\"async\" for long runs. Always answers with a structured outcome (never a raw error): ok → result; needs_input → missing fields + the schema; needs_connection/needs_api_key → tell the user exactly what to connect in our apps, then retry; needs_approval → relay the ⏸ block and use plungeai_continue after the user decides; unavailable → real alternatives. Follow the remediation — do not retry the identical call blind.",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "agent_id": {
            "type": "string",
            "maxLength": 256
          },
          "operation": {
            "type": "string",
            "maxLength": 128
          },
          "params": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "maxLength": 128
            },
            "additionalProperties": {}
          },
          "prompt": {
            "type": "string",
            "maxLength": 65536
          },
          "mode": {
            "type": "string",
            "enum": [
              "sync",
              "async"
            ]
          },
          "format": {
            "default": "markdown",
            "description": "markdown (default): rendered for an AI reader · json: the same outcome as a JSON document in `text` plus `structuredContent`",
            "type": "string",
            "enum": [
              "markdown",
              "json"
            ]
          }
        },
        "required": [
          "agent_id"
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "needs_input",
              "needs_connection",
              "needs_api_key",
              "needs_approval",
              "unavailable",
              "error"
            ]
          },
          "summary": {
            "type": "string"
          },
          "agent_id": {
            "type": "string"
          },
          "operation": {
            "type": "string"
          },
          "result": {
            "type": "string"
          },
          "execution_id": {
            "type": "string"
          },
          "missing": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "remediation": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              },
              "actions": {
                "type": "array",
                "items": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              }
            },
            "required": [
              "message",
              "actions"
            ],
            "additionalProperties": false
          },
          "contract": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "status",
          "summary"
        ],
        "additionalProperties": false
      },
      "defaults": {
        "operation": "the card's default operation",
        "params": "{}",
        "mode": "sync",
        "format": "markdown"
      },
      "requiredNotes": {},
      "createsExecution": true,
      "section": "144-plungeai_execute_tool"
    },
    {
      "name": "plungeai_run_mission",
      "description": "Run a bounded autonomous agent mission (loop agent): give a goal, optional tool fence and iteration cap. Recalls and writes long-term memory automatically. Defaults to async — poll plungeai_get_workflow_status. Always answers with a structured outcome (never a raw error) — follow the remediation instead of retrying the identical call.",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "goal": {
            "type": "string",
            "maxLength": 65536
          },
          "mission": {
            "type": "string",
            "maxLength": 65536
          },
          "allowed_tools": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 256
            }
          },
          "max_iterations": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50
          },
          "success_criteria": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 2000
            }
          },
          "persona": {
            "type": "string",
            "maxLength": 256
          },
          "skills": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 256
            }
          },
          "mode": {
            "type": "string",
            "enum": [
              "sync",
              "async"
            ]
          }
        },
        "required": [
          "goal"
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "needs_input",
              "needs_connection",
              "needs_api_key",
              "needs_approval",
              "unavailable",
              "error"
            ]
          },
          "summary": {
            "type": "string"
          },
          "agent_id": {
            "type": "string"
          },
          "operation": {
            "type": "string"
          },
          "result": {
            "type": "string"
          },
          "execution_id": {
            "type": "string"
          },
          "missing": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "remediation": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              },
              "actions": {
                "type": "array",
                "items": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              }
            },
            "required": [
              "message",
              "actions"
            ],
            "additionalProperties": false
          },
          "contract": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "status",
          "summary"
        ],
        "additionalProperties": false
      },
      "defaults": {
        "mission": "You are a capable autonomous agent. Achieve the goal thoroughly and cite sources.",
        "allowed_tools": "[\"web_search\", \"web_fetch\", \"task_complete\"]",
        "max_iterations": "8",
        "mode": "async"
      },
      "requiredNotes": {},
      "createsExecution": true,
      "section": "145-plungeai_run_mission"
    },
    {
      "name": "plungeai_learn",
      "description": "Manage your private skill library. `action: learn` (default) distills a URL, PDF text, or a past workflow into a reusable skill via the `learn` pre-built agent (needs `source`; defaults to async — poll plungeai_get_workflow_status). `action: list` returns your learned skills (id + summary). `action: forget` deletes one by `name` (the id from list). Always answers with a structured outcome (never a raw error) — follow the remediation instead of retrying the identical call.",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "action": {
            "description": "learn (default): distill source into a skill · list: your learned skills · forget: delete one (name required)",
            "type": "string",
            "enum": [
              "learn",
              "list",
              "forget"
            ]
          },
          "source": {
            "description": "A URL, or text/markdown to distill, or a description of what you just did.",
            "type": "string",
            "minLength": 1,
            "maxLength": 65536
          },
          "name": {
            "description": "Skill id (kebab-case): picked automatically on learn, required on forget.",
            "type": "string",
            "maxLength": 256
          },
          "mode": {
            "type": "string",
            "enum": [
              "sync",
              "async"
            ]
          }
        }
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "needs_input",
              "needs_connection",
              "needs_api_key",
              "needs_approval",
              "unavailable",
              "error"
            ]
          },
          "summary": {
            "type": "string"
          },
          "agent_id": {
            "type": "string"
          },
          "operation": {
            "type": "string"
          },
          "result": {
            "type": "string"
          },
          "execution_id": {
            "type": "string"
          },
          "missing": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "remediation": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              },
              "actions": {
                "type": "array",
                "items": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              }
            },
            "required": [
              "message",
              "actions"
            ],
            "additionalProperties": false
          },
          "contract": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "status",
          "summary"
        ],
        "additionalProperties": false
      },
      "defaults": {
        "action": "learn",
        "name": "picked automatically on learn",
        "mode": "async"
      },
      "requiredNotes": {
        "source": "for `learn`",
        "name": "for `forget`"
      },
      "createsExecution": true,
      "section": "146-plungeai_learn"
    },
    {
      "name": "plungeai_list_agents",
      "description": "Discover platform building-block agents from the live registry (the capability catalog). NOT the user's own agents — for \"show me my agents/workflows\" use plungeai_list_workflows. `search` is a hybrid semantic+keyword query — describe the capability in natural language (e.g. \"web search\", \"pdf to markdown\"). Prefer search/category filters; an unfiltered list returns the whole catalog (~90 agents, large). The catalog is active-only, and execution refuses any id that is not active — so take ids from here, not from memory. Fetch one full card with agent_id. With `format: \"json\"` the result is `{content: <markdown>}` — its source is rendered registry markdown; typed rows are a follow-up.",
      "readOnly": true,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "search": {
            "type": "string",
            "maxLength": 2000
          },
          "category": {
            "type": "string",
            "maxLength": 256
          },
          "agent_id": {
            "type": "string",
            "maxLength": 256
          },
          "kind": {
            "type": "string",
            "enum": [
              "agents",
              "personas",
              "experts",
              "skills",
              "models",
              "workflows",
              "connectors"
            ]
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "format": {
            "default": "markdown",
            "description": "markdown (default): rendered for an AI reader · json: the same outcome as a JSON document in `text` plus `structuredContent`",
            "type": "string",
            "enum": [
              "markdown",
              "json"
            ]
          }
        }
      },
      "outputSchema": null,
      "defaults": {
        "kind": "agents",
        "limit": "25 with search or category, 100 without",
        "format": "markdown"
      },
      "requiredNotes": {},
      "createsExecution": false,
      "section": "147-plungeai_list_agents"
    },
    {
      "name": "plungeai_list_workflows",
      "description": "List your saved workflows — what users usually mean by \"my agents\". No args shows your folders (rubrics) + recent; filter with folder and/or search.",
      "readOnly": true,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "search": {
            "type": "string",
            "maxLength": 2000
          },
          "folder": {
            "type": "string",
            "maxLength": 2000
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "format": {
            "default": "markdown",
            "description": "markdown (default): rendered for an AI reader · json: the same outcome as a JSON document in `text` plus `structuredContent`",
            "type": "string",
            "enum": [
              "markdown",
              "json"
            ]
          }
        }
      },
      "outputSchema": null,
      "defaults": {
        "limit": "50",
        "format": "markdown"
      },
      "requiredNotes": {},
      "createsExecution": false,
      "section": "148-plungeai_list_workflows"
    },
    {
      "name": "plungeai_get_result",
      "description": "Retrieve the result of one of your executions (by `execution_id`) — for conversational runs this includes the FULL conversation thread (all follow-up turns), same as Studio shows. Pass task_id to read a single task's output (e.g. one branch of a workflow) instead of the final result. The output is final user-ready markdown: show it to the user verbatim and complete — never summarize or re-type it. With `format: \"json\"` the result is `{content: <markdown>}` — an assembled multi-store document rendered as markdown; typed rows are a follow-up.",
      "readOnly": true,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "execution_id": {
            "type": "string",
            "maxLength": 256
          },
          "workflow_id": {
            "type": "string",
            "maxLength": 256
          },
          "task_id": {
            "type": "string",
            "maxLength": 256
          },
          "format": {
            "default": "markdown",
            "description": "markdown (default): rendered for an AI reader · json: the same outcome as a JSON document in `text` plus `structuredContent`",
            "type": "string",
            "enum": [
              "markdown",
              "json"
            ]
          }
        }
      },
      "outputSchema": null,
      "defaults": {
        "task_id": "the final task",
        "format": "markdown"
      },
      "requiredNotes": {
        "execution_id": "one of `execution_id` / `workflow_id`",
        "workflow_id": "one of `execution_id` / `workflow_id`"
      },
      "createsExecution": false,
      "section": "149-plungeai_get_result"
    },
    {
      "name": "plungeai_get_workflow_status",
      "description": "Check the status of one of your executions (self-heals stuck runs). Returns structured content too, including `continuation` when the run is paused awaiting user approval or an answer — relay that to the user and use plungeai_continue.",
      "readOnly": true,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "execution_id": {
            "type": "string",
            "maxLength": 256
          }
        },
        "required": [
          "execution_id"
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "execution_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "workflow_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "duration_ms": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "final_task_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "continuation": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string"
                  },
                  "agent": {
                    "type": "string"
                  },
                  "question": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "pending_action": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "summary": {
                            "type": "string"
                          },
                          "price": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "summary"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "status",
                  "agent",
                  "question",
                  "pending_action"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "execution_id",
          "status",
          "error_message",
          "workflow_name",
          "started_at",
          "duration_ms",
          "final_task_id",
          "continuation"
        ],
        "additionalProperties": false
      },
      "defaults": {},
      "requiredNotes": {},
      "createsExecution": false,
      "section": "1410-plungeai_get_workflow_status"
    },
    {
      "name": "plungeai_workflow",
      "description": "Manage your workflows: action create|get|update|delete|save_version|list_versions|get_version|restore_version. Create/update/delete sync live to Studio, iMini, and peer apps.",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "action": {
            "type": "string",
            "enum": [
              "create",
              "get",
              "update",
              "delete",
              "list_versions",
              "get_version",
              "save_version",
              "restore_version"
            ]
          },
          "workflow_id": {
            "type": "string",
            "maxLength": 256
          },
          "name": {
            "type": "string",
            "maxLength": 512
          },
          "yaml": {
            "type": "string",
            "maxLength": 262144
          },
          "description": {
            "type": "string",
            "maxLength": 2000
          },
          "folder": {
            "type": "string",
            "maxLength": 2000
          },
          "kind": {
            "type": "string",
            "enum": [
              "workflow",
              "agent",
              "bot"
            ]
          },
          "version_id": {
            "type": "string",
            "maxLength": 256
          },
          "version_description": {
            "type": "string",
            "maxLength": 2000
          }
        },
        "required": [
          "action"
        ]
      },
      "outputSchema": null,
      "defaults": {
        "kind": "workflow on create"
      },
      "requiredNotes": {
        "workflow_id": "for every action except `create`",
        "name": "for `create`",
        "yaml": "for `create`",
        "version_id": "for `get_version`, `restore_version`"
      },
      "createsExecution": false,
      "section": "1411-plungeai_workflow"
    },
    {
      "name": "plungeai_executions",
      "description": "Browse your execution history: action list|get|output|conversation|delete|cancel. `cancel` stops a running execution (cooperative — it stops at its next turn or tool boundary). Outputs are final user-ready markdown (tables, threads): show them to the user verbatim and complete — never summarize or re-type them.",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "action": {
            "type": "string",
            "enum": [
              "list",
              "get",
              "output",
              "conversation",
              "delete",
              "cancel"
            ]
          },
          "execution_id": {
            "type": "string",
            "maxLength": 256
          },
          "workflow_id": {
            "type": "string",
            "maxLength": 256
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100000
          },
          "format": {
            "default": "markdown",
            "description": "markdown (default): rendered for an AI reader · json: the same outcome as a JSON document in `text` plus `structuredContent`",
            "type": "string",
            "enum": [
              "markdown",
              "json"
            ]
          }
        },
        "required": [
          "action"
        ]
      },
      "outputSchema": null,
      "defaults": {
        "limit": "20",
        "offset": "0",
        "format": "markdown"
      },
      "requiredNotes": {
        "execution_id": "for every action except `list`"
      },
      "createsExecution": false,
      "section": "1412-plungeai_executions"
    },
    {
      "name": "plungeai_followup",
      "description": "Ask a follow-up about a completed execution (continues its agent session or researches with prior context). If the execution is still running, your message is queued and injected at its next turn (steer); if finished, it continues the conversation.",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "execution_id": {
            "type": "string",
            "maxLength": 256
          },
          "prompt": {
            "type": "string",
            "maxLength": 65536
          }
        },
        "required": [
          "execution_id",
          "prompt"
        ]
      },
      "outputSchema": null,
      "defaults": {},
      "requiredNotes": {},
      "createsExecution": false,
      "section": "1413-plungeai_followup"
    },
    {
      "name": "plungeai_continue",
      "description": "Continue a paused conversation: answer a question (message) or approve a pending action (approve:true). Only pass approve:true after the user explicitly confirmed — never approve on your own. To deny or change course, pass their words as message.",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "execution_id": {
            "type": "string",
            "maxLength": 256
          },
          "message": {
            "type": "string",
            "maxLength": 65536
          },
          "approve": {
            "type": "boolean"
          }
        },
        "required": [
          "execution_id"
        ]
      },
      "outputSchema": null,
      "defaults": {},
      "requiredNotes": {
        "message": "one of `message` / `approve: true`",
        "approve": "one of `message` / `approve: true`"
      },
      "createsExecution": false,
      "section": "1414-plungeai_continue"
    },
    {
      "name": "plungeai_chat",
      "description": "Persistent chat with the PlungeAI assistant (platform tools + web search). action send|new|list_sessions|history. Conversations appear in Studio and the CLI.",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "action": {
            "type": "string",
            "enum": [
              "send",
              "list_sessions",
              "history",
              "new"
            ]
          },
          "message": {
            "type": "string",
            "maxLength": 65536
          },
          "conversation_id": {
            "type": "string",
            "maxLength": 256
          }
        },
        "required": [
          "action"
        ]
      },
      "outputSchema": null,
      "defaults": {
        "conversation_id": "a new conversation (send)"
      },
      "requiredNotes": {
        "message": "for `send`",
        "conversation_id": "for `history`"
      },
      "createsExecution": false,
      "section": "1415-plungeai_chat"
    },
    {
      "name": "plungeai_build_workflow",
      "description": "Generate a new workflow from a goal, or refine an existing one (workflow_id + instruction), via the platform builder. Saves it so it appears everywhere (live sync).",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "goal": {
            "type": "string",
            "maxLength": 65536
          },
          "workflow_id": {
            "type": "string",
            "maxLength": 256
          },
          "instruction": {
            "type": "string",
            "maxLength": 65536
          }
        }
      },
      "outputSchema": null,
      "defaults": {},
      "requiredNotes": {
        "goal": "for a new workflow",
        "workflow_id": "for a refine",
        "instruction": "for a refine"
      },
      "createsExecution": false,
      "section": "1416-plungeai_build_workflow"
    },
    {
      "name": "plungeai_memory",
      "description": "Long-term memory scoped to you: action recall|remember|search_runs|get_run. remember writes the durable store that recall reads (target user|memory, operation add|replace|remove|read) — use it when the user asks to remember something. Past-run history is separate: search_runs/get_run read the run journal, which recall deliberately does not include.",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "action": {
            "type": "string",
            "enum": [
              "recall",
              "remember",
              "search_runs",
              "get_run"
            ]
          },
          "query": {
            "type": "string",
            "maxLength": 2000
          },
          "run_id": {
            "type": "string",
            "maxLength": 256
          },
          "target": {
            "type": "string",
            "enum": [
              "user",
              "memory"
            ]
          },
          "operation": {
            "type": "string",
            "enum": [
              "add",
              "replace",
              "remove",
              "read"
            ]
          },
          "content": {
            "type": "string",
            "maxLength": 65536
          },
          "old_text": {
            "type": "string",
            "maxLength": 2000
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        },
        "required": [
          "action"
        ]
      },
      "outputSchema": null,
      "defaults": {
        "target": "memory",
        "operation": "add",
        "limit": "10"
      },
      "requiredNotes": {
        "query": "for `search_runs`",
        "run_id": "for `get_run`",
        "content": "for `add`, `replace`",
        "old_text": "for `replace`, `remove`"
      },
      "createsExecution": false,
      "section": "1417-plungeai_memory"
    },
    {
      "name": "plungeai_templates",
      "description": "Workflow templates: action list|get|use. \"use\" creates a workflow from the template (optional name + folder).",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "action": {
            "type": "string",
            "enum": [
              "list",
              "get",
              "use"
            ]
          },
          "template_id": {
            "type": "string",
            "maxLength": 256
          },
          "category": {
            "type": "string",
            "maxLength": 256
          },
          "name": {
            "type": "string",
            "maxLength": 512
          },
          "folder": {
            "type": "string",
            "maxLength": 2000
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        },
        "required": [
          "action"
        ]
      },
      "outputSchema": null,
      "defaults": {
        "name": "<template name> (copy); a bot template keeps its own name",
        "limit": "50"
      },
      "requiredNotes": {
        "template_id": "for `get`, `use`"
      },
      "createsExecution": false,
      "section": "1418-plungeai_templates"
    },
    {
      "name": "plungeai_schedule",
      "description": "Scheduled (cron) jobs: action stats|list|get|create|update|pause|resume|delete|run_now|runs. create needs name, job_type (agent|query|workflow|heartbeat), target, schedule; create also takes mission_ref (schedule a pre-built agent card).",
      "readOnly": false,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "action": {
            "type": "string",
            "enum": [
              "stats",
              "list",
              "get",
              "create",
              "update",
              "pause",
              "resume",
              "delete",
              "run_now",
              "runs"
            ]
          },
          "job_id": {
            "type": "string",
            "maxLength": 256
          },
          "name": {
            "type": "string",
            "maxLength": 512
          },
          "description": {
            "type": "string",
            "maxLength": 2000
          },
          "job_type": {
            "type": "string",
            "enum": [
              "agent",
              "query",
              "workflow",
              "heartbeat"
            ]
          },
          "target": {
            "type": "string",
            "maxLength": 262144
          },
          "schedule": {
            "type": "string",
            "maxLength": 128
          },
          "timezone": {
            "type": "string",
            "maxLength": 64
          },
          "parameters": {
            "description": "Job extras. deliver: DeliverTarget[] — objects {channel: \"inapp\"|\"email\"|\"slack\"|\"telegram\"|\"whatsapp\"|\"discord\", chat_id?, to?}; bare {channel:\"slack\"} DMs the owner, bare {channel:\"email\"} mails the owner's registered address, other emails must be confirmed recipients. prompt: per-run goal.",
            "type": "object",
            "propertyNames": {
              "type": "string",
              "maxLength": 128
            },
            "additionalProperties": {}
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "mission_ref": {
            "type": "string",
            "maxLength": 256
          },
          "check_agent": {
            "type": "string",
            "maxLength": 256
          },
          "condition_prompt": {
            "type": "string",
            "maxLength": 4096
          },
          "trigger_workflow": {
            "type": "string",
            "maxLength": 256
          },
          "notify_channel": {
            "type": "string",
            "enum": [
              "telegram",
              "whatsapp",
              "discord",
              "slack",
              "email"
            ]
          },
          "notify_chat_id": {
            "type": "string",
            "maxLength": 128
          }
        },
        "required": [
          "action"
        ]
      },
      "outputSchema": null,
      "defaults": {
        "timezone": "UTC",
        "limit": "50 for list, 20 for runs"
      },
      "requiredNotes": {
        "job_id": "for `get`, `update`, `pause`, `resume`, `delete`, `run_now`",
        "name": "for `create`",
        "job_type": "for a plain `create`",
        "target": "for a plain `create`",
        "schedule": "for `create`",
        "check_agent": "for a heartbeat",
        "condition_prompt": "for a heartbeat"
      },
      "createsExecution": true,
      "section": "1419-plungeai_schedule"
    },
    {
      "name": "plungeai_whoami",
      "description": "Show the authenticated identity: user id, tier, key label, rate-limit window.",
      "readOnly": true,
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "user_request": {
            "description": "The user's original request, verbatim and in their own words, before you translated it into this call. Always include it — the platform uses it for request context, routing and support diagnostics.",
            "type": "string",
            "maxLength": 4000
          },
          "format": {
            "default": "markdown",
            "description": "markdown (default): rendered for an AI reader · json: the same outcome as a JSON document in `text` plus `structuredContent`",
            "type": "string",
            "enum": [
              "markdown",
              "json"
            ]
          }
        }
      },
      "outputSchema": null,
      "defaults": {
        "format": "markdown"
      },
      "requiredNotes": {},
      "createsExecution": false,
      "section": "1420-plungeai_whoami"
    }
  ],
  "prompts": [
    {
      "name": "plungeai",
      "title": "PlungeAI",
      "description": "PlungeAI MCP",
      "arguments": [
        {
          "name": "request",
          "description": "What you want to accomplish (optional)",
          "required": false
        }
      ]
    }
  ],
  "resources": [
    {
      "uri": "plungeai://agents/list",
      "name": "PlungeAI Agents",
      "description": "Live agent registry (markdown)",
      "mimeType": "text/markdown"
    },
    {
      "uri": "plungeai://agents/categories",
      "name": "Agent Categories",
      "description": "Live registry categories with agent counts (markdown)",
      "mimeType": "text/markdown"
    },
    {
      "uri": "plungeai://personas/list",
      "name": "Personas",
      "description": "Live persona registry (markdown)",
      "mimeType": "text/markdown"
    },
    {
      "uri": "plungeai://workflows/list",
      "name": "Your Workflows",
      "description": "Your saved workflows (markdown)",
      "mimeType": "text/markdown"
    },
    {
      "uri": "plungeai://docs/workflow-authoring",
      "name": "Workflow Authoring Guide",
      "description": "Author, validate, and save CNL workflows (full skill bundle)",
      "mimeType": "text/markdown"
    }
  ],
  "resourceTemplates": [
    {
      "uriTemplate": "plungeai://agents/{category}",
      "name": "Agents by category",
      "mimeType": "text/markdown"
    },
    {
      "uriTemplate": "plungeai://workflows/{id}",
      "name": "Workflow YAML by id",
      "mimeType": "text/yaml"
    },
    {
      "uriTemplate": "plungeai://executions/{id}",
      "name": "Execution result by id",
      "mimeType": "text/markdown"
    }
  ]
}
