Field notes on AI-native SaaS.
How to ship MCP servers, embed in-product AI assistants, and monetize AI usage — written by the team building the platform.
- MCP education
A Cloudflare Worker cannot fetch its own domain
A subrequest to your own zone comes back 522, not your page. Three times it broke our knowledge ingest and our own health scorecard. The in-process fix, the recursion guard, and the two checks that start lying once the network is gone.
Oct 5, 2026 · 7 min - MCP education
Slack's MCP server is live. Your users still can't connect their own workspace.
Slack's MCP server uses user tokens, supports PKCE and returns a spec-correct 401. It also has no registration endpoint, and Slack permits MCP only for Marketplace-listed and internal apps. What that means if you embed an assistant in someone else's product.
Sep 15, 2026 · 7 min - MCP education
Our Mixpanel connector said "connected" and read nothing. It was the region.
A Mixpanel MCP connector authenticated cleanly, loaded all 65 tools, and refused every data read. The cause was data residency: Mixpanel runs a separate MCP host per region, Intercom does the same, and nothing in the MCP handshake tells a client which one it belongs to.
Sep 14, 2026 · 6 min - MCP education
MCP vs REST APIs: when to wrap and when to skip
MCP and REST solve different problems for different consumers. The diffs that matter — discovery, auth, errors, pagination, bounded output — and why most MCP servers are just glue over REST.
Jul 9, 2026 · 4 min - MCP education
MCP Tools vs Resources vs Prompts: which primitive when
MCP exposes three primitives because hosts render each as a different UI. Here's the decision rule for picking Tools, Resources, or Prompts — with examples.
Jun 27, 2026 · 4 min