Loading

    The Agent is the App

    Kent C. Dodds
    Kent C. Dodds

    I built a tiny app over the weekend called Home Energy. You type in appliance names, notes, and their rated watts, and it totals the max possible draw if everything ran at once. It's a goofy number (nothing runs all the time at peak rating), but it's a fun, tangible way to think about your home's energy footprint and with a little extra work, you can model a reasonable estimate based on this data.

    Unfortunately an app like this is exceedingly tedious and error prone to use. Data entry stinks. You can do it on mobile while staring at the labels, but that's not a great use of anyone's time.

    What would be cooler is if we could take photos of the labels and have an agent do it for us. But building an agent is time consuming and then you have to start worrying about token abuse, etc, etc...

    So I tried a different angle: what if I didn't build the "agent" experience at all?

    MCP makes the app the tool

    I exposed the app's core actions as tools on an MCP server:

    • Add appliance
    • Delete appliance
    • List appliances
    • Get total watts

    Then I connected that MCP server to ChatGPT as an app. Now I can walk around with my phone, snap a picture of a label, and say "add this." ChatGPT can parse the label, call the tool, and the data lands in my app. It just works!

    A smartphone screenshot of a ChatGPT conversation showing two uploaded photos of home devices. One image shows a hand holding a black power adapter, followed by a message saying “@Home Energy add this please” and a system response: “Added: 5V Power Supply (Intertek) at 17.5 W (5 V × 3.5 A).” Below, another image shows an AprilAire 800 humidifier unit, with the user message “This one is the downstairs one” and a response indicating it was added as an “AprilAire 800 Steam Humidifier.”

    That's the whole point of MCP for me: you can keep your app simple and still give users a powerful agentic experience. You're not bolting an agent into your app. You're putting your app into the agent.

    Why this feels like the future

    When the app is connected through MCP, you get a bunch of benefits for free:

    • Users can talk to their data in natural language.
    • You don't have to build or host an agent.
    • You avoid the token, safety, and abuse headaches.
    • You get a richer UX without a "richer" codebase 😆

    And because the agent has access to the app's data through well-defined tools, it can answer questions you never explicitly engineered:

    "Based on everything I've added, what might my daily usage look like on a cold winter day in Utah?"

    I didn't build that. I just built the basic app and connected it.

    Keep the app small, make it powerful

    There are still plenty of cases where you'll want a custom agent or a specialized experience. But for a large class of apps, MCP makes it surprisingly easy to deliver something users will actually love.

    Build the app. Expose the tools. Let the agent do the talking.

    That's why I'm so excited about MCP.

    Share

    Hey, I want to show you this really quick. So I built this app over the weekend called Home Energy, and it allows you to add appliances with just the appliance names and notes and the watts for that appliance, like what it's rated for. And then it will just add it up. And here's the total number of watts that all of your appliances if they were all running at the highest that they're rated for this is how many watts you'd be using which of course is crazy because they're never running at all the time but just kind of an interesting way to like okay well how many watts could up my house possibly be using Entering all of that in here is super annoying. Of course, this works on mobile, so I could go in and I look at the label and type it all in.

    But that's not the way we do things now. That would be super, super annoying. And so what would be even Cooler is if I added an agent to this, and then I could show the agents some pictures of all the labels, and the agent adds those. That would be cooler. But what's even cooler is if I don't have to build that.

    And that is what MCP enables. So I've added all of these tools as part of an MCP server and added it to chat GPT. So I've got add appliance, delete appliance, list appliances, get total watts, all of that. And with that, Now I can use my phone to add appliances. So I just run around on my phone, just like with this, and I say, hey, yeah, add this please, add this one, add all this, add all these things.

    Just take a picture, add it, add it, add it. And it's amazing, because it does it perfectly well. I'm super thrilled about this because this demonstrates one of the reasons that I think MCP is so powerful. That you can have the AI agent stuff in your app, But your app itself can be like the simplest thing. And I built this as I was preparing a talk.

    Like it was not really a complicated thing to build at all. But now it has this capability of having an agent work in it. And so this is why I keep telling you, MCP is the future. Instead of putting agents in your app, you put your app in the agent. The agent is the app.

    And our services that surround it are just giving the agent structure on how to persist the information that's interesting or relevant to the application working. And now I can go and talk to chatGPT and say, hey, tell me a little bit about my home energy use. And what do you think based on all of the things that are added. What do you think my daily usage would be on a winter day in Utah? Or whatever.

    And all of that I get for free, even though I didn't build the agent part. I don't have to worry about token use or abuse or any of that stuff. I just build the agent or build the app, build the storage mechanism, connect it to the agent via MCP, and now I have all the power of agents to, for my users to talk to the, basically, to just talk to their data. So anyway, I hope that communicates effectively why I'm so excited about MCP, that it enables us to deliver awesome user experiences while not having to build the whole agentic stuff for so many use cases. Of course, there's a lot of use cases for building your own agent and fine-tuning that experience and stuff, but for so many use cases you can just take your existing app, add an MCP server that has a really nice user experience for or agent experience for being able to communicate with that agent, and now your users can do some really powerful stuff with the services that you offer.

    So, that's what MCP is all about, man. I'm so excited about this.