In your tool
plungeai-in-claude-ai
Connect claude.ai web or Claude Desktop to PlungeAI (Ocean Studio) — Desktop live tools via the mcp-remote bridge in claude_desktop_config.json (OAuth isn't available yet, hence the bridge), claude.ai web via skill.zip upload, and a plungeai_whoami + plungeai_list_agents verify for Desktop. Use when the user is on claude.ai or Claude Desktop and says connect / install / set up PlungeAI, mentions claude_desktop_config.json, Customize → Skills, or a PlungeAI tool call there is failing. For the Claude Code CLI use plungeai-in-claude-code; for an unlisted but MCP-capable client use plungeai-mcp-setup's generic client config.
Download zip (opens in a new tab) · View raw SKILL.md (opens in a new tab)
Two different surfaces, two different capabilities:
| Surface | What it gets |
|---|---|
| Claude Desktop | live plungeai_* MCP tools, via a bridge (below) |
| claude.ai (web) | a PlungeAI skill upload — Claude produces paste-ready CNL workflows for Ocean Studio, not live tool calls (claude.ai has no custom-connector bearer-header field yet) |
Prerequisites
- An
ozk_key: Dashboard → One API → Keys (https://dashboard.plungeai.com (opens in a new tab)) — self-service, shown once, copy it now. - Desktop only: Node.js installed (the bridge runs via
npx).
Connect (once) — Claude Desktop
Why a bridge: Settings → Connectors → Add custom connector authenticates
through OAuth only (no bearer-header field), and PlungeAI OAuth hasn't
shipped. Until it does, Desktop connects through the mcp-remote stdio
bridge.
Settings → Developer → Edit Config opens the file — macOS
~/Library/Application Support/Claude/claude_desktop_config.json, Windows
%APPDATA%\Claude\claude_desktop_config.json. Merge:
{
"mcpServers": {
"plungeai": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.plungeai.com/v1",
"--header", "Authorization: Bearer ozk_YOUR_KEY"]
}
}
}Quit Claude Desktop completely and relaunch — the config is only read at start.
Connect (once) — claude.ai web (skill only)
Needs code execution enabled first: Settings → Capabilities → turn on Code execution and file creation (a prerequisite for any custom skill upload, not PlungeAI-specific). Then Customize → Skills → + → Upload a skill — upload https://mcp.plungeai.com/skill.zip (opens in a new tab). This teaches Claude PlungeAI conventions; it does not give claude.ai a live MCP connection.
Verify (Claude Desktop)
- Ask Claude: "use plungeai_whoami to confirm my identity" → an identity card (user id, auth tier, key label, rate window, server).
- "use plungeai_list_agents to search 'web search'" → live results from the active agent catalog.
claude.ai web has no live tool call to verify — a successfully uploaded skill is the only signal; ask Claude to draft a PlungeAI CNL workflow to confirm it loaded.
The tool map (Claude Desktop)
Desktop gets the live tools; claude.ai web (skill upload) has none. This is what the 22 tools take, so Claude can plan a call before making it:
PlungeAI MCP 2.7.0. Server https://mcp.plungeai.com/v1 (Streamable HTTP), Authorization: Bearer ozk_YOUR_KEY. 22 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.Quirks
- Windows: Desktop does not escape spaces inside
args— if the bridge 401s only on Windows, replace the header arg with"--header", "Authorization:${AUTH_HEADER}"plus"env": { "AUTH_HEADER": "Bearer ozk_YOUR_KEY" }in the same entry. - Logs:
~/Library/Logs/Claude/mcp*.log(macOS) ·%APPDATA%\Claude\logs(Windows) — check these before re-editing the config. - The bridge is an
npxprocess — a cold start can take a few seconds; if tools "never appear," wait, then check the logs above. - Long CNL workflow runs: prefer
mode: "async"+plungeai_get_workflow_statuspolling — Desktop caps a single synchronous tool call. - Money-verb operations (payments, sends) still stop: a gated call pauses
with a structured
needs_approvaloutcome — relay it to the user, thenplungeai_continue; never retry blind. - 401 through the bridge but the key looks right → whitespace or a missing
ozk_prefix; re-paste it into the config.
Where next
- The Claude Code CLI instead of Desktop/web: plungeai-in-claude-code.
- Operating the
plungeai_*tools once connected: plungeai-mcp-setup. - Writing code that calls
https://api.plungeai.comdirectly: plungeai-api-setup. - Picking MCP vs the One API for a given job: choose-your-plungeai-door.
- An unlisted but MCP-capable client, or the shared connect concepts (native remote vs. stdio bridge, key hygiene): plungeai-mcp-setup.
- Full guide: https://mcp.plungeai.com/docs#3-connecting-clients (opens in a new tab)