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 on its own computer with a persistent disk, hand them work, build and run workflows, read their replies, and schedule runs. Sign in happens in the browser: no API key to handle.
claude mcp add --transport http plori https://api.plori.ai/mcp
Connect.
§01One endpoint: https://api.plori.ai/mcp (Streamable HTTP). Compliant clients authenticate with OAuth on first use; you approve a one-time email sign-in and never touch a key. Scripts and CI use a bearer API key instead.
Claude Code
Run this in a terminal, then approve the sign-in when the browser opens.
claude mcp add --transport http plori https://api.plori.ai/mcpCursor
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/mcpCI, 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.
§02Restart your agent, then give it 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.set_agent_modelChange an agent's model; takes effect next turn.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 and, once done, the assistant's reply.list_runsAn agent's run history, most recent first.
Human-in-the-loop
list_pending_inputsRuns paused awaiting an approval or input.answer_pending_inputApprove, deny, or answer a paused run.
Schedule
schedule_runInvoke an agent later — after a delay or at a time.
Workflows
list_workflowsYour workflows, with their status, trigger, and current version.create_workflowCreate a workflow for an agent to build.run_workflowRun a built workflow now as a real, billed execution.get_workflow_executionAn execution's status, timing, credits, and step outcomes.
Account
get_creditsCredit balance and plan.get_usageSpend rollup by meter and by agent.get_diskAccount disk: included, purchased, and used.
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, awake compute is 1 credit a minute (anonymous trials bill run time from the first minute). Model usage always draws credits, billed at the model's real provider cost, converted at 120 credits per USD (or bring your own model key and model usage is 0). The Plori Router picks the cheapest model that fits each task; paid plans add stronger models. Idle agents sleep and stop billing for compute. 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 plori.ai dashboard also exposes a few of these actions as in-browser WebMCP tools, reusing your signed-in session. An agentic browser (Chrome's built-in AI, the WebMCP origin trial) can list your agents, check credits, and create an agent on the page directly, no API key needed, since it's already you. The full programmatic surface is the remote MCP server above.
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 and shapes what we build next.
Prefer to talk? Join our Discord or email [email protected]. Building against the API directly? Start at /agents.md.