Skip to main content
Software Engineering Daily

FastMCP with Adam Azzam and Jeremiah Lowin

66 min episode · 3 min read
·
Adam Azzam

Episode

66 min

Read time

3 min

Topics

Startups, Leadership, Design & UX

AI-Generated Summary

Key Takeaways

  • Decorator-first server design: FastMCP's core innovation mirrors FastAPI's pattern — a single `@mcp.tool` decorator registers any Python function as an MCP tool, replacing manual dispatch logic against raw JSON-RPC. This one abstraction drove initial viral adoption and remains the framework's foundation. Developers already familiar with FastAPI or Prefect's decorator patterns can build a functional MCP server in minutes without touching the low-level SDK.
  • Internal vs. external MCP use cases: Over 80% of FastMCP's real-world deployments are internal enterprise servers — not public-facing tools. Companies like Databricks, Snowflake, and MLflow use it to expose governed, identity-aware toolsets to employees. Internal deployments justify MCP over CLIs because they require stateful, bidirectional communication, role-based tool visibility, and tight contracts — none of which REST or CLI patterns handle cleanly without reinventing a protocol.
  • Rearchitecting before scaling features: FastMCP 3.0 was a deliberate ground-up redesign triggered by bolted-on technical debt across 2.x. The key new primitive is "transforms," which lets new capabilities slot into one file rather than spawning independent code paths. The payoff was immediate: code mode, a transformative feature, shipped as a net addition of roughly 200 lines of core code rather than the estimated 5,000–10,000 lines it would have required on the 2.x architecture.
  • Code mode shifts execution from client to server: Traditional MCP clients call tools serially, producing quadratic token growth per conversation turn. Code mode exposes two tools — search over a tool catalog and a code executor — letting the LLM author a full program against the server's toolset in one pass. Execution happens inside a secure sandbox (Pydantic's Monty runtime locally, or Modal/Daytona/Cloudflare remotely), removing dependency on client-side support and making parallel tool execution available across any MCP client.
  • MCP apps address the markdown rendering problem: When an MCP server returns 10,000 database rows, current LLM clients render the result as a markdown list — a poor user experience that also bloats the context window. FastMCP's apps pillar, paired with an open-source DSL called Prefab, lets server authors return typed UI components (bar charts, data tables, forms compiled from Pydantic models) directly from tool responses. Supported clients like VS Code, Goose, and Claude Code then render these components natively rather than as text.

What It Covers

Jeremiah Lowin and Adam Azzam, founder/CEO and VP of Product at Prefect, trace FastMCP's evolution from a weekend side project into a framework downloaded 2 million times daily. They cover the three pillars of servers, clients, and apps, the FastMCP 3.0 rearchitecture, and the freshly shipped code mode feature built on Pydantic's Monty sandbox runtime.

Key Questions Answered

  • Decorator-first server design: FastMCP's core innovation mirrors FastAPI's pattern — a single `@mcp.tool` decorator registers any Python function as an MCP tool, replacing manual dispatch logic against raw JSON-RPC. This one abstraction drove initial viral adoption and remains the framework's foundation. Developers already familiar with FastAPI or Prefect's decorator patterns can build a functional MCP server in minutes without touching the low-level SDK.
  • Internal vs. external MCP use cases: Over 80% of FastMCP's real-world deployments are internal enterprise servers — not public-facing tools. Companies like Databricks, Snowflake, and MLflow use it to expose governed, identity-aware toolsets to employees. Internal deployments justify MCP over CLIs because they require stateful, bidirectional communication, role-based tool visibility, and tight contracts — none of which REST or CLI patterns handle cleanly without reinventing a protocol.
  • Rearchitecting before scaling features: FastMCP 3.0 was a deliberate ground-up redesign triggered by bolted-on technical debt across 2.x. The key new primitive is "transforms," which lets new capabilities slot into one file rather than spawning independent code paths. The payoff was immediate: code mode, a transformative feature, shipped as a net addition of roughly 200 lines of core code rather than the estimated 5,000–10,000 lines it would have required on the 2.x architecture.
  • Code mode shifts execution from client to server: Traditional MCP clients call tools serially, producing quadratic token growth per conversation turn. Code mode exposes two tools — search over a tool catalog and a code executor — letting the LLM author a full program against the server's toolset in one pass. Execution happens inside a secure sandbox (Pydantic's Monty runtime locally, or Modal/Daytona/Cloudflare remotely), removing dependency on client-side support and making parallel tool execution available across any MCP client.
  • MCP apps address the markdown rendering problem: When an MCP server returns 10,000 database rows, current LLM clients render the result as a markdown list — a poor user experience that also bloats the context window. FastMCP's apps pillar, paired with an open-source DSL called Prefab, lets server authors return typed UI components (bar charts, data tables, forms compiled from Pydantic models) directly from tool responses. Supported clients like VS Code, Goose, and Claude Code then render these components natively rather than as text.
  • Client quality is the bottleneck, not the protocol: Most MCP adoption problems trace to clients that only implement tool calling and ignore resources, prompts, and tasks. When evaluating MCP clients, prioritize ones that support the full spec: Claude Code uses BM25 search over the tool catalog rather than stuffing all tools into the context window, VS Code and Goose support the complete range of MCP primitives. Server authors should test against multiple clients because identical server code produces wildly different agent behavior depending on client implementation quality.

Notable Moment

Anthropic's MCP inventor David Sariapara called Jeremiah Lowin weeks after FastMCP was open-sourced as a personal side project and asked to incorporate the codebase directly into the official MCP SDK. Lowin had already mentally moved on to other work, making the call entirely unexpected — and FastMCP's decorator pattern now lives inside the official SDK to this day.

Know someone who'd find this useful?

Episode Transcript

The model context protocol, or MCP, gives developers a common way to expose tools, data, and capabilities to large language models, and it has quickly become an important standard in Agentic AI. FastMCP is an open source project stewarded by the team at Prefect, which is an orchestration platform for AI and data workflows. The FastMCP project builds on MCP to provide high level ergonomic abstractions for Python developers to rapidly build and deploy MCP servers and applications. Jeremiah Lowen is the founder and CEO of Prefect, and Adam Azem is the VP of product at the company. In this episode, Jeremiah and Adam join Gregor Vann to discuss the origin story of Fast MCP, the three pillars of the framework, the architectural decisions behind Fast MCP three point o, and much more. Gregor Vand is a security focused technologist, having previously been a CTO across cybersecurity, cyber insurance, and general software engineering companies. He is based in Singapore and can be found via his profile at van.hk or on LinkedIn. Hello, and welcome to Software Engineering Daily. Today, we have two guests, which is always exciting. So today, we've got Jeremiah Lowen and Adam Azam. Thank you for joining us, guys. Thank you so much for having us. Yeah. So we're here to talk all things FastMCP, which I'm sure a lot of our listener base know about at least, but maybe a good chunk have used as well. So we're gonna get into where it's come from, what it's all about. As usual, we do like to just hear the backstories of who we're talking to. So you guys can fight amongst yourselves who wants to go first, but, yeah, where did you both come from in terms of careers and getting to, I guess, founding SMCP? Sure. This is Jeremiah. I spent most of my career actually in buy side finance in some risk or technology or applied statistics or machine learning kind of field. Data scientist is probably the best career heading for what I was doing there. And as a result, I became obsessed with building tools for people, tools for my colleagues, tools for folks across the firm, different objectives, whatever it was. I just became obsessed with building tools, and Python became a real home for building those tools and also automating those tools. I like to joke. It's not really a joke, but I had unlimited budget for software and zero budget for headcount. And so this is, you know, this is twenty years ago. So it was really, how do we find more hours in the day through technology? And so through some circuitous paths that led me to be part of the original airflow team, which I I think popularized a lot of code first automation, a lot of folks' eyes. And then, of course, I started Prefect in 2018 to build a more data science native, more Pythonic automation framework. And so for the last eight years, I've been …

Get the full transcript (13,488 words) + summary by email — free

One-time email with the complete transcript and AI summary of this episode. No account needed.

One email, no spam. We’ll also show you what SignalCast does.

Browse all Software Engineering Daily transcripts →

You just read a 3-minute summary of a 63-minute episode.

Get Software Engineering Daily summarized like this every Monday — plus up to 2 more podcasts, free.

Pick Your Podcasts — Free

Keep Reading

Books, tools, and gear mentioned in this episode

SignalCast may earn commission on purchases via these links.

Tools

  • by Prefect

    Jeremiah Lowin and Adam Azzam, founder/CEO and VP of Product at Prefect, trace FastMCP's evolution from a weekend side project into a framework downloaded 2 million times daily.
  • The freshly shipped code mode feature built on Pydantic's Monty sandbox runtime.
  • Execution happens inside a secure sandbox (Pydantic's Monty runtime locally, or Modal/Daytona/Cloudflare remotely).
  • by Anthropic

    Supported clients like VS Code, Goose, and Claude Code then render these components natively rather than as text.
  • Execution happens inside a secure sandbox (Pydantic's Monty runtime locally, or Modal/Daytona/Cloudflare remotely).
  • Decorator-first server design: FastMCP's core innovation mirrors FastAPI's pattern — a single `@mcp.tool` decorator registers any Python function as an MCP tool.
  • by Microsoft

    Supported clients like VS Code, Goose, and Claude Code then render these components natively rather than as text.
  • Supported clients like VS Code, Goose, and Claude Code then render these components natively rather than as text.

company

  • Companies like Databricks, Snowflake, and MLflow use it to expose governed, identity-aware toolsets to employees.
  • Anthropic's MCP inventor David Sariapara called Jeremiah Lowin weeks after FastMCP was open-sourced as a personal side project and asked to incorporate the codebase directly into the official MCP SDK.
  • Companies like Databricks, Snowflake, and MLflow use it to expose governed, identity-aware toolsets to employees.
  • Jeremiah Lowin and Adam Azzam, founder/CEO and VP of Product at Prefect, trace FastMCP's evolution from a weekend side project into a framework.
  • Companies like Databricks, Snowflake, and MLflow use it to expose governed, identity-aware toolsets to employees.

More from Software Engineering Daily

We summarize every new episode. Want them in your inbox?

Similar Episodes

Related episodes from other podcasts

Explore Related Topics

This podcast is featured in Best Cybersecurity Podcasts (2026) — ranked and reviewed with AI summaries.

Read this week's Startups & Product Podcast Insights — cross-podcast analysis updated weekly.

You're clearly into Software Engineering Daily.

Every Monday, we deliver AI summaries of the latest episodes from Software Engineering Daily and 192+ other podcasts. Free for one show.

Start My Monday Digest

No credit card · Unsubscribe anytime