Built for AI agents
An agent can look inside pogi and control it with tools, and pogi can write the agent a short brief on how to use it.
The problem
An agent that writes cloud code needs to see what happened after each call, and to reset state between tries.
How it works
01
Connect it
pogi mcp runs an MCP server (MCP is the protocol coding agents use to call tools) on standard input and output. The same server is on HTTP at /_pogi/mcp. pogi mcp --print-config prints the setup for Claude Code, Cursor and Codex.
pogi mcp --print-config# Claude Code: stdio, through pogi mcp claude mcp add pogi -- pogi mcp # or straight over HTTP claude mcp add --transport http pogi http://localhost:7644/_pogi/mcp # Cursor: .cursor/mcp.json { "mcpServers": { "pogi": { "url": "http://localhost:7644/_pogi/mcp" } } } # Codex: ~/.codex/config.toml [mcp_servers.pogi] command = "pogi" args = ["mcp"] # pogi must be running (pogi start). "pogi agents init" adds a brief on using it to AGENTS.md.02
Give it tools
Tools to look inside: the request log, one request in full, why IAM said no, resources, queue messages and the inbox. Tools to control: reset, snapshots, chaos rules, Lambda calls and cost estimates.
MCP tools/listchaos_add chaos_clear chaos_list connection_info delete_stack deploy_stack estimate_terraform_cost function_logs get_request iam_decisions inbox inspect_resource invoke_function list_resources list_sizes peek_queue request_log reset seed snapshot_list snapshot_load snapshot_save stack_status status
03
Brief it
pogi agents init adds a short brief about pogi to AGENTS.md. It sits between two markers, so running the command again updates it.
AGENTS.md (trimmed)<!-- pogi:begin --> ## Local cloud: pogi This project develops against pogi, a local emulator of AWS, Google Cloud and Azure on one endpoint, http://localhost:7644 (Azure Storage also uses ports 10000-10002). State is local and disposable; never use real cloud credentials here. - **Start and connect:** `pogi start` (`--headless` without a terminal), then `eval "$(pogi env)"` points the AWS, Google Cloud and Azure SDKs and CLIs at pogi. … - **MCP tools** (server `pogi` at http://localhost:7644/_pogi/mcp, or `pogi mcp` over stdio). … - a call failed: `request_log` with `errors_only`, then `get_request` for headers and bodies; `iam_decisions` when access is denied; - state and messages: `status`, `list_resources`, `inspect_resource`, `peek_queue` (SQS, without consuming), `inbox` (SES email, SNS SMS and email), `connection_info`; - control: `reset`, `snapshot_save` / `snapshot_load` / `snapshot_list`, `chaos_add` / `chaos_list` / `chaos_clear` (inject errors and latency), … `invoke_function` / `function_logs` (Lambda), `seed`. … <!-- pogi:end -->
Try it
This is real output from a running pogi.
Add pogi to Claude Code
claude mcp add pogi -- pogi mcp # or straight over HTTP claude mcp add --transport http pogi http://localhost:7644/_pogi/mcp
Write the brief
pogi agents init --file CLAUDE.md wrote the pogi section to CLAUDE.md
What to know
- There is no cloud-API passthrough. Agents make calls with the usual SDKs and CLIs, and use the tools to look inside pogi.
- pogi must be running (pogi start) for the tools to work.
Learn it step by step
The guides are in the docs.