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

> Your connected accounts, the same as the One API /v1/connections: action list (provider, method, status — never a credential)|add (provider + api_key[, api_secret] for a key-based provider)|remove (provider)|link (provider[, return_url]: a signed single-use Studio link, 15 minutes, to connect an…


Your connected accounts, the same as the One API /v1/connections: action list (provider, method, status — never a credential)|add (provider + api_key[, api_secret] for a key-based provider)|remove (provider)|link (provider[, return_url]: a signed single-use Studio link, 15 minutes, to connect an OAuth or key provider — send it to whoever owns the account). on_behalf_of acts on one of your customers instead of you.

Your connected accounts, action for action the One API's `/v1/connections`: `list`, `add` (an API key for a key-based provider), `remove`, `link` (a signed single-use Studio link to connect a provider). `on_behalf_of` acts on one of your customers instead of you.

**Returns.** A heading line and the One API's response body as a JSON block, the same body as `structuredContent`: `list` `{connections: [{provider, on_behalf_of, method, status, connected_at}]}` (never key material), `add` `{provider, on_behalf_of, status: "connected"}`, `remove` `{…, status: "disconnected"}`, `link` `{url, expires_at}` (15 minutes, single use). Refusals use the same `<word>: <message> (<code>)` shape as `plungeai_companies`: `not_found` `unknown_provider` / `connection_not_found`, `invalid` `missing_api_key` / `credential_rejected` / `invalid_on_behalf_of` / `invalid_return_url`, `forbidden` `owner_not_found`, `unavailable` `connections_unavailable`. Details: [Connections](https://mcp.plungeai.com/docs#17-connections).

```bash
# verify
# expect: Connections
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_connections","arguments":{"user_request":"what accounts have I connected?","action":"list"}}}'
```

<Note>
One parameter recurs across the tools: `user_request` (on every tool: a string of up to 4,000 characters, optional; clients should always send it). It is 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
    },
    "action": {
      "type": "string",
      "enum": [
        "list",
        "add",
        "remove",
        "link"
      ]
    },
    "provider": {
      "type": "string",
      "maxLength": 64
    },
    "on_behalf_of": {
      "type": "string",
      "maxLength": 128
    },
    "api_key": {
      "type": "string",
      "maxLength": 4096
    },
    "api_secret": {
      "type": "string",
      "maxLength": 4096
    },
    "return_url": {
      "type": "string",
      "maxLength": 2048
    }
  },
  "required": [
    "action"
  ]
}
```
