Let your agent delegate.
plori speaks the Model Context Protocol. Connect Claude Code, Cursor, Codex, or any MCP client and it can create cloud agents, each in its own environment with a persistent disk, run them, and read their replies. Sign in through the browser; no API key to manage.
Set up https://plori.ai/SKILL.md
Connect.
§01One endpoint: https://api.plori.ai/mcp (Streamable HTTP). Clients that support OAuth guide you through sign-in and account approval without an API key. Scripts and CI use a bearer API key instead. No MCP client involved? The plori CLI is a separate entry point, and it attaches to the same live session the web app shows.
Claude Code
Paste this into Claude Code. It reads the connection steps and guides you through sign-in. No plugin installation required.
Set up https://plori.ai/SKILL.mdWhen the client supports pairing, Claude shows a short code. Open plori.ai/device on your phone or computer, enter the code, sign in, and approve. Claude completes authentication in the same session. If a client policy blocks the pairing request, Claude switches to its browser OAuth flow. You only paste the final localhost callback URL if that browser redirect cannot connect, and only into that Claude Code session. When a new MCP server has not loaded yet, Claude asks you to type/reload-plugins in the conversation, then continues. This first-setup step works without installed plugins.
Cursor
One click. Cursor prompts to enable the server, then opens the sign-in.
VS Code
Adds the server to your user configuration; sign-in follows on first use.
code --add-mcp '{"name":"plori","type":"http","url":"https://api.plori.ai/mcp"}'Codex CLI
Add the server, then approve the sign-in when the browser opens. Codex auto-detects OAuth.
codex mcp add plori --url https://api.plori.ai/mcpcodex mcp login ploriAny MCP client
Point it at the endpoint. OAuth if the client supports it, or the bearer key below. Stdio-only client? Bridge with npx mcp-remote, adding --header "Authorization: Bearer plori_sk_…" when it should use a key.
https://api.plori.ai/mcpplori CLI (terminal)
Not an MCP client, a separate entry point. Install with one line, sign in through the browser, then attach to a live agent session: history, a prompt, streaming output, and approvals in the terminal. The script installs to ~/.local/bin and prints the PATH line to add if that directory is not on your PATH yet.
curl -fsSL https://plori.ai/install.sh | shplori login && plori attach <agent-name>CI, scripts, and headless use
Create a key in Settings → API keys and send it as Authorization: Bearer.
{
"mcpServers": {
"plori": {
"type": "streamable-http",
"url": "https://api.plori.ai/mcp",
"headers": { "Authorization": "Bearer plori_sk_…" }
}
}
}Verify it works.
§02After the MCP connection is active, give your agent this first task. It exercises the whole loop: tool discovery, creating a cloud agent, a run, and reading the reply.
“Create a cloud agent on plori, send it a hello message, and show me its reply.”
What your agent can do.
§03The server exposes plori's control plane as MCP tools. They read and act only within the account that signed in.
Discover
list_agentsYour agents, with their model and status.get_agentOne agent's details and warm-pod status.
Create & manage
create_agentGet or create an agent by name; reusing a name returns the existing agent, not a duplicate.delete_agentPermanently remove an agent and its disk.
Run & read
invoke_agentSend a message and, by default, wait for the reply.get_run_resultA run's status, approval details, and eventual reply.list_runsAn agent's run history, most recent first.schedule_runInvoke an agent later, after a delay or at a time.
Human-in-the-loop
list_pending_inputsRuns paused awaiting an approval or input.answer_pending_inputApprove, deny, or answer a paused run.
Workflows
list_workflowsYour workflows, with their status, trigger, current version, and holding agent.get_workflowOne workflow's metadata and pinned step projection.get_workflow_versionOne exact version's full definition and parameter values.edit_workflowCreate a CAS-guarded draft version from constrained edits.create_workflowCreate a workflow for an agent to build.run_workflowRun a built workflow now as a real, billed execution.list_workflow_executionsRecent execution history with status, fault, timing, and credits.get_workflow_executionAn execution's status, timing, credits, and step outcomes.
Account
list_connectionsThird-party OAuth provider status, authorization times, and configured scopes.get_creditsCredit balance and plan.get_usageSpend rollup by meter and by agent.get_diskAccount disk: included, purchased, and used.empty_trashPermanently empty one agent's trash to free the disk it was still counting against.
For longer runs, keep calling get_run_result with wait=true until the run finishes or needs human input. Each call waits up to 25 seconds. When a human answers an approval, follow the returned continuation_run_id; the original run retains its historical awaiting_input status. If the input is answered before its successor is available, retry the original run.
Clients that negotiate MCP Tasks can subscribe to task status. Other clients must keep polling to observe changes after a call returns. A client with elicitation support can present an input request during an open waiting call. Whether a notification can wake an idle model depends on the client. Approval still requires the human's decision.
What it costs, what it can spend.
§04Free to look, credits to run
Discovery and read tools (list_*, get_*) are free. invoke_agent and schedule_run run a cloud agent, which spends credits.
A registered account includes 2,000 minutes of run time a month. Past that, compute is $0.01 per active minute while an agent is awake; idle agents sleep and stop billing. Anonymous trials bill run time from the first minute.
Model usage draws credits at cost with no markup, based on the provider's real price. If a platform fault stops a run, Plori automatically refunds its charges, subject to the per-account daily limit. Bring your own model key and model usage drops to $0. The Plori Router picks one model per request from a pool shared by every plan. Bring your own key to use a specific model. Rates and worked examples on the pricing page.
Scoped to your account
Every tool call acts as the account that signed in, and nothing else. Your agent can check the balance with get_credits before taking on work. Cut access any time: delete the API key in Settings (it stops working on the next request), or remove the server from your client; OAuth sign-ins are short-lived and expire on their own.
Retries and concurrency.
§05A retry returns the same run
A run is nondeterministic and billable, so a blind retry would start a second one. Pass an idempotency_key to invoke_agent (or the Idempotency-Key header on POST /v1/agents/{agent_id}/runs) and a retry with the same key returns the original run for 24 hours instead of starting another. The same key with a different message is a 422, not a silent wrong answer; a retry that lands while the first is still submitting gets a 409 with a Retry-After.
Runs in flight are capped by plan
How many runs one account may have in flight at once is set by its plan: 1 on Free, 2 on Pro, 5 on Power, counted across all your agents. Past that, a run returns 429 with a Retry-After. Turns on a single agent are not queued for you, so a caller that wants them in order should wait for each run to finish before sending the next.
In the browser, too.
§06The homepage exposes public WebMCP tools for capability discovery, connection details, examples, and navigation. The dashboard and agent workspace add focused tools that reuse your signed-in session. A compatible agentic browser can check credits, create or open an agent, delegate a task, and follow the run. The remote MCP server above remains the full programmatic surface after you leave the page.
Tell us what you're building.
§07Using plori over MCP, or want a tool that isn't here yet? Send a note. It goes straight to the team.
Prefer to talk? Join our Discord or email [email protected]. Building against the API directly? Start at /agents.md.