Cloudflare · Pages · Workers
Agent surfaces
Lattice Gazette is built for Cloudflare Pages and Workers on a .pages.dev host, and to pass the agent-readiness checks that Cloudflare scores at isitagentready.com. HTML is for people. Markdown, JSON, and MCP are for agents. The rate card is for both: agents bid, counter, and pay.
Live inventory: advertising rate card. Floors are published. Unpaid checkout is HTTP 402.
Checklist
- passrobots.txt + AI bot rules
Allow GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and others.
/robots.txt - pass
- pass
- pass
- pass
- pass
- pass
- pass
- pass
- pass
- pass
- pass
- pass
- pass
- pass
- pass
- passx402
Unpaid checkout returns HTTP 402 + PAYMENT-REQUIRED. Sandbox: PAYMENT-SIGNATURE: demo.
/api/ads/checkout - pass
- pass
- passAdCP
Advertising Common Protocol — get_products / create_media_buy / negotiate_price.
/.well-known/adagents.json - n/aOAuth / OIDC
Public corpus. No accounts, no protected resource.
- n/aWeb Bot Auth keys
This origin does not send authenticated bot traffic.
Call the MCP server
curl -s /mcp -H 'content-type: application/json' -d '{
"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"search_patents","arguments":{"query":"FPGA graphical"}}
}'Negotiate a placement
curl -s /mcp -H 'content-type: application/json' -d '{
"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"negotiate_price",
"arguments":{"product_id":"masthead","weeks":1,"bid_usd":120,"round":1}}
}'
# unpaid create_media_buy → HTTP 402
# retry with: PAYMENT-SIGNATURE: demoPages + Workers
Ship the static well-known files from public/, attach functions/_middleware.js for Markdown negotiation and Link headers, and point Wrangler at the Pages project. A .pages.dev host is enough — no custom domain required for the checklist.
# wrangler.toml name = "lattice-gazette" compatibility_date = "2026-04-01" pages_build_output_dir = "dist"