Blog

Writing

Long-form from our team. Engineering, product, and company posts.

  • oauth

    Your MCP Server Shouldn't Make People Paste a Token

    Our MCP server worked well with personal tokens, as long as you lived in a terminal. Claude's chat apps and ChatGPT connect by signing in instead. What we shipped so they can, and the seven decisions that took longer than the code.

  • ai-agents

    Your MCP Server Shouldn't Run on a Shared API Key

    When an AI assistant changes your content through an MCP server, the first question is who did it. A shared project key cannot answer that, and it cannot be taken back from one person. Here is what we replaced it with, and the six details that mattered.

  • ai-agents

    MCP Can't Upload Files. Here's How to Let AI Agents Do It Anyway

    The Model Context Protocol has no way to send a file, and the obvious workarounds either burn tokens or turn your server into a proxy. Here is the presign, upload, confirm shape we shipped, and the four details that decide whether it is safe.

  • ai-agents

    Your Streaming Chatbot Is Probably Generating Every Answer Twice

    Tool calling and streaming pull in opposite directions, and the obvious way to reconcile them makes every answer twice: once to find out it was an answer, once to show it. Here is the shape of the bug, and what streaming every round actually costs you in care.