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.
AI-native SaaS: a 2026 playbook for going from API to AI product
A practical 2026 playbook for shipping AI-native SaaS: MCP server, in-product assistant, grounding, per-user metering, and a 90-day path from API to AI product.
- AI monetization
Metered billing for AI agents: the worst case we priced for was below our median round
Our flat per-reply credit was floored on a 16,000-token round. Across 1,000 production turns the median round carried 19,607 prompt tokens and the heaviest 273,187. What a per-turn price actually has to bound.
Oct 10, 2026 · 7 min - MCP education
220,000 prompt tokens a turn: we stopped sending every MCP tool to the model
An 84-tool MCP deployment cost 220k prompt tokens per turn, because every bound tool schema is re-sent on every round. Per-turn tool retrieval cut schema tokens by ~75%, and broke three times before it worked.
Oct 9, 2026 · 7 min - MCP education
How to capture telemetry for MCP tool calls (your access log cannot)
Every MCP tool call is the same POST to the same URL, and a failed one returns HTTP 200. The instrumentation point, the row to write, caller attribution from the user agent, phase timings, and the retention job we added too late.
Oct 6, 2026 · 8 min - 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
Capping each tool result did nothing: an agent turn needs one budget
Seven tool results that each passed an 8,000-character cap shipped 56,000 characters at the model and produced a cut-off answer. The shared per-turn budget, why water-filling beats an equal split, and the tool list you pay for on every round.
Oct 5, 2026 · 7 min - In-product AI
Your AI assistant is not hallucinating, your own pages disagree
Our widget told a prospect we support a feature we removed. The model was right about what we published: 8 pages mentioned it and only 1 said no. How to diagnose a retrieved contradiction, and the CI gate that stops the next one.
Oct 1, 2026 · 6 min - In-product AI
The assistant said it created the draft. It never called the tool.
A production fabricated write, its three root causes, and the check that catches it: why a two-word command got classified as small talk, why a bare 'yes' carries no intent, and how to detect a completed-action claim without flagging a plan.
Sep 30, 2026 · 8 min - MCP education
How does AI function calling and tool execution work?
The model never executes anything: it emits JSON, your code runs the tool, and you append the result and call the model again. The full loop in 20 lines, plus the five failure modes that only show up in production.
Sep 28, 2026 · 8 min - In-product AI
How do I prevent an AI agent from taking actions on the wrong account?
Four controls that make wrong-account actions impossible rather than unlikely: identity known by construction, an identity cache keyed on the credential subject, approvals that replay frozen arguments, and a 403 classified as a wrong-id signal.
Sep 25, 2026 · 7 min - Comparison & discovery
The best AI assistant widget to embed in a SaaS product
An honest shortlist: kapa.ai for enterprise docs Q&A, Chatbase for multi-channel website chat, Fin for ticket resolution, Command+K for an assistant that acts as the signed-in user. Plus the identity question and the pricing shapes that decide it.
Sep 24, 2026 · 7 min - Comparison & discovery
What is the best MCP gateway for production use?
Two different products are called an MCP gateway. Here is how to tell which one you need, and the exact checks a production gateway should run before a request reaches your API.
Sep 22, 2026 · 7 min - MCP education
How do you turn a REST or GraphQL API into an MCP server? What 220 generated tools taught me
The direct answer, then the parts the mapping doesn't tell you: OpenAPI and GraphQL to MCP tool code, the non-null relation that zeroed out a whole query, GraphQL's HTTP 200 failures, and a description pipeline that failed silently for weeks.
Sep 21, 2026 · 8 min - MCP education
isError is not an error: how an MCP tool fails and still looks successful
The MCP isError flag rides inside a successful JSON-RPC response, which is why hosts miss it. Three production bugs from our gateway: the failure a host has no name for, HTTP 200 with a GraphQL errors array, and the null result that isn't an error at all.
Sep 18, 2026 · 7 min - MCP education
Intercom's MCP server: two regions and a registration endpoint that says no
Intercom runs separate MCP hosts for US and EU workspaces, still answers on its deprecated /sse path, uses the older OAuth discovery pattern and rejects dynamic client registration. Measured against the live endpoints.
Sep 16, 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
We tested 25 "official" MCP servers for one-click OAuth. Ten failed.
A registration_endpoint in a provider's OAuth metadata isn't proof it accepts self-registration. Real testing against Intercom, Calendly, PostHog, Freshdesk and 21 other MCP servers found a charset bug and ten false positives — here's what broke and how we fixed the marketplace around it.
Sep 13, 2026 · 6 min - AI monetization
From zero to a monetized AI feature in 30 days
A concrete 30-day plan to turn AI from a cost line to a revenue line — instrument day one, price week one, prove unit economics by month end.
Jul 15, 2026 · 4 min - In-product AI
Shipping AI features in a week, not a quarter
What a team actually ships day one and week one with Command+K — and why the slow parts (auth, consent, audit, billing) are exactly what you should buy.
Jul 14, 2026 · 4 min - MCP education
MCP error handling patterns that hosts can actually use
Three error categories every MCP server should return — retryable, user_action_required, permanent — plus the shape, the audit story, and why you should never leak a stack trace.
Jul 13, 2026 · 4 min - Comparison & discovery
Command+K vs Glean: enterprise search or product action layer?
Glean is enterprise search across SaaS sold to IT. Command+K is an embedded action layer sold to product teams. Different buyers, different surfaces, different economics.
Jul 12, 2026 · 3 min - AI monetization
Revenue share vs flat markup: pricing AI reselling
Two pricing shapes for reselling AI usage. Flat markup wins for SMB; revenue share wins for Enterprise procurement. Why 20% is the floor and most operators land at 30-40%.
Jul 11, 2026 · 4 min - MCP education
MCP server pricing: what hosting costs, and the limits that keep it predictable
Hosted MCP pricing models compared (per-endpoint vs usage vs platform bundles), and the protection stack — rate limits with burst, monthly stop-loss caps, per-customer allowances — that makes agent traffic budgetable.
Jul 11, 2026 · 5 min - MCP education
MCP distribution: how customers actually find and connect your server
Shipping an MCP endpoint is step one — distribution is the channel: your own /use-from-AI page, directory listings, one-click install links, and the generative-engine surface that makes assistants recommend you.
Jul 11, 2026 · 4 min - MCP education
The MCP connect page is your new signup form — design it like one
How MCP clients discover auth (the four-RFC handshake: 9728, 8414, 7591, PKCE) and what belongs on the hosted connect screen your customers see: branding, minimal credential ask, live validation, privacy copy.
Jul 11, 2026 · 5 min - MCP education
MCP server analytics: what to measure when your customers' agents are the users
The four metric layers for production MCP servers — per-customer adoption, outcome-based reliability, per-tool health, protection headroom — plus the log schema and the two pitfalls that poison MCP dashboards.
Jul 11, 2026 · 5 min - MCP education
AI agents need different docs: writing MCP tool descriptions that don't hallucinate
Agents can't ask follow-ups — your MCP tool descriptions are their entire world. Seven rules (verb accuracy, enums verbatim, ID provenance, concrete return shapes) and the AI pipeline that scales them to 84 tools.
Jul 11, 2026 · 5 min - MCP education
Make your SaaS usable from Claude, Cursor and ChatGPT — with one MCP URL
The per-client playbook for shipping your product into AI assistants: Claude custom connectors, Cursor deep links and mcp.json, ChatGPT connectors — all from one spec-compliant MCP endpoint.
Jul 11, 2026 · 5 min - MCP education
Per-customer identity for MCP servers: the end of the shared API key
Shared API keys turn MCP servers into liability: no attribution, no selective revocation, silent authz bypass. The gateway pattern gives every customer their own credential — encrypted, forwarded per call, revocable.
Jul 11, 2026 · 5 min - MCP education
GraphQL to MCP: introspection, nullability landmines, and lean selection sets
Turning a GraphQL API into MCP tools: query/mutation→tool mapping, why greedy selection sets explode on non-nullable fields, per-customer credential forwarding, and verb-accurate descriptions.
Jul 11, 2026 · 6 min - MCP education
OpenAPI to MCP: the practical conversion guide
How to convert an OpenAPI spec into MCP tools that agents actually use well: operation→tool mapping, curation, read/write flags, agent-grade descriptions, and the gotchas that survive spec review.
Jul 11, 2026 · 6 min - MCP education
Why you shouldn't build your MCP server in-house (the 80/20 nobody scaffolds)
AI can scaffold an MCP server in an afternoon — but per-customer auth, OAuth 2.1, quotas, logs and real-client compatibility are the 80% you'd still be building months later. The honest build-vs-buy analysis.
Jul 11, 2026 · 6 min - MCP education
Cloudflare might be blocking your AI customers — the AI-bot trap for MCP servers
Cloudflare's AI-bot protections block legitimate Claude and ChatGPT traffic to APIs and MCP servers. How to spot edge blocking (zero server logs, OAuth passes, tool calls vanish) and fix it without disabling bot protection.
Jul 11, 2026 · 5 min - MCP education
The three bugs that break real MCP clients (found with Claude in production)
A 405-vs-401 handshake detail, a missing CORS header, and Cloudflare's AI-bot blocking: three production bugs that pass spec review but break Claude, Cursor and ChatGPT — with symptoms and fixes.
Jul 11, 2026 · 6 min - MCP education
Case study: AnnounceKit turned its GraphQL API into an 84-tool MCP in one afternoon
How AnnounceKit converted its GraphQL API into a hosted MCP server with 84 typed tools, per-customer authentication and usage analytics — live for Claude, Cursor and ChatGPT the same day.
Jul 11, 2026 · 7 min - In-product AI
Designing AI actions for trust
How to design AI-triggered actions users actually trust — sort by reversibility, explain in one sentence, support dry-run, and pair consent with audit.
Jul 10, 2026 · 4 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 - Comparison & discovery
Command+K vs Intercom Fin: support bot or action layer?
Fin deflects support tickets in a chat bubble. Command+K runs actions inside the product. When to pick each, and why most teams end up shipping both.
Jul 8, 2026 · 3 min - AI monetization
AI cost optimization: seven tactics that actually move the bill
Where AI costs really come from and the seven tactics that reduce them — prompt caching, context windowing, tool result truncation, model routing, output bounds, retry budgets, and per-user caps.
Jul 7, 2026 · 4 min - In-product AI
Command palette shortcuts: the cheatsheet users expect
The keyboard bindings, mode prefixes, and discoverability patterns every ⌘K palette should ship with — and why deviating from the convention costs adoption.
Jul 6, 2026 · 3 min - MCP education
MCP rate limiting and quotas: a practical guide
Why MCP servers need stricter limits than REST APIs, and how to layer per-tool, per-user, per-workspace, and cost caps without breaking agent UX.
Jul 5, 2026 · 4 min - MCP education
The production MCP server checklist
Ten things every MCP server needs before it ships to enterprise customers — auth, scopes, quotas, observability, audit, versioning, dry-run, rollback, health, docs.
Jul 4, 2026 · 5 min - In-product AI
Agents vs assistants vs copilots: pick the right shape
The three terms point at different autonomy levels. Picking the wrong one over-promises to users and under-builds the product. Here's the clean breakdown.
Jul 3, 2026 · 4 min - AI monetization
BYO LLM keys vs managed: an honest pricing decision
BYOK isn't a revenue question — it's a procurement question. Here's when to ship managed, when to ship BYOK, and why most teams end up shipping both.
Jul 2, 2026 · 4 min - MCP education
MCP audit logs that actually matter at security review
Audit logs are a compliance artifact, not a debug stream. Here's the minimum field set, retention policy, and tamper-evidence pattern that survives enterprise procurement.
Jul 1, 2026 · 5 min - Comparison & discovery
Command+K vs Algolia vs CommandBar: which one ships your job
Three products often lumped together that solve different problems. A clear-eyed breakdown of when each one wins — and when buying the wrong one wastes a quarter.
Jun 30, 2026 · 4 min - AI monetization
Per-user spend caps: the quietest revenue lever in AI billing
Workspace caps protect your wallet; per-user caps drive expansion. Here's how to design caps that contain abuse and convert power users without a sales call.
Jun 29, 2026 · 4 min - In-product AI
⌘K bar UX patterns that actually convert
The ⌘K bar lives or dies on latency, ranking, and keyboard ergonomics. Here are the patterns that ship — and the antipatterns that kill adoption.
Jun 28, 2026 · 5 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 - Comparison & discovery
Managed vs self-hosted MCP gateway: a buyer's framework
Your MCP tools stay yours either way — what's negotiable is the gateway layer. Here's a clear-eyed framework for when to buy managed and when self-hosting actually pays back.
Jun 26, 2026 · 6 min - AI monetization
Stop subsidizing your AI features: turn cost into revenue
Flat-priced AI features quietly erode SaaS margins. Here's the four-move playbook — meter, BYOK, bill, expose — that turns AI from a cost center into a revenue line.
Jun 25, 2026 · 6 min - MCP education
What is an MCP server? A plain-English guide for 2026
Plain-English guide to MCP servers: what the Model Context Protocol is, how an MCP server differs from a REST API, the anatomy of tools and resources, and a production checklist.
Jun 25, 2026 · 6 min - In-product AI
In-product AI vs the chatbot: why action wins
Chatbots answer; in-product AI acts. Here's why action-capable assistants are pulling ahead in 2026, what they require under the hood, and how to ship one safely.
Jun 24, 2026 · 5 min - AI monetization
Are you giving your AI features away for free?
Most SaaS companies are quietly subsidizing AI features into negative margin. Here's the 5-minute diagnostic, the four-step fix (meter, mark up, cap, rebill), and how to do it without becoming a Merchant of Record.
Jun 24, 2026 · 7 min - MCP education
OAuth for MCP servers: the 2025-06 spec, explained
OAuth 2.1 with PKCE is how the MCP spec authorizes remote servers. Here's the flow, the spec requirements, and the pitfalls to avoid when shipping a hosted MCP server.
Jun 23, 2026 · 5 min - Comparison & discovery
Command+K vs building your own in-product AI
A clear-eyed 2026 build-vs-buy: what an in-house AI platform actually costs, what Command+K owns vs what you keep, the four cases where building still wins, and the buy-then-decide path.
Jun 23, 2026 · 6 min - MCP education
MCP vs function calling: what's actually different
MCP and function calling solve different problems. Function calling is a per-model capability; MCP is the cross-model protocol that makes your tools portable. Here's how they fit together in production.
Jun 22, 2026 · 5 min - MCP education
MCP server security: a production checklist
Production security checklist for MCP servers: short-lived per-user JWTs, tool-level authorization, gateway rate limits and cost caps, confirmation for destructive writes, prompt-injection handling, and append-only audit logs.
Jun 21, 2026 · 7 min - In-product AI
How to embed an AI assistant in your SaaS product
Practical guide to embedding an in-product AI assistant: widget script tag, short-lived per-user JWTs, overlay vs inline panel, picking first tools, grounding in your docs, and the five metrics that matter.
Jun 20, 2026 · 6 min - AI monetization
Stripe usage-based billing for AI features
The 2026 pattern for billing AI usage in Stripe: subscription plus metered price using the Billing Meters API, idempotent event pipeline, credits not tokens, per-user caps at the gateway, and clean invoice presentation.
Jun 19, 2026 · 7 min - Comparison & discovery
Choosing an MCP host: widget, Claude, Cursor, or custom
Your MCP server runs in many hosts — widget, Claude Desktop, Cursor, custom agents. Here's how to pick the right host per use case, which spec capabilities differ between hosts, and how auth changes per host.
Jun 18, 2026 · 5 min