Sign in or Join the community to continue

The Creator of FastMCP Explains the Future of MCP

Posted Jul 20, 2026 | Views 26
# MCP
# FastMCP
# Prefect
Share

Speakers

user's Avatar
Jeremiah Lowin
Founder & CEO @ Prefect

Jeremiah Lowin is the Founder & CEO of Prefect, the company behind some of the most widely used tools for managing data and AI workflows. Prefect orchestrates a millennium of compute every month, and FastMCP has become the standard framework for working with the Model Context Protocol (MCP).

In addition to leading Prefect, they serve as a strategic advisor to Spotify, Positive Sum, and OSV, and are the Global Ambassador for Compass Coffee. They were also a founding Project Management Committee (PMC) member of Apache Airflow.

Prior to founding Prefect, they led risk and data initiatives at some of the world's largest buy-side investment firms. Their background is in statistics and machine learning.

+ Read More
user's Avatar
Demetrios Brinkmann
Chief Happiness Engineer @ MLOps Community

At the moment Demetrios is immersing himself in Machine Learning by interviewing experts from around the world in the weekly MLOps.community meetups. Demetrios is constantly learning and engaging in new activities to get uncomfortable and learn from his mistakes. He tries to bring creativity into every aspect of his life, whether that be analyzing the best paths forward, overcoming obstacles, or building lego houses with his daughter.

+ Read More

SUMMARY

Jeremiah Lowin — founder and CEO of Prefect and creator of FastMCP — traces how a two-hour struggle to build a basic MCP server turned into FastMCP, a side project that Anthropic folded into the official SDK and that now underpins roughly 70% of all MCP servers. He argues the biggest real-world use of MCP isn't reaching external customers but serving data and business logic to teams inside a company (especially data, platform, and ML teams building self-serve data platforms), where the client is known and trusted. He pushes back on the "MCP is dead / it should just be a CLI" narrative, blaming bad clients that dump every tool into an LLM's context rather than the protocol itself. The centerpiece is Prefab, a newly launched Python DSL of 100+ prefabricated, fully interactive React components (ShadCN-based) that let you return a chart, table, or form straight from a tool as an MCP App — token-efficient, streamable, and routed to the user's UI without polluting the LLM's context window. He closes with candid stories about his OpenClaw agent deleting his conference slides (forcing him to rebuild with Claude Code), how he uses a memory-driven home agent for family logistics, and the intimate, builders-only PyAI conference Prefect co-hosts with Pydantic.

+ Read More

TRANSCRIPT

Jeremiah Lowin: [00:00:00] I came to New York to the Dev Summit to give a talk, and I had been working and working and working on my slides, and I got here to the hotel and I opened my computer and my OpenCL had decided in its, in its exuberance to help-

Demetrios: In its infinite wisdom ...

Jeremiah Lowin: in its infinite wisdom, it had decided to delete all of my slides.

Jeremiah Lowin: I have now built a piece of software that I think is a really clean way of going from 0 to 60 on building a server in, like, two seconds.

Demetrios: Yeah.

Jeremiah Lowin: So I put it in the world, and honestly, I kind of forget about it. I think I have an opinion that most people here at the conference don't share, which is based on experience, and I'm pretty confident it's right.

Demetrios: All right, so give me the story of fast MCP.

Jeremiah Lowin: You wanna dive right in on that?

Demetrios: Let's go right

Jeremiah Lowin: to it. Let's go. Um, fast MCP. So, uh, the MCP is announced November of 2024, and I see it and, and as you know, as we were talking, Prefect, we're all about workflows and connecting software and gluing [00:01:00] things together.

Jeremiah Lowin: And so I've been, I've been trying to figure out for a few years, what does it mean to automate agents? Like, how do we plug them into our software ecosystem? And so MCP is announced and I'm like, "Maybe this is the thing. Maybe this is finally the protocol and it's from a big enough company, it's gonna be the thing."

Jeremiah Lowin: And I try to use it, and it's just really hard to use.

Demetrios: Hmm.

Jeremiah Lowin: The SDK is complicated. It takes me a couple hours to set up a basic server. And As I may have a tendency to do

Demetrios: What was the first server you tried to set up?

Jeremiah Lowin: I don't even remember anymore. Yeah. No? It was probably like to say hi. Uh-huh. Like, it was just, it was just complicated to set up.

Jeremiah Lowin: It wa- it was just to test.

Demetrios: Yeah.

Jeremiah Lowin: And I end up writing a piece of software to make it easier to build servers.

Demetrios: Uh-huh.

Jeremiah Lowin: And I call it FastMCP, and I put it in the world. I've-- By this time, I've forgotten the point. I, I don't even... Like, I couldn't tell you what server I was trying to build, but I've now built a piece of software that I think is a really clean way of going from zero to 60 on building a server in, like, two seconds.

Jeremiah Lowin: Yeah. So I put it in the world, and honestly, I kind of forget about it. It's like a thing, it's a little side project, and I go back to building workflows for [00:02:00] people. And I get a call from David Soryapara, uh, maybe a couple weeks later, and he says, "Listen, this, this is a really good developer experience.

Jeremiah Lowin: Could we put this in the official SDK? Can this become how people build MCP servers?" And I was like, "Yeah, this is the coolest thing that's ever happened to me, that Anthropic would want to, to use this open source software." Yeah. So I worked with David, and he ported it into the SDK, and, uh, to this day, if you use the official SDK, you import a FastMCP object, and you build your server with it.

Jeremiah Lowin: And, um, honestly, that would've been that, and that could've been the end of the story.

Demetrios: Mm-hmm.

Jeremiah Lowin: What changed is exactly a year ago, um, Google and OpenAI both announced that they were gonna support MCP, and that's when the hype started, which- Yeah ... I think is why we're here today at the, at the Dev Summit, right?

Jeremiah Lowin: 'Cause the hype, the hype train left the station. And when they announced that was gonna happen, um, I think it was the catalyst that, that we needed as a community to start taking this technology seriously. And I found out about this because my repo, which was ef- essentially defunct [00:03:00] at the time because everything had moved to the official SDK, my repo started getting thousands of GitHub stars and issues and- Mm

Jeremiah Lowin: requests and people asking for things that I realized were not appropriate for a low-level SDK. People were asking for auth and composability and the, the things you would expect from, like, an application, like an MCP application framework. Mm. And I kind of hemmed and hawed on this for a while, but there was so much demand that it just seemed like we should meet it.

Jeremiah Lowin: And so we restarted FastMCP as a standalone project, uh, with FastMCP 2 exactly a year ago. Um, and it grew and grew and grew and gets downloaded millions of times a day and 25,000 GitHub stars. I don't even know. Uh, it's been, it's just been a remarkably successful open source project. And, uh, and, and, and that sort of brought us into this ecosystem and this community from a very different perspective.

Jeremiah Lowin: I think we, we've, we had, uh, figured out recently that something like 70% of all MCP servers are written on either our FastMCP or [00:04:00] the- Wow ... the official SDK FastMCP. So it's just, it's kind of become the standard way that people build MCP servers, and it's given us this fascinating insight into, like- what's going on, what people are doing.

Demetrios: What should I keep in mind when building with FastMCP? Are there any gotchas that I need to know about, or any trade-offs?

Jeremiah Lowin: You know, there, there are, but they're, they're well-intentioned. So FastMCP is an opinionated framework, and what I mean by that is we have an opinion on a certain kind of MCP server, a certain experience of building it.

Jeremiah Lowin: Um, we, we try to be, you know, f- as flexible as possible. If you're building this kind of down the fairway normal MCP server, you're gonna have an amazing experience. If you want to turn every little knob and every configuration in every possible way beyond that, you're probably better off going to the SDK- Mm

Jeremiah Lowin: and getting as close to the protocol as you can. And I think this is, this is a really healthy tension. The SDK is the low-level way to work with a protocol, and FastMCP is, for 90% of people, probably the easiest way to skip all of that and just get a server. It's literally in the name. It is. It's literally in the name.

Jeremiah Lowin: It's a fast way[00:05:00]

Jeremiah Lowin: of

Demetrios: doing it.

Jeremiah Lowin: And, and, and the reason it's named that, it's funny, if I knew how popular it was gonna be, maybe I wouldn't have named it that. Although now seeing how popular it is, I'm like, "Maybe the name has something to do with that." But it's, but it's very much an homage to FastAPI-

Demetrios: Oh ...

Jeremiah Lowin: uh, which is the- Good old Sebastian

Jeremiah Lowin: exactly. Yeah. Which is the high-level entry point to the Python web world- Oh ... on top of Starlette as its low-level SDK. Yeah. And so most people w- writing most servers will use FastAPI to skip a lot of the hard work, but some people will go straight into Starlette for the low level. And so we wanted to occupy a similar sort of space in people's mind-

Demetrios: Okay

Demetrios: mindset. Yeah, I thought it was fast just because it, you can set up an MCP server so fast.

Jeremiah Lowin: I mean, you can do that too.

Demetrios: Yeah.

Jeremiah Lowin: It works really well. So it's been this journey of, you know, from, from day two, basically, of MCP having, uh, essentially this front row seat to the growth and being there when nobody cared about it, and now f- now how ridiculous the, you know, MCP is dead and all this stuff.

Jeremiah Lowin: Our, our team threw a funeral for MCP last night- Wait, yeah, that- ... for [00:06:00]

Demetrios: April Fools. Which was amazing. Okay, I was gonna ask, is it an April Fools thing, or was it because you were just jumping on the hype?

Jeremiah Lowin: It was, uh, conveniently an April Fools thing.

Demetrios: Uh-huh.

Jeremiah Lowin: I, I think we decided that this was the thing to do to poke fun at the whole debate.

Demetrios: Yeah.

Jeremiah Lowin: And then we suddenly realized it was also gonna be on April Fools. Okay. And I was like, "Oh, this is perfect. We have to do this." And we did it last night, and it was an enormous success.

Demetrios: It was a celebration of life,

Jeremiah Lowin: right? It was a celebration of life. Yeah. And we had a string quartet- ... and a singer, and we passed MCP apps, and it- Did you have

Demetrios: an open casket?

Jeremiah Lowin: tons. We, uh, we did not have an open casket- Oof, oh, good ... 'cause there was no, there was no body to be found. There was

Demetrios: n-

Jeremiah Lowin: No body. That's the thing, that's the thing about, uh, something that's not really dead. But I, I do, I do think it's ridiculous that, that this is the charge, and I don't know, as you and I were, were, were chatting earlier though, I think that there is a s- a small degree of legitimacy in the charge that this MCP server could be a CLI.

Demetrios: Mm.

Jeremiah Lowin: Um, there are some MCP servers that are Not good. Um, [00:07:00] and there are many MCP clients that do nothing more than download every single tool they find on a server and shove them into an LLM's brain.

Demetrios: Yeah.

Jeremiah Lowin: And I think if that's what the client is doing, then the charge that you would be better off with a CLI is, uh, not a, not terrible.

Jeremiah Lowin: Like, like we, we need to be honest. We need to confront what enabled folks to make that charge. Um, that action of downloading every single tool and shoving them into an LLM has very little to do with what MCP is supposed to do and enable. It is the worst version of the simplest feature.

Demetrios: Yeah.

Jeremiah Lowin: And I think, um One thing that I was talking about here at the conference is I think that last year the name of the game was to drive adoption of MCP.

Jeremiah Lowin: And so we tolerated MCP clients that took this sort of 101 approach to what it meant to be an MCP client. And one of the things that I'm really excited for us to do in 2026 is build rich enough MCP experiences that it forces clients to step up.

Demetrios: Well, you have a very opinionated view of how to do that, [00:08:00] right?

Demetrios: I do. With Fast MCP and probably just in your own buildings, what are some things?

Jeremiah Lowin: I do. Um, so for us, there's a, there's a few things that we've, that we've noticed. Um, uh, so, so there's this thing that I, that I believe that I know that I don't know that everybody here, uh, is maybe aware of. I wouldn't say that they necessarily, uh, are ignorant of.

Jeremiah Lowin: But, um, the one thing that I believe that I'm not sure everybody else believes is that the number one use case for MCP is inside the four walls of a company, for people in the company to deliver, uh, data and information and business logic to other people in the same company.

Demetrios: Wow, okay. I mean, I've heard that a lot with like internal APIs, that same kind of idea, but I haven't heard anybody say that that is one of the greatest use cases.

Jeremiah Lowin: I, I really think it is just, just based on who we see showing up and building servers- Hmm ... and what they wanna do and what their concerns are. And this is not something that I expected, to be clear.

Demetrios: But is, is that not just a maturity thing because we're so early still?

Jeremiah Lowin: I, y- so I, I could [00:09:00] believe that. So it's, uh, it's not that I don't think MCP will ever be like broadcast to a company's customers or anything like that.

Jeremiah Lowin: Um, but I think many people, including myself, expected that the number one thing that would happen with MCP is I, as an individual, would write some logic that I want your agent to be able to consume- Yeah ... and here's how I'll do it. And then I, as a company, will want my customers to access my API through MCP, and that's what we'll do.

Jeremiah Lowin: And so I think that that is very much in scope, and I'm very excited about that. But I think what has stopped it, if there's one thing that has like become the friction, it's actually that you just, you don't know what the client is capable of- Mm-hmm ... except maybe tool calls. Mm-hmm. And it's hard to sh- maybe ship a very exciting server to a client you don't know or control or trust.

Jeremiah Lowin: Yeah. Inside your company, though, I know what the client is. I don't have a trust boundary problem. I can ship more interesting code. I can ship a richer code. I can take advantage of more features.

Demetrios: Yeah.

Jeremiah Lowin: And so I think that's one dimension.

Demetrios: Yeah, you're flipping the narrative on the head a little bit because it was [00:10:00] very much sold to us as, "Look, this is how you interact with my thing."

Jeremiah Lowin: Yes, exactly.

Demetrios: This is your USB-C. Remember, that was the big- USB-C

Jeremiah Lowin: for the internet. Yeah. Exa- exactly. And I think that's all true. I, I, like that, I think that will happen, but that adoption is much I don't even, I don't even know if it's fair for me to say it's slower than I expected. Um, it's the, this other use case, this first party- It's faster

Jeremiah Lowin: use case is-

Demetrios: Yeah ...

Jeremiah Lowin: exploding. And where we're seeing it, which has been especially interesting for us a- at Prefect because of who our customers are, is we're seeing it especially among data teams, platform teams, ML teams, um, the same folks that we've been serving for years and helping them build the workflows that hydrate the dashboards and the- Mm-hmm

Jeremiah Lowin: models and stuff. I think that they either came to view or had thrust upon them a view that MCP solves this self-serve, uh, data platform problem-

Demetrios: Yeah ...

Jeremiah Lowin: uh, finally, that, that every vendor under the sun has tried to solve, and no one's been able to, like, handle the infinity of complexities. Uh, [00:11:00] so what do you do?

Jeremiah Lowin: The first version of this was a data team standing up an MCP server in front of the data warehouse and saying, "Look, we don't wanna write another query for you. Just ask your agent to write the query and do it." And they did that for a week, and then the agent took down the warehouse- Yeah. ... and ran up a huge bill 'cause it did select star in BigQuery or who knows what.

Demetrios: Yeah, exactly. And- It doesn't have any idea of what costs money.

Jeremiah Lowin: It, it, it really doesn't. And so- For something that's supposed to be so- Yeah ... superhuman and omnipotent.

Demetrios: You gotta have a FinOps skill. Huge. Exactly. And make sure that, like, this is our CFO skill. It makes sure that we do not spend more than a grand per query.

Jeremiah Lowin: Right, and it's, and it's all data warehouse, you know, uh, precise. Yeah. Like for BigQuery, you need to work like this. Yeah. ClickHouse, these are the kinds of queries you need to make. Yeah. And, um, I actually need that in my life. I know, right? You know, I've made some of those mistakes. Mm-hmm. Um, a- a- and so I think, I think that that, you know, there was this evolution of first you plug it into the, into the, um, into the data warehouse, and then you use a tool like FastMCP to maybe curate that a little bit and, and not just give raw access.

Jeremiah Lowin: And before you know it, you have now actually built a self-serve data platform. [00:12:00] Um, and I, I don't think this is, like, uniquely the only use case, but we were shocked when the folks who showed up to talk to us about MCP, honestly just 'cause they see FastMCP in the world, most of them don't even realize it's Prefect at first.

Jeremiah Lowin: Mm. There's this FastMCP. They, they assumed it was a company.

Demetrios: Mm-hmm.

Jeremiah Lowin: They were like, "Oh, we wanna talk to FastMCP." How funny is that? And I was like, "Well-"

Demetrios: Yeah. "...

Jeremiah Lowin: I guess that's us." Uh, we, we, we would just, we would just hear over and over from the same folks that we were talking to in the data side, I think with one critical difference, which is on the data side, you're trying to justify the cost of this thing.

Jeremiah Lowin: It's a workflow. It's a- Mm-hmm ... it's an internal thing. On the MCP side, because of the hype, you have CEOs who are saying things like, "We must have MCP."

Demetrios: But Prefect- Was open source, right?

Jeremiah Lowin: Prefect is open source.

Demetrios: So yeah, I imagine that you were talking to a lot of people on the open source side with Prefect, and then they come and they're like, "Wait, same guy?"

Jeremiah Lowin: Yeah. "

Demetrios: I feel like I know you from somewhere."

Jeremiah Lowin: There, there was a surprising-- I think one of the first customer calls we ever [00:13:00] did was one of our customers. One of our then customers at Prefect, one of our first customer calls for the, for the FastMP product, which is called Horizon, uh, was one of our customers who did not fully realize, because it was a, it was, you know, we launched it under a different name a few months ago.

Jeremiah Lowin: Mm-hmm. We hadn't fully brought it into the Prefect, you know, product family yet. And he gets on, he's like, "I know you guys." "We run all our data pipelines on your software." Yeah. "You do NCP too?" And we had this weird question where people were like, "Well, how can you possibly know about both?"

Demetrios: Uh-huh.

Jeremiah Lowin: Which is a really interesting charge.

Jeremiah Lowin: And I think my point of view is, well, it's, we do know about both, but what we really know about is building software that makes things accessible to people. And then we take on the responsibility of learning all the ins and the outs and the best practices of a data platform or an AI platform or whatever you wanna call it.

Demetrios: Yeah.

Jeremiah Lowin: Um, the- So the,

Demetrios: the idea is still the same, abstracting away that complexity so that I can get what I wanna get done in an easier and nicer developer experience.

Jeremiah Lowin: Exactly. We, we, we wanna make complicated things simple.

Demetrios: Uh-huh.

Jeremiah Lowin: And I love Python. My whole career [00:14:00] is thanks to Python in some way, shape, or form.

Jeremiah Lowin: I think it's an amazing way to express what you want to do and make it readable and everything. And so a lot of what we do could be kind of boiled down to, like, we take complicated things, we make them feel like Python.

Demetrios: Yeah.

Jeremiah Lowin: And if they feel like Python, a lot of people find it accessible.

Demetrios: Hmm.

Jeremiah Lowin: And now all of a sudden you can do things that you maybe wouldn't know how to do or maybe would struggle to figure out the best practices for.

Jeremiah Lowin: And so one way that I really like to think about the software we build at Prefect across the whole product portfolio is it's about embedding best practices in software so that you don't have to learn the best practices of this protocol or when to send a ping or, you know, all these weird little quirks that there are.

Jeremiah Lowin: You can just focus on the thing that you were hired to do, which is probably related to something unique to your company And we'll worry about all the, like, connectivity of that to this broader landscape of best practices.

Demetrios: Well, getting back to the opinionated nature of this, I know that with Prefect you have some very magical moments when you're using it, and you go like, [00:15:00] "Look, you just type this and then that happens.

Demetrios: Wow." And I've been in calls where people have showed others that and they've gone, "Wait, what?"

Jeremiah Lowin: Yeah. "

Demetrios: No. That's all you gotta do? Oh my God." And how are you taking that same approach? Like, what are some things you're doing with MCP now that gives that magical experience because it is opinionated and you say, "Look, we gotta do it like this.

Demetrios: We're gonna abstract away all this complexity, but we're gonna give you those magical experiences."

Jeremiah Lowin: Yeah. That-- So I actually learned the hard way, you can take that too far.

Demetrios: Yeah.

Jeremiah Lowin: In some of the very first Prefect call, this is eight years ago. Yeah. But just to go in the time machine for a second. In those very first calls, um, you had to write less Prefect code than you do today to get the same outcome.

Jeremiah Lowin: We worked really hard at that. Like, today it's pretty minimal. Yeah. Import, decorate, like you're basically done. We were doing more-- We're-- It was so magical. And we showed it to a very early user. They didn't believe. And they, they didn't believe- Yeah ... we were doing anything. Yeah, yeah. And so it's this fascinating product lesson about you need the exact right amount of like [00:16:00] constructive friction- Yeah

Jeremiah Lowin: let's call it, right? We don't wanna be in your way, but we want you to h- we want to create an expectation of what's about to happen, and if it's too magical, you are robbed of this opportunity to form an expectation about how to reason about your own software. Yeah. And in a very early version, we went too far.

Jeremiah Lowin: So it's an art, it's not a science-

Demetrios: Yeah. It reminds me of- ...

Jeremiah Lowin: of how

Demetrios: you approach this ... how you don't wanna give somebody a search result too fast, otherwise they think that you didn't search through all the documents.

Jeremiah Lowin: Yeah. Yeah. Aren't there studies like, like you, you put this tiny like 100 millisecond

Demetrios: little- Yeah, the spinner.

Demetrios: Yeah ... yeah, something like that. Because otherwise people would be like, "No, it didn't work. It didn't search everything."

Jeremiah Lowin: Exactly. There is a such thing as being too magical.

Demetrios: Yeah.

Jeremiah Lowin: And in Python, it's so easy to be too magical. Oh. And so this is, this is an art. This is a something you have to develop an intuition for.

Jeremiah Lowin: Um, so in FastMCP, we do it in, in a few ways. One of them is one that I hope most people never figure out, which is that if you actually try to use the low-level SDK, you might-- it might take you an hour to like build a server and register all the handlers and, and in FastMCP, it's very similar to Prefect.

Jeremiah Lowin: Import, decorate, like you're done. Done. [00:17:00] You have a server. And so we're at a point where it's so prevalent, I'm not sure if people understand how magical that is. Um, where the magic really comes from, I think, is we, we bend over backwards to make sure that when you set up a function, uh, that returns something interesting like, um, like a Pydantic model or like a table or something like that we serialize it appropriately in the fra-- in the protocol context.

Jeremiah Lowin: And so there's, again, we're in the ins and outs of what's best practice. The protocol can just send text to the LLM because that's what it's expecting to get, just a bunch of tokens. But there's also ways to send structured data and structured information. But in order to do that, you have to declare your schema up front.

Jeremiah Lowin: You have to conform to that schema, or the protocol will reject it. There's a lot of stuff you have to do. I don't want my users to have to think so hard about their functions that now they can't return a dictionary from their function because first they have to figure out how to declare a schema for it.

Jeremiah Lowin: And so we come up with developer experiences where if you tell us, "I'm gonna return a, a user," [00:18:00] we're like, "Great, we have all the information we need to wire up the protocol for you. Just promise me you're gonna return a user so that the protocol's happy, and we're good to go." And I mean, who knows how many lines of code we're, we're, we're saving there.

Jeremiah Lowin: A, a lot. Yeah. Um, but it's little things like that where my, my philosophy in all the software is to use one more feature should be one more line of code. I think that's a really nice... I don't know if we can literally do it every time, but like both in Prefect and in Fast MCP, if you want to do one more thing, I'd like it to be one more line of code.

Demetrios: And with this, is it dynamic? So then I'm, I'm saying I'm gonna return a user. You understand, okay, this is what the user looks like today, but potentially that schema changes tomorrow.

Jeremiah Lowin: Yes. Sche- schema changes are a really weird thing in the MCP because there's no, uh, programmatic client out there that's locked in.

Jeremiah Lowin: It's an LLM who every single time shows up and they learn the schema. Yeah. So s- changing schemas is actually, like, blessedly easy.

Demetrios: Yeah. Okay.

Jeremiah Lowin: You just change it. You, you change your user model, and as long as you've annotated that [00:19:00] function as returning the same user model, we will pick up the change the next time the server is run, and it will just work.

Jeremiah Lowin: Oh, nice. Uh, and it will just flow through. And s- and the, the goal is not for you to know that we did something magical, which is why maybe it's a, it's a surprisingly difficult question to answer. Like, in a sense, everything we do is to save you from ever seeing the protocol. You should write business logic that if not for the fact that it was in an MCP server, would look exactly the same as if you wrote it in any other context.

Jeremiah Lowin: That's my goal with Fast MCP. Hmm. Same goal with Prefect. You should write business logic that is being fully orchestrated and made resilient and all these great things that we do as an orchestrator, but you should not write your code any differently because it's gonna be orchestrated. You should not write your code any differently because it's gonna be in an MCP server, except to the extent that you want to take advantage of features in either, of course.

Jeremiah Lowin: Um, and so that's the guide. That's how we write magic software, is we try to make it feel like you're not using MCP. We try to make it [00:20:00] feel like you're writing Python. And by the way, now any agent in the world will be able to Call your tool and use your business logic and, and take advantage of this stuff, which is, which has been great.

Demetrios: Okay, so the magic of that, the schema, I think this is probably a good segue into let's talk about MCP Apps.

Jeremiah Lowin: Let's talk about MCP Apps.

Demetrios: I know you're pretty f- you're pretty stoked on them, right?

Jeremiah Lowin: I'm really excited about MCP Apps.

Demetrios: Tell me more.

Jeremiah Lowin: Um, MCP Apps is something that's been, that's been growing in the ecosystem for some time.

Jeremiah Lowin: Uh, it started as MCP UI. Thanks to some really amazing partnerships, it now encompasses ChatGPT apps and, a- a- and, and it's become this new top-level spec extension called MCP Apps. And the idea is very simple. Um, you can now ship a UI, a full UI, uh arbitrarily complex to your users, and it shows up in line in their chat with their agent.

Jeremiah Lowin: And so you can imagine from the point of view of mCP as [00:21:00] a way to reach your customers-

Demetrios: And your database

Jeremiah Lowin: And, and your databases, of course, all, all ends of the spectrum. Fr- but from the point of view of returning your customers, this is amazing. You can now ship your website to them. Um, are you an e-commerce store?

Jeremiah Lowin: Now, when you ask the agent, like, "Hey, uh, you know-" Oh, I didn't even think about that "... is there a shirt I should buy?" It can show you a UI with all the shirts. You could buy one right there. You could preview them. You could save your preferences. You could log into your account even. It's a full UI embedded in your chat.

Jeremiah Lowin: It's very

Demetrios: cool. Theoretically, you could say, "What do I look like with this on?"

Jeremiah Lowin: You sure could. And

Demetrios: boom, it'll generate the image

Jeremiah Lowin: right there with you. You sure could. And, and maybe they do that as something they ship only to agents, and it's not in their main website because you don't have a good way to interact with it over there.

Jeremiah Lowin: Exactly. So this, it's, it gives you the potential to build these incredibly rich experiences. Yeah. But we already talked about the fact that I have a belief that the number one use case here is actually not reaching your customers, it's reaching your team.

Demetrios: Mm-hmm.

Jeremiah Lowin: And so when you think about your team, they have a different set of needs of UIs.

Jeremiah Lowin: [00:22:00] Um, most companies have countless internal tools and internal UIs and internal dashboards, and a thousand different ways of visualizing information and working with, working with data. Uh, and all of a sudden, we have a technology where the same agents that many of those teams are now using to interact with the business can actually show them more than just text.

Jeremiah Lowin: It can show them a dashboard, a chart, a table, a form, whatever it is.

Demetrios: Back to that self-serve.

Jeremiah Lowin: Exactly. This is, this is what do we log into our dashboards every day to see? A, a table, a, a graph, whatever it is. Now we can get those on demand, and we can get them in our chat. We ar- don't have to go to another place.

Jeremiah Lowin: And so I, um, I started really wondering about this, because there's, there's a small thing I, I'm not crazy about with mCP apps, which is, uh, sort of an unreasonable expectation for me to have, but it's a different ecosystem from my Python ecosystem. Um, they're front ends. They're written in HTML and JavaScript and

Demetrios: CSS.

Demetrios: Mm.

Jeremiah Lowin: And historically, Python is just not a place where you would d- I mean, you wouldn't even dream of doing that. But [00:23:00] I, I wasn't crazy about the idea that our FastMCP user base, and the majority of mCP servers are written in Python, I wasn't crazy about the idea that our FastMCP user base would have to go and build

Demetrios: React

Jeremiah Lowin: Where MCP apps in a different ecosystem.

Jeremiah Lowin: Um, there's, there's a argument that I find very unconvincing that just we'll have an LLM do it. Yeah. And so I go, "Great. Uh, obviously an LLM could do that, and there are many skills for doing this and-"

Demetrios: Front-end skills,

Jeremiah Lowin: yeah. Exactly, front-end skills. Um, but the, but the challenge is not building it. The challenge is n- now it is part of your server.

Jeremiah Lowin: It is, it is part of a stack, and it has things, you know, it needs to call tools on your server. That means it needs the name of the tool on the server. There's just, it's just the complexity surface has just exploded. Yeah. And our ability to assist you in FastMCP has not changed at all because you are essentially outside of our ecosystem in a black box.

Jeremiah Lowin: And I started wondering, like, how can I help my users take advantage of this feature if the feature is entirely outside of our ecosystem?

Demetrios: Oh.

Jeremiah Lowin: Uh, and the- All

Demetrios: right, it's landing for me

Jeremiah Lowin: now. Yes. [00:24:00] So that's the sort of challenge. The solution was rooted in this insight that most use cases of MCP apps today are not going to be full, polished, branded front-end experiences.

Jeremiah Lowin: They're gonna be a bunch of tables and charts and like- Mm-hmm ... I, I, I know the state space. It's a constrained problem. And so the other insight that I had is we don't need to build UIs as much as we sort of just need to compose and parameterize them. What do I wanna show? I wanna show a data table and a chart.

Jeremiah Lowin: Great. Can I come up with a Python DSL for composing preexisting UI components in a way that makes sense and that is connected to my MCP server? And it took a little bit of, uh, trial and error, and by a little bit I mean about a month.

Demetrios: Yeah.

Jeremiah Lowin: But we came up with a DSL that I think is really clean for... It's all Python context managers, and you just declare the UI you want, and in FastMCP you return that UI from a tool, and FastMCP does all the rest and wires up all the UI [00:25:00] and the, the application, everything.

Jeremiah Lowin: And the, the result is you go from having a tool that returns records from a transactions database to a tool that returns an interactive data table with the exact same records in it. It's a one-line code change. Just return a data table- Mm ... from your tool. FastMCP does all the work, and when you're in your, in your chat, let's say you use Claude, and you're just chatting and you say, "Show me the, show me the transactions," and up comes a fully interactive component.

Jeremiah Lowin: You can filter, you can sort, you can interact with it. And most importantly, it doesn't go into the context window of the LLM. So we don't pollute the context window with thousands of records. It comes to me as a user. I interact with it and-

Demetrios: Wait, how does that work? I, you

Jeremiah Lowin: lost me there. It's, it's... Sorry, it's just by design.

Jeremiah Lowin: It's the way the MC apps work.

Demetrios: Okay.

Jeremiah Lowin: Is, um, the information going to the app is just takes a different route. It doesn't, it doesn't go into the LLM and then to the user. It's just goes directly to the user in a UI.

Demetrios: But the LLM is generating that.

Jeremiah Lowin: The LLM can generate that. There are apps that take the LLM's input-

Demetrios: Uh-huh

Jeremiah Lowin: to generate that. But the, in [00:26:00] the example that I have, the LLM might see a tool called Show transactions

Demetrios: Uh-huh

Jeremiah Lowin: And it calls that tool with no arguments, and the result of that tool shows up as a UI that only I see. The LLM doesn't see it. Ah, I get it. The LLM will get a little note like-

Demetrios: Yeah ... "

Jeremiah Lowin: Hey, I showed Jeremiah the thing you asked for."

Jeremiah Lowin: So it gets a confirmation that the tool call was successful, but you do not need to send it all the information. And so for a lot of our users who are using MCP to explore, you know, 100,000 rows in a database The last thing you want to do is give those to your LLM so- Yeah ... it can filter through them and use up all of its context, right?

Jeremiah Lowin: And, and so, so now we have a way to actually deliver that, and it's not just bypassing the LLM, it's actually in a beautiful and maybe preferred form.

Demetrios: Oh.

Jeremiah Lowin: So this is-- I'm super excited about this. We just announced it today at the conference. It's called Prefab, is the name of the library, because it's prefabricated UI components that- Oh, I dig it

Jeremiah Lowin: you stitch together. All right. It works, it works nicely. Uh, we actually put thought into that name, unlike FastMCP. Uh, and so I'm super excited about that. I, I, I introduced it today. We released it today, [00:27:00] um, alongside a version of FastMCP that has full native support for it. And so my hope is, in the same way we talked a moment ago about how, you know, if you return something from your tool, FastMCP makes sure it has that structured form for the LLM.

Jeremiah Lowin: So now if you return any Prefab component, component from your tool, like a pie chart or a data table or both, uh, FastMCP will automatically turn them into an MCP app and render them in your client for you. And it's, that's what f- starts to feel super magical.

Demetrios: Yeah, 'cause the way that I have been doing it is using the playground skill.

Jeremiah Lowin: Mm-hmm.

Demetrios: And saying, you know, "Use the playground skill and give me a data visualization of XYZ," whatever it is I'm trying to do. But that does exactly what you're saying. It throws everything into the context window, and then it will create the visualization.

Jeremiah Lowin: Yeah. I, the playground skill is amazing. I use it all the time.

Jeremiah Lowin: Um, I use it to explore, uh, potential like, like, like code changes and stuff. Yeah. I'm like, "How will this ripple out- Yeah ... through the code base?"

Demetrios: Or finding and debugging stuff. [00:28:00] It gives you a nice visual on it, and then you can-

Jeremiah Lowin: Yeah. It, it's amazing. Yeah. I love the playground skill. But y- you're correct.

Jeremiah Lowin: What, what it's really doing is it's taking information already in the context, and it's using that to build a visualization.

Demetrios: Yeah.

Jeremiah Lowin: And this is a little bit different. This is I, as a server author, know what app I want to build. Uh, and app here is doing a lot of work, right? Yeah. That's what

Demetrios: I was gonna

Jeremiah Lowin: say.

Jeremiah Lowin: What, what visualization I want is another- So

Demetrios: the visualizations are, in a way, they're pre-built- They're pre-built ... or they're pre-deter- predetermined.

Jeremiah Lowin: Exactly.

Demetrios: So as a tool, you have pie chart tool.

Jeremiah Lowin: Exactly. Okay. Or, or, or you would have a tool called, um, um, uh, sales trends, and when you call that tool, the tool logic would go load the sales data, bring it back, but instead of just returning it raw like we would a week ago- It renders

Demetrios: as a pie

Jeremiah Lowin: chart

Jeremiah Lowin: it, it returns a pie chart. Uh-huh. Or returns a line chart or whatever- Yeah ... whatever.

Demetrios: Whatever you declare.

Jeremiah Lowin: Whatever the server- Or- ... author wants. Yeah. Or take a parameter, uh, chart type-

Demetrios: Yeah ...

Jeremiah Lowin: and let the LLM decide.

Demetrios: Yeah.

Jeremiah Lowin: And then we can do that dynamically 'cause we're executing code, and then we're returning the [00:29:00] component- Uh-huh

Jeremiah Lowin: that matches, and you get the visualization you want. Where this gets very crazy, if you really wanna- Yeah, yeah, yeah ... push this further- Let's go down the rabbit hole ... we, we can always cut. Yeah. We can always cut this if it's too weird. Where this gets crazy, what I think is really exciting, is what the playground skill does is it lets Claude generate that UI dynamically and on the fly.

Jeremiah Lowin: We can do the same thing with Prefab. This is a little bit weirder, but very fun. I, I tweeted a demo of it the other night. I, I asked Claude with this, with this skill, um, and this, and this ability. I said, uh, "Make me a, uh, like a fake dashboard," and then you just watch it just streaming in, like knobs and- Mm-hmm

Jeremiah Lowin: whistles and graphs, and it's just streaming in, and it's making it up to, to suit the example I gave it. And what we're doing is we are not predefining the Prefab components in the server. What we're actually doing is we tell the LLM, "This is how you write a Prefab UI." Like, this is the Python code that would generate a UI if we wrote it in the server, and then we ask [00:30:00] it to write Python code, and we take its Python code, we execute it, we figure out what UI it wanted to build, and then we return that and render it as an app.

Jeremiah Lowin: And so the LLM, this is-- You don't have to use it this way, just to be clear. Yeah. This is a little science fiction and out there. But the idea is, let's say you want a visualization of something, but you didn't know in advance what it was gonna be. So you have tools that return a bunch of data, let's just say.

Jeremiah Lowin: So the data can get to the LLM, but now it wants to build a custom visualization for you. Yeah. If you have Prefab installed, you could expose a tool that lets the LLM generate a UI for you on the fly that you never pre-declared.

Demetrios: Yeah.

Jeremiah Lowin: And-

Demetrios: It gives you that flexibility ...

Jeremiah Lowin: it gives you a ton of flexibility.

Demetrios: To allow the LLM to choose the best tool for the moment.

Jeremiah Lowin: Exactly. And so you might end up with a graph. You might end up with a page full of graphs. You might end up with an interactive thing. You might end up with a form. It might wanna collect information from you through this form. Yeah. It's, it's very cool. There's a, there's a, there's a Claude feature I really like, [00:31:00] where you're using Claude, and all of a sudden, like a multiple choice box will pop up- Yeah

Jeremiah Lowin: and it's like, "Which of these is the thing that you really mean here?" You know what I'm talking about? Yep. Oh, yeah. Where you click... So I think that's a great feature. So that's a great example of one of these mini apps, where we can give the LLM an app, um, and let it, at any time, bring up this app that asks you to make a selection.

Jeremiah Lowin: Uh, Claude doesn't need this app. Claude can do it on its own, but every other client that hasn't implemented this as a first-party concern, I should actually bake it into my server-

Demetrios: Yeah ...

Jeremiah Lowin: and make this available to any client. And so I see MCP apps as not just a way to say, "Here's a pretty visualization," uh, so I don't have to, like, write you a novel about it or talk like a pirate about it.

Jeremiah Lowin: Here's what it actually looks like.

Demetrios: Yeah.

Jeremiah Lowin: Um, you can go a step beyond that and actually start to introduce new functionality and new-

Demetrios: Well, yeah, let's, let's pull on that thread- Sure ... because I have a lot of functionality that I've been wanting to see for ages, and it's not happening. I guess I'm not talking loud enough about it.

Jeremiah Lowin: Not of edge.

Demetrios: Tell me if this is possible now [00:32:00] When I'm getting an answer back, a lot of times I want to highlight a part of that answer, and then I want to ask a question specifically about the highlighted part. And so I ended up, you know how I've worked around this, I built a quick little bot that I, if I'm in Google Docs, I can highlight and comment on something and tag the bot, and then it will ping out to an LLM, and it reads the context of the highlighted stuff, and then it reads my comment, and then it will give the answer.

Jeremiah Lowin: Oh, wow.

Demetrios: But isn't that a great, like- I- Am I the only one that has had that use case? It can't be.

Jeremiah Lowin: No, all the time. I'm like, "I wanna dive in on this specific thing." Yeah, just that

Demetrios: one

Jeremiah Lowin: little

Demetrios: thing. I,

Jeremiah Lowin: I, I think it's a beautiful use case. I think, I don't think NCP apps are enough.

Demetrios: Okay.

Jeremiah Lowin: I think the fact that you had to highlight and select requires a first party UX decision.

Jeremiah Lowin: Oh.

Demetrios: Mm-hmm.

Jeremiah Lowin: And NCP apps are like, if I can get you to opt into this. So, I mean, could we invent it? Yes, we could invent an NCP app [00:33:00] where you said to it, "Well, I wanna work on this part of the this is the line I'm interested in Yeah, whatever the, yeah, exactly And it brings up the MCP app, and off goes a sub-agent to do it.

Jeremiah Lowin: We could do that, but I think the second you have to type in, "This is the lineup," like-

Demetrios: Yeah, that doesn't make sense ...

Jeremiah Lowin: we said the quiet part too loud, right? Yeah. Like, that was the, that was the hard thing. We don't need the app after that.

Demetrios: Yeah.

Jeremiah Lowin: So that's why I think there's probably, like, a first-party solution that has to happen for- Uh-huh

Jeremiah Lowin: your exact use case.

Demetrios: Okay, well, that's one. Savvy. Tell me about this. This next one is a lot of times I want certain things that are just, like, you get the answer back and you want to be able to, like you said, render certain components differently.

Jeremiah Lowin: Yeah.

Demetrios: It's like I've got a table now or, and really what I need is a form, or I've got this, and so the components you wanna hot swap.

Jeremiah Lowin: So if you have this generative, uh, UI set up- Yeah ... then 100%, that's what it's for. So you're, you're, you're asking about the data. It takes a guess. It's like, "Here's a table. Here's this other thing." And you're like, "You know, the table's [00:34:00] not the way to do it. I, what I really need is a summary, uh, and a histogram and whatever."

Demetrios: Yeah.

Jeremiah Lowin: And now it c- can go back and say, "Oh, okay," and deliver you that

Demetrios: UI- Mm ...

Jeremiah Lowin: that you wanted.

Demetrios: And, but what I think about is a lot of the clicking around. And so first of all, that's awesome that it can do that, but then the next step in my mind is I don't wanna have to use words to explain, "Isolate this table."

Demetrios: I wanna click on the table and then, like, get a dropdown, much like, you know, the-

Jeremiah Lowin: So that is possible, but we haven't done yet.

Demetrios: All right, cool. So this- It's coming.

Jeremiah Lowin: It's g- I'm sure it's coming. Yeah. Um-

Demetrios: Nice ...

Jeremiah Lowin: this is the sort of thing, it's actually a great call-out because I don't think I said it clearly a moment ago.

Jeremiah Lowin: I, everything that I said, one could interpret it as like we build the UI, we take a static picture of it, and we return it to you. Yeah. That's- That was, that was my understanding. That's- Okay ... so, so it's a good thing we're exploring it. It's not that. What we're returning is a full React application that is fully interactive.

Jeremiah Lowin: We use ShadC enter render the components, so theming w- like, everything that people think about when they think about a UI, we [00:35:00] are replicating. It's just, uh, we just pre-built a lot of the components so that it's not for people who wanna build a, a fully custom front end. It's for folks who only want these components.

Jeremiah Lowin: Again, different than the

Demetrios: playground skill, 'cause the

Jeremiah Lowin: playground- Exactly ... skill

Demetrios: is just HTML.

Jeremiah Lowin: Exactly. This is, you're composing preexisting... We've, we've over 100 components. Uh-huh. It's a very big library. Pretty much anything you could wanna do is in there. Nice. Buttons and, and, and cards and metrics and statistics and sliders and form- like, anything you want.

Jeremiah Lowin: Um, but it is all interactive. Mm-hmm. So while at this moment we don't have a drill down when you click one of the charts, we absolutely could add it. But what the charts will do is you mouse over, you mouse over one of the bars in a bar chart, you'll get a tool tip that tells you- Yeah ... what it is. You can click it.

Jeremiah Lowin: When you're looking at a table, you can click a row. You can use an on select callback to now load detail of that- Oh, nice ... row. You can drill into it. So, um, the specifics that you're asking about, no. Today, that library doesn't have them, but- In the near future, absolutely it, there's nothing stopping it except time [00:36:00] and bandwidth and interest.

Demetrios: Yeah. Okay.

Jeremiah Lowin: It's super cool. Yeah, so this-- I'm actually glad you asked. This is a super important point.

Demetrios: Yeah.

Jeremiah Lowin: We are building fully interactive applications, proper app, MCP applications that a person could have written in a different ecosystem- Yeah ... than Python. Um, and there are some people for whom this is blasphemous.

Jeremiah Lowin: I think even that's like the tagline of this whole thing, is it's, it's kind of crazy. But one of the reasons that I'm excited about it is no matter where you look in the generative UI space, and there's a lot of attention right now on how do we get this right, one of the biggest problems to solve is people don't want to write HTML and JavaScript and CSS out of their agent, as the playground skill does, for a very simple reason.

Jeremiah Lowin: Not that it does a bad job, it's just a lot of tokens.

Demetrios: Yeah.

Jeremiah Lowin: So what we're looking for- Also, or- Right? We're, we're looking for really token-efficient ways to represent UIs so that agents can generate UIs cheaply and quickly. And there's one other constraint, which is we want them to be able to stream the UI.

Demetrios: Mm.

Jeremiah Lowin: When you write HTML, [00:37:00] it's challenging to stream because you have to close your tags, and there's all kinds of things you can do to like auto-heal and stuff. But in many cases, you, until you close a tag, you can't see it, and so you end up not actually seeing your UI until it's done. It's the

Demetrios: wrong tool for the job.

Jeremiah Lowin: It's, it's the wrong tool for the job. The craziest thing that I might say after all the crazy things I've said so far is that Python satisfies all of the requirements of a token-efficient, streamable DSL for declaring your UI. And so we can, in three lines of, in three lines of Python, I can say I want a CSS grid, I want a pie chart, and I want a data table.

Jeremiah Lowin: Three lines And that's exactly what I get, a full interactive application with all of the backing HTML and JavaScript that that would require to stream over it in three lines of code, and they stream. And so this is a very weird thing that I'm talking about. If I heard myself talking about this, you know, two years ago, I would think this is insane.

Demetrios: Well, it's a bit of a plot twist.

Jeremiah Lowin: It, it, it absolutely is.

Demetrios: Token efficiency with MCP- Yeah. ... goes against every narrative [00:38:00] out there right now.

Jeremiah Lowin: Doesn't it? Doesn't it? And that's because of bad clients.

Demetrios: Yeah. From g- getting back to our first point.

Jeremiah Lowin: Just to, just to drive the dagger a little bit. Yeah. Just to twist it a little bit more.

Jeremiah Lowin: Um, that's bad clients. Mm-hmm. Those are clients that didn't really think. Uh, one of the ways that we talk about this sometimes is sometimes when you're working in MCP, it feels like you're punished for the protocol's success.

Demetrios: Yeah.

Jeremiah Lowin: Right? My, my most popular talk from last year was called "Your MCP Server is Bad and You Should Feel Bad," because people would put 50 tools on a server, and I'd be like, "Well, that's a bad server."

Jeremiah Lowin: Mm-hmm. "You should only have 25. The agents can't handle it." That's a really lousy message. Like when you really- Yeah ... think about it, I'm saying to people like, "No, no, no, no, don't use it too much." Don't use all of

Demetrios: MCP. Yeah.

Jeremiah Lowin: Yeah, yeah. Only- Just use a little bit ... yeah, stay in your lane. Yeah. Don't, don't, don't...

Jeremiah Lowin: And, and that's, that's not fun. I don't wanna be up there saying, "Your server's bad because you wrote too much code." Like, what a crazy thing to say. And now that we have a generation of clients, um, Claude, VS Code, Goose, just to name a few, that are innovating in the space and they're not downloading every tool, and they're, and they're really being more [00:39:00] intelligent about how they manage tokens, now all of a sudden you can go build a server with 1,000 tools-

Demetrios: Mm

Jeremiah Lowin: and not blink.

Demetrios: Mm-hmm.

Jeremiah Lowin: It will work.

Demetrios: So let's talk about OpenClaw- Let's talk about OpenClaw ... and the fun that you've had with it over the last 24 hours.

Jeremiah Lowin: I came to New York to the Dev Summit to give a talk, and I had been working and working and working on my slides, and I got here to the hotel, and I opened my computer, and my OpenClaw had decided, in its, in its exuberance to help-

Demetrios: In its infinite wisdom

Jeremiah Lowin: in its infinite wisdom, it had decided to delete all of my slides and replace them with a draft it found from about a week ago.

Demetrios: Oh, no.

Jeremiah Lowin: And I I had a funeral to attend last night. Yeah. An MCP funeral. And, um, and I didn't have time to deal with this, and, uh, it was very frustrating and it was- But

Demetrios: why did it do it?

Demetrios: Was there any prompt or was there any... You were letting it

Jeremiah Lowin: run? I'll tell, I, I, I figured out why it did.

Demetrios: Okay.

Jeremiah Lowin: And it's, it's just, it's stupid. It's dumb. Um, I deleted a slide. And, um, uh, some- about six months ago, I stopped using, like, slide software. I now [00:40:00] have my agents build my slides- Uh-huh ... because I get my speaker notes the way I want them and formatted for me, and it works great.

Demetrios: In MCP apps?

Jeremiah Lowin: And they're MCP. MCP. And soon they will be an MCP app- Yeah ... now that I have a library for it.

Demetrios: Nice.

Jeremiah Lowin: And, and so I, I'm at the mercy of an agent therefore to edit the HTML and, like, build my deck and build my speaker notes. And I had to delete a slide, and in its infinite wisdom, it did not delete the corresponding speaker note.

Jeremiah Lowin: And so I noticed as I was on the train coming into the city, I noticed that my speaker notes were one slide ahead of-

Demetrios: Oh ...

Jeremiah Lowin: my slides. Yeah. I was like, "That's weird." I, I didn't think of how it had happened. I've reconstructed this. And so I said to it, I was like, "Hey, the speaker notes are not aligned. Can you just, you know, jog them back?

Jeremiah Lowin: Just get them back aligned?" I think at that moment it did one of those context compaction- Oh,

Demetrios: no.

Jeremiah Lowin: And so when it woke up, it heard that I wanted the things aligned, but somehow missed the critical fact that we've spent the last, you know, three days together working on these slides. And so the message that I got was, "Hey, something was wrong with your speaker notes in this draft, but don't worry, I found [00:41:00] another draft where they were lined up," and it just swapped them- It replaced them

Jeremiah Lowin: and it just threw it away. And, um, I don't know. Is this one of those moments where, like, if I were my parents, I'd be like, "Well, where's your backup?" Yeah. Like, "Why didn't you have your backup?" Well- Or at least

Demetrios: some version control.

Jeremiah Lowin: Some version control, but the last commit was, like, two days, like who knows two days ago.

Jeremiah Lowin: Yeah,

Demetrios: it was back when that last draft was.

Jeremiah Lowin: Yeah, exactly. That's what it was just- That's what, that's what it found ...

Demetrios: rolling back.

Jeremiah Lowin: So, so thank God somehow I convinced it to, like, dig through its own history and go find it. But I, there was a moment of panic last night where I was like, "I want to announce this new crazy library, and it's gotta be good, and I gotta give a good talk, and my slides are, are in the, uh, my mob star deleted my-" You were held at ransom, dude.

Jeremiah Lowin: I was. You

Demetrios: were.

Jeremiah Lowin: I was. And so I actually, I, I got really mad at my OpenClaw and I, I put him aside for a second- Mm ... and I, I worked with Claude Code to finish the slides in the morning. It was like, it was like a, a weirdly personal feeling I had. I was like, "You're in a timeout." Yeah. It was like with my kids, like, "You're in a timeout.

Jeremiah Lowin: I wanna talk to you for a little bit." This is

Demetrios: mission critical

Jeremiah Lowin: right now. Yeah. You, you step up. Don't- And you... Yeah ... and I, and I'm like, "Don't screw up like the other agent." And, uh, and it did a great job.

Demetrios: Wow.

Jeremiah Lowin: So I did have [00:42:00] some fun with OpenClaw.

Demetrios: So now

Jeremiah Lowin: what do you- But I, I, I do love OpenClaw, but-

Demetrios: Yeah ...

Jeremiah Lowin: it, it bothered me last night.

Demetrios: One thing that I keep saying with OpenClaw is that, and the reason that I'm not using it, is because A friend of mine talked about how he's sent a lot of invites to people just to try and phish who's using OpenClaw. And on the invite, it's white on white text in the description with a prompt injection.

Demetrios: And then, well, it's just to like return- Oh ... you know, XYZ. He's not actually doing anything malicious. It's just to see who's using OpenClaw and who can I just like get information from here. That's

Jeremiah Lowin: so interesting.

Demetrios: Because now you've got all these new vectors that, especially if you're giving it access to your email, to your calendar, to all these places that, your Slack, you can theoretically get prompt inject- injected from all of these places.

Jeremiah Lowin: Yeah, you, you absolutely can. And so this is, this is one of the reasons that I was really hesitant at first, and [00:43:00] then dove in fully when I built workflows where it's not my OpenClaw impersonating me. It's my OpenClaw with its own identity, on its own box, in its own Slack, um, with its own, you know, email and everything, and I-- it only knows what I send it.

Demetrios: Mm.

Jeremiah Lowin: And so I use it primarily for two things. I use it primarily as like a knowledge collection. I use its memory feature, basically. So it's kind of up to date on all the things I'm working on, and it becomes a brainstorming partner and a thought partner for strategic matters. And then, uh, am I supposed to put out a blog post tomorrow?

Jeremiah Lowin: Oh, I am. Like, let's go bring up the draft and work on... You know, that kind of stuff. But where I've really been using it is, um Every company on the planet seems to pitch me productivity software at work.

Demetrios: Yeah.

Jeremiah Lowin: Nobody wants to give me productivity software at home.

Demetrios: Mm.

Jeremiah Lowin: Uh, I have four kids. My wife and I both work full-time.

Jeremiah Lowin: We have a lot going on at home. Um, managing the school calendar is [00:44:00] hard. And so this is one of those places where, uh, the, the, the bot has a calendar that is our family calendar that it's allowed to manage, to write to, and then my wife and I both subscribe to it, um, from its, you know, Apple account. And I can send it, uh...

Jeremiah Lowin: One of my son's schools sent the school calendar as an image, which I think someone probably spent a lot of time making. It was a real pain to now go- Yeah ... enter into my calendar. Oh. And so I forwarded it the image, and I was like, "Put this in the calendar." And two seconds later, all of a sudden, all of the days off and all of the practices or whatever, they all start showing up in the calendar.

Jeremiah Lowin: Beautiful. And I think that's when my wife became convinced-

Demetrios: Uh ...

Jeremiah Lowin: that there's something here, that we can actually use this to help us automate stuff. I

Demetrios: think there's, like, a TikToker that got famous for using OpenClaw to help with their... And it's a, it's a mom. I think it's, like, OpenClaw Mom or something.

Jeremiah Lowin: I see.

Jeremiah Lowin: I missed my calling.

Demetrios: Uh, yeah. '

Jeremiah Lowin: Cause I'm using it at home all the

Demetrios: time. You

Jeremiah Lowin: could've been that- That could've been, um- ... famous- Here I am talking Fast MCP when I- ... when this is actually the thing that I'm-

Demetrios: You could've been an influencer, man.

Jeremiah Lowin: I'm really, I'm really excited about this. Yeah. Like, it's [00:45:00] really cha- It's really become part of our home workflow.

Jeremiah Lowin: Um-

Demetrios: Well, that feels like a lot of time saved.

Jeremiah Lowin: It, it, it does. Now, there are places where it feels like it adds.

Demetrios: Mm.

Jeremiah Lowin: Right? Like, just, just because it gets things wrong or it deletes your slides or, or whatever it is. Um, but by and large, I think if you can find these moments, um, and I think, uh, taking an image and putting it on your calendar is a great example of that, right?

Jeremiah Lowin: It's an easy one. Um, because we have four kids, uh, keeping track of, like, what food we have in the house is more complicated than it might be- Uh-huh ... in most families. Like, "Do we need milk?" Yeah. Is a really important question in my house- Yeah ... with four young kids, right? So, um, being able to have it just know what our usual grocery order is so that if I tell it, like, "Hey, we're, we're low on milk," or, "We're low on," you know, "frozen waffles," or, or whatever it is, and it's just, it's better than that sticky note that we used to use that's hidden in a drawer that I don't know when the milk was written.

Jeremiah Lowin: I don't know when that... You know, it just can accumulate this kind of information so that when it's time to go grocery shopping, I'm like, "What's, what's the list?" Do you have a list? "What [00:46:00] do I need to get? What are we low on?" So those are the kinds of little frictions where I'm finding these things to be incredible-

Demetrios: Uh-huh

Jeremiah Lowin: and safe.

Demetrios: Yeah.

Jeremiah Lowin: Um, because it's within my talk about in the four walls of a company. It's in the four walls of my house, and it's- That's true ... it's keeping track of that stuff. We had a project the other day. We recently moved, and I needed to go, like, register warranties on a bunch of appliances, which I'm not excited about.

Jeremiah Lowin: So I took a camera and I wandered around, and each one, it like, it took all the notes on it. It parsed the serial number and all this stuff. You know, the serial number's under the dishwasher. I can barely see it, so I snap a photo of it and it, it, it took care of the rest. And so it's just like these are the kinds of things that I've found really useful, whereas in a, in a professional setting, there's 40 different SaaS vendors, and sure, SaaS is dead and OpenClaw is first of all.

Jeremiah Lowin: But, but it's not. There are people doing really amazing work to help us with productivity.

Demetrios: Mm-hmm.

Jeremiah Lowin: At home, not so much.

Demetrios: Yeah. Why do you think nobody wants to go after that market?

Jeremiah Lowin: I mean, um-

Demetrios: It's just hard, the B2C.

Jeremiah Lowin: I, I think it's hard. [00:47:00] Like I, I don't, I don't know that I have an insightful answer. I think it's hard.

Jeremiah Lowin: I think it's hard to get people to pay for that. Um, I think it's hard to guess what families need. Like-

Demetrios: The use cases, yeah ...

Jeremiah Lowin: my, my workflows are probably very different than your workflows- Mine, yeah ... even if we both would find value in a family setting.

Demetrios: Yeah, the grocery store is, is a much different workflow.

Demetrios: But I guess that-

Jeremiah Lowin: Exactly ...

Demetrios: flexibility is what the OpenClaws are-

Jeremiah Lowin: I think so ...

Demetrios: very valuable.

Jeremiah Lowin: I think so, and that's, you know... So where I, where I'd like to take m- this very weird example of the groceries is I'd like to get to a point where it does what I do, which is I open the fridge and I'm like, "Oh, I expect to see d- you know, four cartons of milk here, and I only see one.

Jeremiah Lowin: We're low on milk and this is gonna be a problem."

Demetrios: Well, I was thinking that you were using something like Picnic or I don't... In, in Europe, we have, like, Just Eat Takeaway, and they'll order your... Or Uber Eats, whatever, like Amazon, Whole Foods- Yeah, like a delivery. Yeah ... and it'll just deliver your, um-

Jeremiah Lowin: We'll, we'll sometimes get, we'll get the groceries delivered sometimes- Yeah

Jeremiah Lowin: uh, usually just for convenience. But placing the order, and again, maybe it's just 'cause I have a large [00:48:00] family, so, like, the exercise of actually placing the order is a lot of clicks, a lot of thinking-

Demetrios: Yeah ...

Jeremiah Lowin: a lot of cognitive space. But you can have OpenClaw do

Demetrios: that, right?

Jeremiah Lowin: But now we can have OpenClaw do it.

Jeremiah Lowin: And so- Although I haven't quite, I have not quite made the leap yet to letting it-

Demetrios: Pay for things? ...

Jeremiah Lowin: pay for things.

Demetrios: The way that my buddy showed me, he gave me a demo on him doing exactly this, and it does everything. It puts it all into the basket, but when you have to pay, you go and you have to do the human in the loop.

Demetrios: So

Jeremiah Lowin: I would do that. I, I guess I don't have a good, like, reason why I haven't done that. Yeah. It's just I haven't done that yet, but I think that's the, that's the- Yeah ... right process. Like, "Hey, here's, here's what I think you need." My, my, I think my deep fear is, like, you get to that point and it's like, it's like getting your slides deleted.

Jeremiah Lowin: It's like, "Here's what I think you need," and it's just totally wrong. It's like, well, now I gotta go do it myself

Demetrios: and I wasted all that time. 20 rolls of toilet paper. Yeah, exactly. That's all I got you. Exactly. It's

Jeremiah Lowin: like- That's the

Demetrios: only thing ... you're trolling me. It is not COVID anymore. I do not- And one carton of milk.

Demetrios: Yeah. Uh, well, but that would be... It feels like that's an easy, like, at least to [00:49:00] experiment, try it, see if it works, and-

Jeremiah Lowin: That's, that's what I've, that's what I've been like. I, I had an, I had an offsite two weeks ago, and I was sort of Being obnoxious and pitching my OpenClaw to all these folks I was with. It was a YPO thing.

Jeremiah Lowin: And, um, we used it. We, we, we were all at different events and different dinners and different bars and whatever, and there's a lot of receipts, and we, we try our best to share all the expenses, but it's, it's annoying- Yeah ... to like go through. And so I was like, "Wait a second. Let me, let me see the receipts."

Jeremiah Lowin: And the receipts had jotted down, you know, who was at which dinner and whatever. Uh-huh. Trying to, trying to be fair. And so I just took a picture of all of them. I gave it to the OpenClaw, and I was like, "Work this out." Like, you know who's here, 'cause it knew about the invite. I was like, "You know who's here.

Jeremiah Lowin: Just, like, read the handwritten scrawl on the receipt."

Demetrios: Uh-huh. "

Jeremiah Lowin: Look at the totals. Just figure out who owes who what so this can be easy." And it's, you know, I don't know how much time it saved, but it felt magical-

Demetrios: Yeah ...

Jeremiah Lowin: in the moment. Yeah. And it was like, ah, what if this were a more automatic- Yeah ... process? Uh, what if this was more in- integrated in my life?

Demetrios: What I was asking people last night when they were telling me about what they [00:50:00] run OpenClaw with is I was like, "But why do you need OpenClaw for that? Why can't I just do that," what you said, "with Claude or Cowork or Claude Code or whatever?"

Jeremiah Lowin: I, I, I wonder this all the time. Um, this morning I wondered why am I using OpenClaw for slides.

Demetrios: When

Jeremiah Lowin: it can

Demetrios: delete it. Um,

Jeremiah Lowin: I think, I think there's a good answer though, um, and I don't think it's unique to OpenClaw, but it has been unique to OpenClaw and things like OpenClaw until recently, which is the first use case I mentioned, which is that it accumulates its knowledge over time in a way that is, like, categorically different than a lot of the SaaS-based agents.

Jeremiah Lowin: Um, my, my OpenClaw's memory system is really tuned to the way I work, the way it writes down things. I actually have another agent that monitors my main agent and takes behavioral notes on it- Mm-hmm ... so that it will... It's a longer story, but it, it's, it's my nanny basically. It looks after the other one, and if I'm not getting good results, it heard all about the slides this morning.

Jeremiah Lowin: It actually writes new behavioral notes for that one- Oh, nice ... that will affect [00:51:00] it in, in new sessions. That type of really rich Note-taking. Um, the notes and the memories that my bots have collected are massive, like sprawling amounts of information that are searchable and stuff. And I think that is the number one reason to have one of these bots, is that you are totally flexibly customizing its access to its own information.

Demetrios: Mm.

Jeremiah Lowin: For me, that's the killer feature. Beyond all the file sys- you know, CLIs and all the things it can do on the Mac Mini it's running on, like sure, great. That's great, but it's, it's access to its own brain basically that it can self-improve. Uh, that's amazing to me. I think I have an opinion that most people here at the conference don't share- Mm-hmm

Jeremiah Lowin: which is based on experience, and I'm pretty confident it's right.

Demetrios: Okay. Tell me more.

Jeremiah Lowin: I'm, I'm really excited about this. So, um, conferences are important. We all love going to conferences. Here we are. I think conferences are better when there's not a vendor pressure-

Demetrios: Uh-huh ...

Jeremiah Lowin: and you're not being sold something, but I also think it takes vendors and sponsors to put on a good conference.

Demetrios: As a conference runner myself, [00:52:00] it is very hard to do them without people sponsoring.

Jeremiah Lowin: Exactly, and so that's a healthy tension. Um, and so we decided to try to create a intimate builders conference within this intersection of our Python and our AI worlds, and we did this in partnership with the team at Pydantic.

Jeremiah Lowin: Oh, nice. And we threw a conference two weeks ago called PyAI, which I think was a huge success, partially because we didn't try to sell anybody anything.

Demetrios: Mm.

Jeremiah Lowin: And, um, we, we sponsored it. We didn't make that a, a secret. We, we presented it, I think. We also did it with the team over at Theory Ventures, who are great partners to us.

Jeremiah Lowin: Um, and we were able to just bring together this amazing who's who in the Python and AI community to just talk about the cool things they're doing, um, and talk about them at an intersection of I'm doing AI And I'm using Python. Those are the only two requirements that we put out there. Uh, and it was just a really fun day at the Ferry Building in San Francisco.

Jeremiah Lowin: I am now convinced [00:53:00] it is the first of many we will do, and we're, we've been trying to have little mini meetups and, and stuff like that. But this is sort of a, a crown jewel thing that we want to, uh, curate, um, each year, I think is gonna be super exciting.

Demetrios: It's just yearly, not

Jeremiah Lowin: quarterly? Well, the, the big one are we...

Jeremiah Lowin: Is yearly. Yes? I'm getting a nod, yes. Getting it,

Demetrios: yes. '

Jeremiah Lowin: Cause, uh, 'cause I'd love it to be more, but I don't wanna- ... try and push that. Yearly. I would say all I'm allowed to say officially- You need a bigger team ... is that it's yearly. Yeah. So the, the, the big one is yearly, and then we'll have these sort of localized meetups.

Jeremiah Lowin: We did one in DC, we did one in London, we did one in San Francisco- Nice ... we did one in New York. Um, and so it's been fun. And, like, I think, um, going back to conferences and, and, and as you know, of course, like getting in front of people and getting to meet people is an amazing thing.

Demetrios: Yeah.

Jeremiah Lowin: Um, I think yearly is good because, I don't know if we c- I don't know if we can pull off more, but we get this one spot on the calendar where we're gonna bring together one specific community and give them an, a good excuse to interact and have some good food and have some good talks.

Jeremiah Lowin: And personally, I'm really excited that we're getting the chance to, to do this. Uh, it's not [00:54:00] in my skillset, so fortunately- Right ... I have an amazing team that has actually figured out how to put on a great conference. Um, and that's been really fun to, to contribute to, like, the ecosystem of-

Demetrios: Is it paid? ...

Jeremiah Lowin: of meeting places.

Jeremiah Lowin: Or is it free? Um, it is paid.

Demetrios: Okay,

Jeremiah Lowin: cool. It is paid. Um, we do stream everything online- Nice ... so that the information is available to everyone, but it's a paid conference to join in the, in the moment. And it's a, and it's, it's a small conference, very intentional.

Demetrios: Yeah. Uh, I like that better because you have people that are much more engaged and committed.

Jeremiah Lowin: Yes. We, for this one, we got in a weird situation where frankly we weren't sure that we were going to sell it out. Mm-hmm. We got to a point where we sold out early and we actually had to, like, c- curate the list. Oh. We had to make sure that you were actually a builder in the space. Yeah. That you were not a salesperson, that you...

Jeremiah Lowin: Like, uh, it, it got a little contentious at times, as a matter of fact- ... about who was gonna come because you wanna do it j- you bought a ticket, welcome to the thing. Yeah. And it actually just had to be for builders only. Yeah. So there was a little sleuthing involved.

Demetrios: Awesome. Well, yeah. I'm excited for the next one.

Jeremiah Lowin: Yeah, next

Demetrios: year. Keep us [00:55:00] posted on when it is so we can, if we're not there, we can stream it and- That'll be fun ... be involved.

Jeremiah Lowin: Well, it'll be next year.

Demetrios: Awesome.

+ Read More

Watch More

Founding, Funding, and the Future of MLOps
Posted Jan 02, 2024 | Views 5.6K
# Image Generation
# AI
# Storia AI
The Creator of FastAPI’s Next Chapter
Posted Jun 17, 2025 | Views 530
# FastAPI
# FastAPI Cloud
# FastAPI Labs
DevTools for Language Models: Unlocking the Future of AI-Driven Applications
Posted Apr 11, 2023 | Views 3.6K
# LLM in Production
# Large Language Models
# DevTools
# AI-Driven Applications
# Rungalileo.io
# Snorkel.ai
# Wandb.ai
# Tecton.ai
# Petuum.com
# Mckinsey.com/quantumblack
# Wallaroo.ai
# Union.ai
# Redis.com
# Alphasignal.ai
# Bigbraindaily.com
# Turningpost.com
Code of Conduct
Your Privacy Choices