Pi + Cloudflare
Minimal, extensible agent harness that you can make your own. Made by Earendil.
-
Install Pi
Install Pi on macOS or Linux. For Windows, npm, or Nix options, refer to the Pi quickstart ↗︎.
curl -fsSL https://pi.dev/install.sh | sh -
Install Cloudflare Skills
npx skills add https://github.com/cloudflare/skills -
Add the Cloudflare MCP server
Register the Cloudflare MCP server in
~/.pi/agent/mcp.json, then sign in through OAuth. For domain-specific MCP servers, refer to mcp-server-cloudflare ↗︎. For the full Cloudflare API MCP server (Code Mode), refer to cloudflare/mcp ↗︎.pi mcp add cloudflare --url https://mcp.cloudflare.com/mcp pi mcp login cloudflare -
Launch Pi
Start Pi from the root of your project, where
wrangler.jsoncorcloudflare.config.tslives (if either exists). If you have not connected a model provider yet, run/logininside Pi to connect a subscription or API key.pi -
Try a prompt
For example:
Set up rate limiting and WAF rules to block abuse on my public API.
Expand any section to learn more.
Cloudflare Skills
Persistent platform context that teaches the agent how Cloudflare works.
Skills are instructions the agent loads on demand. The cloudflare/skills bundle covers every layer of the platform — so the agent knows your conventions without you re-explaining them.
- agents-sdkBuild, debug, or review Cloudflare Agents SDK applications using the agents package.
- basinBuild and troubleshoot Cloudflare Basin analytics workflows with Basin Pipelines, Basin Catalog, and Basin SQL. Use for streaming data into R2 Iceberg tables, managing catalogs, or querying those tables; also use for requests using the former Data Platform, Pipelines, R2 Data Catalog, or R2 SQL names.
- cf-cliCloudflare's official cf CLI (beta) for the public Cloudflare API and Workers projects. Use for finding and running Cloudflare commands from the terminal — sign-in and profiles, cf cli search, cf schema, cf deploy/dev/build, resource commands for DNS, zones, D1, KV, and R2 — and for choosing between cf and Wrangler in a project.
- cloudflareDiscover and choose Cloudflare products for apps, APIs, AI agents, storage, networking, and security. Use for architecture and product selection, including when the user describes a need without naming a Cloudflare product; then find the relevant skill or documentation.
- cloudflare-email-serviceImplement or troubleshoot Cloudflare Email Sending and Email Routing integrations and their delivery configuration.
- cloudflare-oneDesign, configure, troubleshoot, or review Cloudflare One Zero Trust and SASE deployments. Use cloudflare-one-migrations for migration planning from other vendors.
- cloudflare-one-migrationsAssess and plan migrations from existing VPN, SWG, or SASE platforms to Cloudflare One, including policy mapping, parity gaps, and rollout.
- durable-objectsBuild, debug, or review Cloudflare Durable Objects code for persistent state and coordination.
- gateway-workersBuild, debug, or review Cloudflare Workers invoked by the Forward action in Gateway HTTP policies, including the GatewayMiddleware entrypoint, Gateway types, context, and continuation.
- k2Build and troubleshoot Cloudflare K2 or K2 Streams durable logs. Use for stream setup, producing from Workers or HTTP, configuring retention and inputs, and consuming through subscriptions.
- nextjs-on-cloudflareBuild, migrate, and deploy Next.js apps on Cloudflare Workers with vinext. Use when starting a Next.js project on Cloudflare, moving an existing app to Workers, choosing between vinext and OpenNext, or setting up vinext for Workers. For setup, migration, or deployment, install vinext's upstream skills with `npx skills add cloudflare/vinext` if missing, then read and follow the applicable skill and docs.
- sandbox-migrate-to-nextMigrate Cloudflare Sandbox apps from stable @cloudflare/sandbox to @cloudflare/sandbox@next (SDK 1.0 preview). Use sandbox-next for apps already on the preview.
- sandbox-nextBuild or maintain Cloudflare Sandbox apps on @cloudflare/sandbox@next (SDK 1.0 preview). Use sandbox-migrate-to-next when porting a stable app.
- sandbox-stableBuild or maintain Cloudflare Sandbox apps on the stable @cloudflare/sandbox package. Use sandbox-next for preview apps and sandbox-migrate-to-next for stable-to-preview migrations.
- turnstile-spinSet up, repair, or migrate to Cloudflare Turnstile bot verification in an existing frontend and backend, including server-side Siteverify.
- web-perfAudit, diagnose, or optimize website loading and interaction performance, Core Web Vitals, and Lighthouse performance scores.
- workers-best-practicesCloudflare Workers best practices for production applications. Use when writing, reviewing, or configuring Workers.
- workers-profilingProfile or debug CPU usage and memory allocation in deployed Cloudflare Workers and Durable Objects. Then use this information to optimize your code.
- wranglerRun or troubleshoot Wrangler CLI commands in projects that have a wrangler.jsonc, wrangler.json, or wrangler.toml file, including local development, Previews, deployment, and resource management. For new projects and projects without a Wrangler configuration file, use the cf CLI instead.
MCP servers
Live access to the Cloudflare API, docs, and observability.
MCP servers provide typed tools to call into Cloudflare at runtime. There are two options: Code Mode — a single server that covers the entire Cloudflare API (2,500+ endpoints in ~1,000 tokens) — or a set of focused, domain-specific servers hosted in the cloudflare/mcp-server-cloudflare repo. The full catalog is also in the MCP servers for Cloudflare docs.
- Cloudflare API MCP Servercode modeBest when you want broad access across Cloudflare's APIs through code executionhttps://mcp.cloudflare.com/mcp
- Code mode APIcode modeBroad access to the full Cloudflare API via code execution, with minimal token overheadhttps://mcp.cloudflare.com/mcp
- Browser Run serverFetch web pages, convert them to markdown and take screenshotshttps://browser.mcp.cloudflare.com/mcp
- Cloudflare Blog serverSearch and read posts from the Cloudflare Bloghttps://blog.mcp.cloudflare.com/mcp
- Cloudflare One CASB serverQuickly identify any security misconfigurations for SaaS applications to safeguard users & datahttps://casb.mcp.cloudflare.com/mcp
- Container serverSpin up a sandbox development environmenthttps://containers.mcp.cloudflare.com/mcp
- Demo Day serverDemonstrate a minimal Cloudflare MCP serverhttps://demo-day.mcp.cloudflare.com/mcp
- Digital Experience Monitoring serverGet quick insight on critical applications for your organizationhttps://dex.mcp.cloudflare.com/mcp
- Documentation serverGet up-to-date reference information on Cloudflarehttps://docs.mcp.cloudflare.com/mcp
Wrangler CLI
Local dev, deploys, and Workers-specific commands.
Use Wrangler for local development, deploys, and product-specific commands like wrangler d1 migrations apply or wrangler tail. The bundled wrangler Skill teaches the agent when to reach for it.
Agent-friendly docs
Token-efficient references optimized for agents.
Append /index.md to any Cloudflare docs URL for a clean markdown version. Every top-level product section also has its own llms.txt — a page index sized for a single context window. A few useful ones:
- developers.cloudflare.com/llms.txt — directory of every Cloudflare product.
- developers.cloudflare.com/workers/llms.txt
- developers.cloudflare.com/agents/llms.txt
- developers.cloudflare.com/r2/llms.txt
- developers.cloudflare.com/d1/llms.txt
For a full overview of how these docs are structured for agents, refer to the Docs for Agents guide.
Create a Logpush job to stream Workers analytics to my data warehouse.Set up AI Gateway to route requests across OpenAI and Workers AI with automatic fallback and cost tracking.Add real-time collaboration to my app using Durable Objects with WebSocket hibernation.Build an AI chat agent using the Cloudflare Agents SDK with persistent conversation history stored in D1.Build an image upload and transformation service using R2 and Cloudflare Images.- The Cloudflare API MCP server uses Code Mode. Pi writes JavaScript against a typed API to reach any of 2,500+ endpoints in ~1,000 tokens.
- Pi calls MCP tools from its own
codemodetool by default. To declare the Cloudflare tools to the model directly, add the server with--exposure direct. - Use
/mcpinside Pi to check the connection, sign in, reconnect, or turn the Cloudflare server on or off. Run/reloadafter changingmcp.jsonoutside a session. - Pi has built-in providers for Workers AI ↗︎ and AI Gateway, so you can keep the whole workflow on Cloudflare.
Should I use Skills, the MCP server, a CLI, or all of them?
All three. Skills provide persistent Cloudflare expertise so Pi knows when
to reach for Durable Objects vs KV, how to structure a Workers project, and
when to call CLI vs API. The Cloudflare API MCP server handles platform
operations (DNS, WAF, Zero Trust, R2 buckets). Wrangler handles local dev,
deploys, and Workers-specific commands. The bundled wrangler Skill teaches
Pi which to use. For tasks across the whole Cloudflare API, Pi can also use
the Cloudflare CLI, cf.
Can Pi use the Cloudflare CLI?
Yes. The Cloudflare CLI, cf, is in beta and covers the whole
Cloudflare API and prints JSON output. Install it with npm install -g cf,
sign in with cf auth login, and tell Pi to prefer it in AGENTS.md or
~/.pi/agent/AGENTS.md. Refer to Use cf with AI agents.
How do I connect Pi to my Cloudflare account?
Run pi mcp login cloudflare, or run /mcp login cloudflare inside Pi. Pi
opens the Cloudflare authorization page in your browser, where you choose
permissions.
Can I use Workers AI as the model provider in Pi?
Yes. Pi has built-in Cloudflare Workers AI and Cloudflare AI Gateway
providers. Set CLOUDFLARE_API_KEY and CLOUDFLARE_ACCOUNT_ID, or run
/login inside Pi. To route another provider through AI Gateway, refer to
Pi with AI Gateway.
Is Pi open source?
Yes. Pi is open source under the MIT license and available at github.com/earendil-works/pi ↗︎.
MCP server connection fails
Run pi mcp list to connect to every configured server and print its
state and errors. Inside Pi, /mcp shows the full connection error. Pi
requires a streamable HTTP endpoint, so use https://mcp.cloudflare.com/mcp
rather than an /sse URL.
MCP server authentication fails
Run pi mcp logout cloudflare, then pi mcp login cloudflare and complete
the OAuth flow in your browser. If the browser runs on another machine,
such as over SSH, paste the redirected URL into Pi when prompted.
Getting outdated information about Cloudflare products
Point the agent directly at developers.cloudflare.com/llms.txt for
a directory of every product, or developers.cloudflare.com/<product>/llms.txt
for a product-specific index.
Cloudflare is not just a deploy target for agents, it is a full stack for building your own.
Stateful AI agents with state, scheduling, RPC, email, streaming chat — and the Code Mode SDK for token-efficient tool use.
Learn moreShip a remote MCP server on Workers with OAuth, durable state, and streamable HTTP transport.
Learn moreRun open-source LLMs, embedding models, and image models at the edge. Use it as your agent's model provider.
Learn moreLoad user-generated code into isolated Workers on demand. The secure sandbox behind Code Mode.
Learn moreClaude Code
Terminal-based coding agent that understands your codebase, runs commands, edits files, and manages git. Made by Anthropic.
View guideCodex
OpenAI coding agent available as a terminal CLI and desktop app. It reads and writes files, runs commands, and browses the web in a sandbox.
View guideCursor
AI-first IDE built on VS Code with multi-file Composer edits and background agents. Made by Cursor.
View guideGitHub Copilot
Editor extension and CLI with agent mode, workspace context, and native PR integration. Made by GitHub.
View guideOpenCode
Open-source terminal agent with a rich TUI that works with 75+ LLMs. Made by Anomaly.
View guideVibe
Coding agent for terminal, IDE, and cloud workflows that reads files, runs commands, writes code, and opens pull requests. Made by Mistral AI.
View guideDevin
A full IDE with an agent manager built in — the command center for managing all your agents in one place. Made by Cognition.
View guideVisual Studio Code
Free, open-source code editor with native Model Context Protocol (MCP) client support and Copilot Chat integration. Made by Microsoft.
View guideCommand Code
Command Code is one of the most used coding agents for open models. It automatically learns your coding taste and self-improves as you work.
View guideBionic
Powerful agent for coding and work. Natively local, with open models in the cloud. By LM Studio.
View guideDroid
Model-agnostic coding agent that plans, edits files, runs commands, and automates CI, from the terminal, desktop app, or cloud. Made by Factory.
View guide