> ## 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.

# plungeai_get_tool_contract

> 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").


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.

The exact invocation contract for one registry agent: the JSON Schema of its parameters, its operations (with approval gates), worked YAML examples, its output shape, and your live credential status (platform-managed, or "connect Google first"). Fetch it before the first `plungeai_execute_tool` call to an unfamiliar agent: the contract is the API docs.

**Returns.** `ok`, whose `contract` holds `agent_id`, `name`, `description`, `operations[]` (`{name, description?, required_params?}`), `inputSchema` (JSON Schema for `params`), `examples[]` (`{title, cnl}`), `output_type`, `soleRequiredParam` (when exactly one string parameter is required) and `credentials[]` (per provider: `provider`, `tier` = `platform` / `oauth_connector` / `byok_api_key`, `required`, optional `operations`, `connected`, `status`, `accountEmail`). The Markdown adds a **Credentials** section (platform-managed, ✅ connected as …, ⚠️ NOT connected or expired, with where to connect) and a ready `plungeai_execute_tool` line. `unavailable` for an unknown or inactive agent, with alternatives. `error` if the registry did not answer.

```bash
# verify
# expect: Credentials
# expect: weather-agent
curl -s https://mcp.plungeai.com/v1 \
  -H "Authorization: Bearer $PLUNGE_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"plungeai_get_tool_contract","arguments":{"user_request":"what does the weather agent need from me?","agent_id":"weather-agent"}}}'
```

<Note>
Two parameters recur across the tools: `user_request` (on every tool: a string of up to 4,000 characters, optional; clients should always send it) and `format` (`markdown` by default, or `json`). Both are described once in [Recurring parameters](/mcp-reference/overview#recurring-parameters) on the MCP overview.
</Note>

## Input schema

```json
{
  "$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"
  ]
}
```
