Pi

Give Pi the whole production picture. Praxen Inc. serves it through a handful of tools.

Signs you in, connects your stack and registers the MCP server in Pi.

Pi · checkout-edge

> why is checkout returning 502s since this morning?

praxen · searchcheckout errors, recent deploys

praxen · runToolqueryLogs · checkout-edge 5xx, last 6h

praxen · searchcheckout-edge deploys and config changes

The 502s started at 09:14, two minutes after deploy 9f3c2a1 cut the hd-prod Hyperdrive pool from 50 connections to 5. Requests queue for a connection and time out at the edge.

Fix: put max_connections back to 50 in wrangler.jsonc. Want me to make the change?

Critical latency degradation in checkout-edge worker · issue already open in Praxen Inc.

Every tool you use, from Pi. Praxen Inc. sits between Pi and your stack.

Connect your clouds, observability, code and chat once. Pi gets three tools: searchTools finds the right one for the question, runTool calls it, and runCode chains several in one go. One sign-in covers every provider, and a tool's schema loads only when Pi uses it.

Code mode. Pi writes the program, Praxen Inc. runs it.

Calling tools one at a time fills Pi's context with raw results: tens of kilobytes of metrics, thousands of log lines, each step waiting on the model. With runCode, Pi writes a short program that calls every tool it needs. It runs in Praxen Inc.'s sandbox, and only the answer comes back.

Tool by tool

deployHistory → 12 deploys

queryMetrics → 41 kB of series

queryMetrics → another 41 kB

queryLogs → 3,000 lines

… and a model turn between each

Every raw result lands in the context window before Pi can think about it.

praxen · runCode
// Which deploy slowed checkout-edge?
const deploys = await tools.deployHistory({ service: "checkout-edge", hours: 24 });
const { points } = await tools.queryMetrics({
  service: "checkout-edge",
  metric: "latency.p99",
  hours: 24,
});

const median = (xs) => xs.sort((a, b) => a - b)[xs.length >> 1] ?? 0;
const p99 = (t, side) =>
  median(points.filter((p) => (side < 0 ? p.t < t : p.t > t)).map((p) => p.v));

// Score every deploy by the p99 shift across its timestamp.
const [worst] = deploys
  .map((d) => ({ ...d, shift: p99(d.at, 1) / p99(d.at, -1) }))
  .sort((a, b) => b.shift - a.shift);

// Pull the error logs right after the suspect deploy.
const errors = await tools.queryLogs({
  service: "checkout-edge",
  level: "error",
  after: worst.at,
  limit: 5,
});

return { deploy: worst.sha, shift: worst.shift, errors };

One call. The raw data stays in the sandbox and Pi reads the answer.

Ask Pi about production. It answers from what's actually running.

> Why is checkout returning 502s?

Pi queries logs and traces across every provider you connect, and finds when it started.

> What changed before the latency spike?

Deploys and config changes come back with when they landed and what they touched.

> Who calls this endpoint before I change it?

The context graph and real request logs show every caller, so a schema change doesn't break one you forgot.

> Look at the issue Praxen Inc. opened this morning.

Pi reads the investigation and its evidence, then starts on the fix with you.

Prefer to add it by hand?

Already have a Praxen Inc. account? Register the MCP server in Pi directly, then ask it a question you'd normally open five dashboards for.

Add an entry in ~/.pi/agent/mcp.json under "mcpServers", pointing at https://mcp.getpraxen.app/mcp.

Guides for Pi

All coding agent guides

Frequently asked questions

How does Pi authenticate?

Pi signs in over OAuth in a browser the first time it calls the server. For CI and headless machines, create an API key under Settings > Coding agents and add "headers": { "x-api-key": "YOUR_API_KEY" } to the server entry.

Can Pi change my infrastructure through Praxen Inc.?

Not unless you opt in. Write tools stay hidden until your credential carries the write scope, and every write is screened before it runs.

What can Pi actually query?

Everything Praxen Inc. knows: logs, metrics and traces across every connected provider, the context graph, deploys and recent changes, and the full REST API.

Do I need the Praxen Inc. CLI too?

No, the MCP server is a complete surface on its own. Install the CLI and praxen setup also registers that server in every coding agent it detects.

Other agents

Try it with Pi. Ask it about production today.