Claude Code can't fix what it can't see. Praxen Inc. shows it your logs, traces and deploys.
Signs you in, connects your stack and registers the MCP server in Claude Code.
> 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 Claude Code. Praxen Inc. sits between Claude Code and your stack.
Connect your clouds, observability, code and chat once. Claude Code 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 Claude Code uses it.
- searchTools find the right tool
- runTool call one
- runCode chain many
Code mode. Claude Code writes the program, Praxen Inc. runs it.
Calling tools one at a time fills Claude Code's context with raw results: tens of kilobytes of metrics, thousands of log lines, each step waiting on the model. With runCode, Claude Code writes a short program that calls every tool it needs. It runs in Praxen Inc.'s sandbox, and only the answer comes back.
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 Claude Code can think about it.
// 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 Claude Code reads the answer.
Ask Claude Code about production. It answers from what's actually running.
> Why is checkout returning 502s?
Claude Code 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.
Claude Code 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 Claude Code directly, then ask it a question you'd normally open five dashboards for.
Guides for Claude Code
- Guide How to use Claude Code: a practical guide How to use Claude Code: install it, write a CLAUDE.md, pick a permission mode, steer it mid-task, script it with -p and connect it to your tools with MCP.
- Guide Workers Issues: route Cloudflare errors to coding agents Cloudflare's new Workers Issues groups exceptions and 5xx errors and sends them to Claude Code, Cursor, Devin or a webhook. Setup, automations and limits.
- Guide How to use Claude Code to debug production issues Debug production issues with Claude Code: get logs and traces into the session, test hypotheses against evidence, stay read-only and ship a verified fix.
- Guide How to add MCP servers to Cursor How to add MCP servers to Cursor: project and global mcp.json files, remote and local servers, OAuth sign-in, secrets from env vars and tool approvals.
- Guide How to add MCP servers to GitHub Copilot in VS Code How to add MCP servers to GitHub Copilot in VS Code: workspace and user mcp.json, HTTP and stdio servers, MCP: Add Server and confirming tool calls.
- Guide How to use Codex CLI: install, AGENTS.md, MCP and exec How to use Codex CLI: install it, sign in, write an AGENTS.md, set permissions, resume sessions, script it with codex exec and add MCP servers.
Frequently asked questions
How does Claude Code authenticate?
Claude Code 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 pass it with --header "x-api-key: YOUR_API_KEY".
Can Claude Code 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 Claude Code 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.