Thank you @JenniferHli ! You're truly an investor like no other, and I'm deeply grateful to have had you on our board.
Thank you for going with me on the crazy stuff, supporting me on the tough stuff, and pushing me on the important stuff - always with warmth & wisdom. So rare.
Huge congratulations to @RattrayAlex and the @StainlessAPI team on the acquisition by @AnthropicAI.
From our earliest conversations, what stood out about Stainless was the clarity of the mission: make APIs feel effortless for developers, by turning API design into great SDKs, docs, and tooling by default. It sounds simple until you appreciate how much craft sits behind it. True to its name, Stainless polished every detail developers only notice when they’re missing: type safety, idiomatic clients, versioning, reliability, to create an experience that just works.
That kind of infrastructure compounds. As AI becomes more programmable and more deeply embedded in every product, the interface between developers and models matters enormously. Stainless built one of the defining developer infrastructure companies for that world.
Proud to have been part of the journey, and excited to see what the team builds next with Anthropic. Congrats Alex, Mark, Daniella, Alex A, Mirole and the entire Stainless team!!
Anthropic is acquiring @stainlessapi, an SDK and MCP server platform that has powered every Anthropic SDK since the earliest days of our API.
Read more: https://t.co/ZQbsZKnicv
@tobi Drives me nuts. I built a small app on valtown, it takes a button click but does the job: https://t.co/x2xbEU9W8J
You can fork it (link on page) to tweak things, eg format to your preference.
Ty @stevekrouse@ValTownHQ for making this easy!
@KentonVarda Are they more easily overwhelmed? Or does it just commonly take humans many hours to wrap their heads around a complex API, which isn't as visible or quantifiable a problem?
As @RattrayAlex taught me from his Stripe days: for most people is not about POST /v1/charges but stripe.charges.create().
That's how folks experience APIs.
If your MCP server has dozens of tools, it’s probably built wrong.
You need tools that are specific and clear for each use case—but you also can’t have too many. This creates an almost impossible tradeoff that most companies don’t know how to solve.
That’s why I interviewed my friend Alex Rattray (@RattrayAlex), the founder and CEO of @StainlessAPI. Stainless builds APIs, SDKs, and MCP servers for companies like @OpenAI and @AnthropicAI. Alex has spent years mastering how to make software talk to software, and he came on the show to share what he knows.
I had him on @every’s AI & I to talk about MCP and the future of the AI-native internet. We get into:
• Design MCP servers to be lean and precise. Alex’s best practices for building reliable MCP servers start with keeping the toolset small, giving each tool a precise name and description, and minimizing the inputs and outputs the model has to handle. At Stainless, they also often add a JSON filter on top to strip out unnecessary data.
• Make complex APIs manageable with dynamic mode. To solve the problem of how an AI figures out which tool to use in larger APIs, Stainless switches to “dynamic mode,” where the model gets only three tools: List the endpoints, pick one and learn about it, and then execute it.
• MCP servers as business copilots. At Stainless, Alex uses MCP servers to connect tools like @NotionHQ and @HubSpot, so he can ask questions like, “Which customers signed up last week?” The system queries multiple databases and returns a summary that would’ve otherwise taken multiple logins and searches.
• Create a “brain” for your company with Claude Code. Alex built a shared company brain at Stainless by keeping Claude Code running on his system and asking it to save useful inputs—like customer feedback and SQL queries—into GitHub. Over time, this creates a curated archive his team can query easily.
• The future of MCP is code execution. Instead of giving models hundreds of tools, Alex believes the most powerful setup will be a simple code execution tool and a doc search tool. The AI writes code against an API’s SDK, runs it on a server, and checks the docs when it gets stuck.
This is a must-watch for anyone who wants to understand MCP—and learn how to use them as a competitive edge.
Watch below!
Timestamps:
Introduction: 00:01:14
Why Alex likes running barefoot: 00:02:54
APIs and MCP, the connectors of the new internet: 00:05:09
Why MCP servers are hard to get right: 00:10:53
Design principles for reliable MCP servers: 00:20:07
Scaling MCP servers for large APIs: 00:23:50
Using MCP for business ops at Stainless: 00:25:14
Building a company brain with Claude Code: 00:28:12
Where MCP goes from here: 00:33:59
Alex’s take on the security model for MCP: 00:41:10
It's been an honor and a hoot working with @zeke & team at @replicate on their new SDKs & MCP server.
Zeke was co-creator of the original Swagger specification (now OpenAPI) and has been a tremendously thoughtful & creative design partner for the tooling we now build on top of it 🙏
@replicate lets you run AI models with a cloud API, without having to understand machine learning or manage your own infra.
Their first client libraries were hand-written, but became a maintenance burden as their HTTP API grew and evolved. The team wanted to transition to using an SDK generator, so they ran a thorough bake-off of Stainless against another provider.
@zeke, Replicate’s founding designer and the co-creator of Swagger (now known as @OpenApiSpec), led the evaluation.
Here are his words on what made Stainless stand out.
Have so much more where this came from to make it easier for LLM's to interact fluidly with large API's over MCP!
Thanks @zeke & @replicate team for being such a great design partner!
Coming soon... snappier MCP interactions from @replicate's MCP server, thanks to dynamic `jq` filtering of API responses. 🤯
The team at @StainlessAPI really knows how to cook.
Lol the "bad ai" you're referring to was the algorithm "docs."+<project_name>+".com" -- a simple placeholder intended for the user to edit in the stainless config. We stopped setting that default quite a while ago, it now defaults to empty.
We can tweak this setting for you if you like!
Turns out there's a lot to explore at the frontier of MCP and agents using APIs -- and a lot of people excited to explore it!
Thanks @danshipper, @mc_anthropic, @ilanbigio, @TomHacohen, and @shashankgoyal95 for dishing out the "warm takes" and hot ideas ♨️