Untitled 00:00:00 Speaker: Welcome back, everyone in this dramatic episode of five hundred live stream. I'm one of your host, James Montemagno, and with me, the one, the only, Mr. Frank Kruger. How's it going, buddy? Hi, James. Hi, buddy. I can't believe we made it this far. Episode five hundred. Um, it's an auspicious, wonderful evening. I don't know why it's auspicious. I'm excited. It's auspicious because we're doing this live, so I have to watch what I'm saying. Normally, I you edit out about fifty percent of what I say, so now I just have to be very careful. Um, but, yeah, let's do this live. Let's have our five hundred celebration. Let's pat each other on the back for thirty minutes straight and then get out of here. I'm ready. That's right. We have hopefully some live viewers. We decided I was like really prepared last week or the week before when we're like, oh, we'll do a live stream. Like we'll create a forum. People can fill out questions. I did half of that and then we're now we're using StreamYard, but all of our subscriptions have lapsed and I refuse to give it more money for this one time we're going to do a stream, so we're only streaming in seven twenty P. We can't do like local. We can't do like all this stuff that we use in Zencaster, but we're live. We did it. So yeah, five hundred is wild. We have some live commenters. We appreciate it hanging out on here. We do actually get some comments and some things as well. Um, but I figure, you know, we, we did episode I think maybe two fifty or three hundred or one of them. Frank I forget at this point. It's been so many. Um, we did go back and relisten to all five hundred today. Um, I got through part of episode one and then couldn't stand the sound of my voice, so I just hung up there. But, um, I think we say this every time we have an anniversary episode. We really should go back and see. What the heck were we saying at episode two hundred and fifty? I was probably saying, I hope we make it to three hundred. Uh, that's I was hoping we made it to five. So, you know, that was my. Can we get it past two? And then, uh, we're here, so. No, I mean, I think, like, you know, you tweeted out, like, if fond memories, notes, wishes. You know, some of my favorite parts of this pod are, you know, a lot of the comments that we get to read, um, you know, we had a discord community for a little bit. We obviously get comments on the YouTube page. And my favorite part of doing this podcast is I get to hang out with you every single week for, you know, thirty, sixty, ninety minutes, sometimes way too long. Uh, and whether we're living a mile apart or hundreds of miles apart, or often traveling and being separated by thousands of miles, I think like some of the craziest memories for me are I think you were in Mongolia. I want to believe in, say, and you called in to actually do the podcast and you had like a travel mic and all this other stuff, and it was just like bananas because I was like, this is classic, Frank. I'm going to turn down my I'm going to try to get more in the zone mode here for our YouTube. So we get real dark and spicy. Um, that was just kind of one of the cool things during this crazy trip. I mean, this was like pre way before the pandemic and, um, and you, you're just doing these big epic tours and like the dedication that we both had to being like every Monday no matter what it's happening, like let's go. You know and and that was like a really cool moment that you made happen. And I will never forget that that that that that podcast. I'll never forget it because it was freezing there. I think it's one of the coldest city or yeah, it might be the coldest capital on the planet. We just had it in trivia the other night on guitar in Mongolia. Um, it's one of the coolest places. Yeah, I think it's just, um, it's funny because if we had taken a week off here or there, I think we would have gotten into the lazy habit of taking a week off here or there. But for whatever reason, we both decided to just double down on this. We're going to make it no matter what. I think I might have missed one or two episodes in this whole five hundred episode span. Plus, it's episode five hundred. I think there actually are more or less episodes than that. It's a little bit weird how the numbering got there for a while, but then yeah, we started doing those like hour long episodes. I feel like the last, the last few episodes have been very long because we just enjoy talking to each other. We enjoy talking about technology. We're in a fun inflection point in technology. I'm sure everyone's tired of us talking about AI, but it's what everyone's talking about and we're both excited and so we just can't shut up sometimes. And so, yeah, um, I'd like to say we do the show one hundred percent for the audience, but really it's it's like fifty percent. I get to talk to James and he keeps me up to date on technology and then fifty percent for the audience. So I appreciate everyone listening and making it worth doing the show. But I feel like, um, if we just had one listener, I'd probably still bug you like James. Are we recording this week? We got that one listener who needs to listen to us. Yeah. It's, um, you know, I always got into podcasting because I liked the medium and obviously it's evolved a lot into especially the video podcast space. And we don't really do too much special. But I've always enjoyed doing it because, um, whether it was this podcast or Nintendo podcast or VS code podcast, the Chess Podcast, it's like short lived, long live. It's like I just get to talk to, you know, my best friend basically doing the podcast. And for me, you know, some people, they FaceTime, they hang out, they do this stuff. But my friends are spread out all across America, and this is like the best medium to connect on things that were truly passionate about. I think that was always something that was really near and dear to my heart when I got into podcasting, and also just the fact that we get to talk about things that we're actually interested in. So when people come and they listen to the podcast, they're like, oh, wow, you're talking about this, you're talking about this, or you're not talking about this anymore. It's because, like we're talking about the things that we're actually building and using every single day. And, um, It doesn't have to be in one category or another or things that were just interested in. I mean, we did an entire episode on, like the one wheel, you know what I mean? Just like how that works. You know, we did an entire episode on CRT monitors recently. I don't know if, you know, like in CRT, like televisions. So that's what I like about it. I always think back to, what was it, the hamburger one. We had a whole episode where, like, you had a hamburger coupon and somehow we talked about, um, just buying hamburgers or something for an entire episode. We talked about business. It was business related. But I think of it as the hamburger episode. Yeah. Um, technology changes our our jobs and technology change. I'm still an app developer. My job hasn't actually changed in five hundred episodes, but the way I do my job has changed a lot. Um, the technology I use has diversified a bit in the later years, and my methodology has changed. And so the things that we want to talk about and nerd about, Uh, they're necessarily going to change so that I'm not even saying anything. Like, we all go through this, this is just a career. When you have a career for more than a few years, careers change and things. You're interested in change. Yeah, I think like for me, I've always been passionate about net development and I still am. And you're right. Like the tools that I use, they're not necessarily dramatically different. I still use a lot of Visual Studio and VS code, but I'm now developing on a lot more different operating systems than ever for more operating systems, ever, in more different programming languages, on more cloud servers, and actually just integrating different pieces of technology. That's kind of been true through my entire career. It felt like it sped up, obviously, with the AI stuff that's happened a lot in the last few years because of what I can develop, because of time and the tools in the toolbox that are empowering us to build these things and then also these tools, funnily enough, create the opportunity to create new applications or tools with those tools. And we'll talk about today a little bit because we're talking a little MCP people because I'm very excited about it. Uh, and there's a lot of new stuff happening in that space. But that's what excited me. I was just talking to my old boss, uh, Joseph Hill. I don't think he listens anymore. Maybe he does. He's one of the co-founders of Xamarin. And him and I were just talking about that exact same thing, just about how, like, how things that we would put on a backlog and never get around to now just get implemented that day when we have the idea and do stuff. But I want to say this, I was reflecting back, thinking about this episode five hundred, reflecting back on the years since for Frank and I met at a Xamarin, uh, meetup, uh, drink up like in at a bar. And we were hanging out, talking about SQL light. Net and databases and local settings and became settings. Uh, still an important aspect to to to mobile apps working on settings today. Yeah. They're important. Uh, and I feel so, you know, lucky and blessed, you know, to be, um, entering the workforce in this era when I did, it wasn't exactly when I entered. It was several years after. But I had this opportunity and I made this pivot to mobile development. And like, we lived in this period when we were software developers, and we both chose this very distinct niche at the time. Thank you. Good word. Uh, and we took a bet on it. Like, we're mobile phones, we're smartphones going to be the bet. And I made a bet on, you know, at the time I was a Windows Phone developer and then Android, then iOS, and you iOS first, obviously. But you know, I think has come from from my world. I was did all of them really quick actually. Like I started developing on the iPhone for us. I want to say maybe four or five, whatever it is pretty early. I mean, they my I remember the, the six months in it was the iPhone five came out with the tall screen and we needed to figure out the the tall when they actually changed the screen resolution. If I could rewind everyone to those beautiful days. There was one screen resolution and the processor, one processor speed called slow and that was it. You just had to it was it was refreshing because I came from desktop. Um, app world and desktops are all over the place and the power spectrum and all over the place and the windows compatibility back then and all over the place in windows sizes. So the iPhone, you're saying we took a bet and a niche. For me, it was just returning to a simpler, calmer, more beautiful place to do development. It was just a happy place to do development. Yeah. Uh, and I fell in love with it. And, you know, I think you're right. And you know, that bet, uh, pay it off. And I still love them. Development. Still publishing applications to this day. I like to say that I may have, uh, stirred Frank's reinvigoration in AI coding after publishing so many things in the last six months, but, uh, published more apps than I have in this last six months. Well, and it's great, too, because, like, you know, and I use these apps every single day like that, you know, that podcast metadata generator, stuff like I just went, created an image, popped it in and boom, we had an image for this podcast, you know what I mean? It was like, boom, we're gonna have a transcript. Gonna be great. So I, I feel like in just reminiscing, I was like, what a great time, great place to be at and humble because it's where, you know, what got me to where I'm at today and I really, you know, thank the entire the entire like net team obviously uh, for me, the Windows Phone team, but also the entire team at Xamarin like before my time because without, you know, Nat, Miguel, Joseph, every engineer, every single designer, all my friends that I made up and all of our products that I still hang out with many of them to this day, um, really made me who I am as an engineer, as an advocate. Um, and it made me a better person. And it really, really was a special time in my life. And I feel super humbled. And because of that and because of this community and and these folks, I got to meet you. And now, you know, fourteen years later, you know, I'm about to be forty this year. And, uh, you know, I feel like soon it'll be like you've known me for half my life, you know what I mean? And that's so cool to have, you know, a friend by your side no matter what. And we meet up all the time, and it's such a such a such a joy to to kind of live that legacy and reflect back now on this podcast, but on my life, uh, a little bit since we met, you know, that's just since we met, you know, and that is that is crazy. And it's kind of like really humbling. Well, for me, this podcast is really special because, um, trained as an engineer, I was always told to take engineering notes like track everything that you're doing, write it down in a notebook so you can reflect on it. And I don't I don't even know. I was told to document whatever I was working on in a notebook. I'm like, that was never my thing. I could never do it. But now, James, we have five hundred episodes of us talking about whatever the heck it was that we were interested in or working on that week. And I, you know, maybe when I'm ninety years old, sitting on the couch got nothing to do. I can't wait to go through the back catalog and listen to all our craziness, what we were excited about and all that because it's documented now. We started the podcast after we had a meetup going in Seattle for a while. Um, this ended up being a little easier to manage than the meetup. And so this is the one that really has lasted, and it's wonderful to just have that record of, um, all the interesting, um, all the progression in technology too, that we've been witness to in this. And it's this podcast is basically, um, a tome of all that technological progress. And what's really unique is like through these conversations, you and I end up building things not only just for the podcast, but from our conversations. And, you know, I think even going into episode five hundred, we'll recap some stuff at the end. But I actually do want to talk about, you know, what happened in the last week, um, with you and software development and what you've been up to. Because if people tune in to episode four hundred ninety nine, episode four hundred ninety nine, we specifically talked about CLI work. You know, we talked about Ralph Loops, which you were super into. Um, we also talked about the brand new GitHub Copilot SDK to build app applications and infuse them with AI easily. Leveraging the GitHub Copilot CLI. I built a bunch of stuff recently with it, and we also talked about how agents, you know, aren't really at this point yet where they are autonomously doing things that would be helpful. And funnily enough, from our conversation that you and I had, I don't even know if that was on the podcast. It was before the podcast. After the podcast, we were just rambling. But I've been using this in like real world. Like as my colleagues are talking to me. I'm like, you know, the problem is that when I push code and the build breaks, it doesn't automatically fix the build for me. Why do I need to go? And like, I'm not getting notified. I'm not seeing anything. Why is that? Why am I getting recommended? How come when I open this thing that it just doesn't do the do the thing right? And you had this great point, which is like and in some way, it's not like things need to be like creepy, right? But like the idea of you saying, hey, you won't be really great. I'm an app developer. You know what I need to do? Like every single week, go look at all the apps or reviews and you want to do to respond to all the people you know what's even better? I need to come up with bug fixes. I need to come up with crash reports. I need to go and, like, take the reviews and turn them into feature backlogs. Like, what if I did that? And then the cool part is we talked about that. And then legitimately, I think the next morning you're like, look what I built. Um, so I want to talk about what you built and how you built it. I want to talk about some of the technology you used, not only like the bits and pieces, but how you're feeling about technology with some CLI work and SDKs and all this stuff. Because a lot of this has changed in the last few months. And then we'll talk about some new stuff that I think will actually really improve the thing that you built. Uh, and then we'll do some five hundred Q&A at the end. How's that sound? Sounds good. I mean, being on multiple ten, it is supposed to be a lightning episode. So we're going to do lightning. We're going to have multiple topics, but it'll be less less anxiety inducing where we're just trying to blast through them. I think we used to have stopwatches when we were doing the lightning rounds in the past. Oh, yeah. We used to hold ourselves to a standard. We threw away all our standards at some point. But yeah. Um. Yeah. It's. Geez. Yeah. I mean, the things we talk about on this podcast end up influencing my life. It turns out. Um, so we were we were going on my old schtick is I want proactive AI. I don't want to tell it to do something. I just want it to do something. I want actual autonomous AIS. I want to just automatically doing things. Um, and I realized, like, I don't know, like you introduced me to MCP servers on this podcast, and it was a while ago now, but I hadn't actually gotten around to like, writing one. You know, it felt like everyone was writing MCP and it was it was mostly my problem of, I can't keep up with them. There's so many of them and all that. But, um, yeah, after talking to you, I'm like, why isn't there an MCP that just can go fetch my app reviews and turn those into issues? Because we solved the part of. If you have a well written issue and AI agent can kind of go write some code and get it eighty, ninety, one hundred percent, uh, implemented sometimes one hundred percent for your code, but we still have that missing part of like, I really don't want to write the issues, James. I just, you know, I'm a coder, man. I'm not a I'm not a writer. And so I decided to sit down and learn me some MCP. I used a blog that you wrote. Oh no, yeah, I did. I think it was monkey related. I'm sure it was monkey related. I don't even remember. Checks out. Um, yeah. So, uh, using our favorite technology net I wrote. Well, first I just needed a library because I figured I do have this highfalutin idea of a new agent that I want to write that does my job for me. But it's hard. You got to build such a monumental, such a revolutionary piece of technology bit by bit. So the first bit I wanted to start with was getting customer feedback and talking to the Apple APIs and all of that stuff. And so I wrote a. Net library to, um, talk to the App Store right now and get feedback from users. But obviously I and it does work with the Google Play Store, but we can get into that. All my issues with Google and Google Play, um, but be nice to have it like log into my support email address and things like that too, just so I do want it to be a little omnivorous and pull in a bunch of stuff. And so I had this library, but like I said, the big revolutionary piece of technology I hadn't quite thought through and hadn't quite got burnt yet. So I decided to write um, and a CLI first and clis are in vogue in fashion, so I had to write a CLI and that was fun. It had some Ansi art. And then I decided, what about an MCP server? And I read your blog and I commanded an agent to write me an MCP. Go off agent, go do it. You see? You see the library. You see the library. Turn that into an MCP. Go forth and venture into the wilderness with the wilderness. And come back in five to ten to fifteen minutes with glory. And I, even like you, double inspired it, because I think at one point I wrote an article about how to, like, do automated iOS builds for, um, Maui technology. And you're like, oh, I just threw your blog at the AI and told it to copy copy, whatever it did, I'm like, I'm going to do that to James. I'm going to hit him right back. And so I pointed him where it hurts. Yeah, I pointed it at your, uh, MCP blog and I'm like, do whatever he did. Which which included stuff I didn't need because, like, you containerized yours, you went full engineering stack on that baby. Um, I just wanted a nice standard IO running on the local machine, um, MCP server thing, because it turns out those are really easy to do. You don't have to run a server. They're called servers, but you don't have to run a server on the internet to use them. Uh, and it turned out great. James, I don't like to compliment myself too much. I try to stay a little bit humble, but, like, it's changed my workflow. Like, um, now in every project, whenever I'm yelling at the AI for how bad it is at typography, I'll be like, go, go read the app review, see if anyone's complained about the typography in this app. I can just go have it like scan a bunch of things. It's been a great library. Okay, I'm going to stop talking for a minute. Well, you know, the thing with so MCP model context protocol is it enables you to, like you said, easily expose, um, any tool function call easily that can do anything, um, that can run anywhere locally inside of a container. It can run in the cloud, it can run, you know, a bunch of places easily connect into it. You can even like deploy these as NuGet packages and dnx it and things like that. I'm really big into DMX recently, so it's like NP so instead of doing a net global tool, you could so let's say you publish a package that's a basically an app or MCP server. You would normally say. Net tool dash g install, you know Apple reviewer. Now you just do DMX Apple reviewer and it's like cool, I got you. It'll auto upgrade, do everything automatically for you. It's done at ten. It's it's built in. Where was your blog entry? James I need blog entries or we should have done an episode on DMX. We probably did. Well, um, so the thing is, you read my blog post, but then there's another blog post afterward, which is all about creating MCP and NuGet packages and bundling them all up on The.net blog. Go read it. It's out there for sure. Mike did it. Um, but no, I love it because, um, once you have that MCP server, it enables you to do many, many things that like, yes, a CLI can do, you can build a CLI, you can build a library. But then what do you do with the data. Right. I think this is like what's really important about this. Um, we just, uh, released, um, this, this SDK. And then the team also came out with this thing called work IQ, which is basically like an MCP server. I think it is just an MCP server, but it enables you to connect to like M365 for all of your teams, outlook all this stuff and query all that data, like directly through the SDK and all this stuff. So like Burke for example, made a VSCode plugin that uses the GitHub SDK and this MCP server work IQ to show him, like all of his upcoming calendars, things inside of VSCode so he never has to open outlook, right? But I was thinking like in your instance, right? I was like, wouldn't it be great if I could just be like, summarize and draft and do this stuff? Because once you have the data, you then can work with that data with the model. Right? And that's the important part is like, I've lived in this world where I've built applications forever and I've built APIs, and then you got to figure out what to do with the data. And before I was just visualizing the data. But I even think about like the podcast stats, a little website that I made. How much better would it be with once I have the data? I could just shove the data and then I could just the user could do anything and ask questions and filter it and visualize and do all this stuff. And I could, like, figure out all this stuff. Like right now I'm looking at the merge conflict stats, which are like on fireside. And I'm like, if I wanted to figure out the most popular episode or length or this, it's like, I hope that someone wrote some code that will show me the average length of our episodes, but if I had all the data, I could shove it at an AI and it would just do the thing right. So I think it's so cool that you decided to turn it into an MVP, because then it's going to work everywhere. Uh, in general. So yeah. Yeah. And I want to say, yeah, I want to say hi, I am Pip and Paul. Thanks for the congratulations. We are live. Um, yeah. Once it became an MCP server, it was. I wasn't even sure. I'm like, I'm going to make an MCP server and just see how I feel about it. I wasn't even sure if it needed to be. Um, but that's become the most important part of it, because once it became an MCP server, it became actionable. You could do things with it, and it can work with other MCP servers. And you have the intelligence of the AI. It's like the AI is not even being too intelligent. It's just gluing all these Lego bricks together. By the way, don't glue your Lego bricks, but it's it's just merging all these things. And it is one of those like, um, the the summer's greater than the sum of the parts, whatever the combination is greater than the sum of the parts, because then I could say, oh, okay, go use the GitHub MCP thing and take look at all my one star reviews and create issues for them. Prioritize those issues. Look through my old issues that I solve any of these if I did solve them. Oh by the way, my thing can also respond to reviews. So also go look for the one star reviews that don't have responses and make sure there's an issue for them. If the problem has already been solved in an issue, please compose a response and allow me to review those responses. I review them, I'm like, all right, post them. It posts them up to the thing. So I feel a tiny bit, a tiny bit sad about posting. AI generated responses, but they're all responses I asked it to compose that I read through. I'm doing my due diligence. I'm not just blindly allowing. Though it might come to that someday. I'm not just blindly allowing the AI to just act as me. I'm you know, I'm reading them through, making sure they would sound like my tone of voice and all that kind of stuff. But it's, um. It's funny how transformative God, I am sounding like a Silicon Valley person with all these, this, this, the synergy between my servers are so transformative. And this, uh, nuclear reactor space, like, what are you talking about? Well, I think no, it's a great point, because, like, I did this recently, what I thought was really fascinating is I had tied together a bunch of different m.c.p.s and like, to your point, not only like you could tie together the GitHub MCP, but you could tie together like the Apple docs. Like, you know, documentation. The mis learn documentation. You could then have all of your source code so you could say not only just draft the issue, go and like analyze the code base, see if it's something that potentially could have been fixed, blah blah blah. And if it was a website, you could say craft A, you could even craft a playwright script, right to like test it, say oh user said something. If it if the review looks like it couldn't do something, then go try to automate and figure out if it can do it. Like you could run that and then generate like a test from it. Right. And you're you're building these things together. Um, which I think is really neat compared to being restricted only to our single inputs and outputs that we're used to creating with mobile apps or with Clis or desktop apps. Right? We're programming what it can and can't do. But in this case, like we can expand the capabilities of it. Yeah. And there's also like kind of a a bulk mode where it works really well, where it's not like go read one issue or go read one feedback and create one issue. You're kind of doing everything in parallel, which just feels better. Like you're like, um, well, for instance, um, I've really learned, like, I think double bouncing, there's all these weird terms for all this stuff, but it's not like create the issue and have an agent go solve that issue. It's fun to have, like create an issue, rewrite the issue, go examine all the code, make suggestions on how to fix this issue, really analyze the heck out of this issue, and then assign it to an agent so that one will have a lot more context and a lot more thought put into it. Just. And that's a lot of work if you're going to do that for every issue. But if you just type in, go look at the top five issues and run an analysis procedure on all of them. Again, this is a part of my revolutionary agent I'm trying to create that will just do all this stuff in the background for me. But right now it's fun to even at a manual level to be pretty efficient with it. With me being able to say, do this for the top five issues, don't just do this one issue at a time and all that kind of stuff. So. So where were you using the MCP server at? Just in VS code or in some other tool? Or like what did you do? I've been using it everywhere, baby. Now that I got an MCP server, uh, I'll be honest, um, I wasn't using MCP servers very much so I wasn't even sure. Like, how do you configure these things and all of that? I wasn't even sure if, like, standard, I o was still in vogue if it was still supposed to be using that. But it seems like everyone is, so it's fine. Um, so yeah, first I started in VS code. Uh, I created an MCP JSON file and I started adding that to all my big app projects. So now in all my apps, whenever I open the code, I can just have it. And I'm in the chat window because we're always in the chat windows now. Oh, you know, what you could do, by the way, is, you know, you you're creating it in your project, but you could also create it in your like user settings, and then it would just be on for every project. Yeah, you're right, you're right James. You're right. You're always right. Just option. I'm still a little gun shy about VSCode settings. Like I do not understand where those things live, where they exist. It's always asking me if it wants to sync them, and then it's like, okay, I sync them, but they're not sync. Like, I just I don't understand VSCode settings, I just don't, um, there's just too many of them. There's workspace settings, there's user settings, there's sync user settings, there's machine settings. Settings settings. Settings. Settings for settings. I don't know what any of that stuff is. You know what I do know? I know Jason and I know how to put a JSON file into a folder that I know, and so it's really easy to type copy MCP, dot JSON around and make sure it's going to be there. I get you, I get you, I hate settings. Um, this is I probably said that when we first met at that at that bar, I probably said something like, I hate settings. Um, so I yeah, but it turns out, um, that's kind of a pretty standard way to inject MCP servers into all the things. So you were kind of nice, kind enough to introduce me to the co-pilot CLI SDK. Yes, yes. Uh, TLA um, so, uh, that thing is really cool because that gives you programmatic access to an AI, just like you're calling, um, an AI at an API level so you can build larger scripts or apps around the AI. The beautiful thing about it is in its little config file, you can just give it basically. And they they need to improve the documentation here, but you can basically just give it, um, another MCP definition, be like, hey, here's the MCP, I want you to run. Here's the command I want, uh, how to execute. It's a local one, so it knows to use standard I o to talk to it. And then all of a sudden, I have API. Uh, what do I want to say? Yeah. API access to an API. Oh, my God, I'm sorry. For all these acronyms. Um, that can talk to my MCP server. You know someone who doesn't know what these words mean? Listening to this show be like, these guys are talking military speak. Something weird is going on here. But, um, so that was the the next place I put it, and I wanted to make sure it was also compatible with, like, all the, uh, I don't actually use it that much, but like cloud code and all that stuff. I just wanted to make sure that my MCP worked there. So I played around with it a little bit there. It definitely works in the copilot CLI because that's what I know next best to VS code. And it works in the cli SDK. Um, so that's where I've been putting it so far. But the beautiful thing about these MCP as you know, is they basically can go anywhere. It's pretty much a standard these days. It is a standard these days. It is. Yeah. I think that's really neat. Um, because yeah, on top of this, you know, when we think about. How you built a tool and then that tool actually got super more powerful just because of these plug ins almost into this ecosystem. That's something that, you know, this isn't like revolutionary. You think of it almost like VS code. You're adding all these extensions, right? But now you're adding the sections. And you technically didn't really build an app yet. Like you're just using a tool with your app as the gateway in, in this plug in architecture, and you're plugging in other stuff and it's the model is able to act in between. But then I think on top of that, the unique part is because MCP is a standard and we're talking to these models, it means that you can also build applications with it. Like you can build clients, you can connect MCP servers kind of everywhere as well. But, um, like you were saying is there's yet like a new app type which is connecting to these MCP servers that have model access that allows you to create unique scenarios on top of that. So I am interested if you went down the next route, which is like, cool, maybe I don't want to open the CLI, or maybe I don't want to open VSCode every time to interact in these models. Like, do I want to go down the Frank Kruger? I built an app that uses this stuff. And then the question people may ask is, well, why wouldn't I just use your API? Right. And the answer to that is like, well, I have one answer, which is you could. But if you wanted to use AI and LM and models the glue between them with MCP, you could plug in this bigger ecosystem and do a lot less work to build something unique. So I'm curious if you built something custom. I've been building a lot of custom apps for myself this weekend to do things that are repetitive and tricky because I was doing what you were doing is I would open up copilot like Microsoft Copilot or GitHub Copilot or ChatGPT and say, I have this thing, go do this thing, and I do it over and over and over again. And I'm like, why don't I just build a tool that uses AI to do this thing for me, right? And then it's repeatable. It's actionable. It's a prompt over and over again I'm like, can I do this? So I'm curious if you went down any path of any like additional layers on top of the MCP and library that you built? Uh, you're leading the witness. I know, sir, sorry, because I absolutely have. Yeah. Like I say, I have the revolutionary agent that I'm working on. The problem is, um, there's a lot of prompt engineering needed to create these. It's like a new class of application. You're calling it glue? I think of it slightly differently. Um, the old app model we have. Okay. Sorry. I got to rewind a few steps. Do you remember when we first became mobile developers and APIs were the fashionable thing to have. Like Netflix had an API. And, um, I don't know. Everyone was making APIs. It was a way to access their data. Twitter had an API that was free. You could actually use it without a million gatekeepers on it. And that was supposed to be a revolution. But just because people open their data didn't mean it was easy to move data around between all these APIs, because they all had their own little funny data formats. And so if I wanted something that scraped from Netflix and posted to Twitter, you would have to bake in that data route, that data path in your app, source data from Netflix, sync it to Twitter sync, not sync up with AI. Now agents, whatever you want to call them. That data path is Uh, can be created at real time. The AI can decide on that data path. I will choose what the source, the the AI will choose what the source the data from. It will choose whether to modify that data mutated in some way, and it will choose where to sync that data to where, where to publish that data to. So this new class of applications is that glue layer that you're talking about. But I think of it as more of an amorphous data path. It can build new data paths on the fly in real time and technically, hopefully in the future, it'll build UIs in real time. It can choose data sources, data sinks, and interfaces for that data. We're not there yet. Someday. Um, so yes, back to your original question. Yes, I am one hundred percent, um, building one because I although it's super cool to go into a chat and be like, go fetch all my feedback, go read all my issues, find closed issues. Reply. Obviously I just want to bake those into existing prompts and just have not even a button I can click, but a cron job that runs in GitHub actions at midnight every night and just goes and does this stuff. Um, that's really my goal. Like it's an application because it's, um, I will build a user interface for it, but a huge part of that application is also going to be automation, which is a cron job, which is here are a bunch of prompts. Here are the order of the prompts I want you to execute. Here are the tools I want these prompts to have access to. I have a bunch of prompt engineering to do, where I have to really narrow down the instructions to where it's actually doing what I want, and in a useful way. And it's not producing a bunch of garbage because it's so easy to generate garbage or slop. Whatever the kids are calling these days, it's so easy to generate slop out of these things. Um, I don't want that. And I definitely don't want to be pushing slop on to users, so I have to refine that. But one hundred percent like the MCP server, in the same way that MCP server made the live was transformative for the library. The app is the next transformative part where it's already narrowing down a lot of those, uh, new data paths that I want to take advantage of. Am I sound sounding like Satya? Yeah, I really feel like I'm sounding like Satya. No, I don't think so. I think you're good. Yeah, I think you're. You're doing the thing. You're talking about. The thing? Yeah. I think, uh, like, it's interesting because it's kind of what we talked about previously, like here is sort of the next step in the journey, right, of, of what it could possibly do. And yeah, I think there is sometimes this like pie in the sky type of, you know, thought process. But then at the same time it's like, well, maybe not right. Like maybe Really like. This is a reality that we can start to build these building blocks, these Lego pieces, and put them together. Um, like, maybe that's a reality that, like, will live in one day. I don't know. Yeah. And like and a lot of times with all apps, as you know, sometimes you don't really understand what the app is until you start building it. So what I realized with this thing, especially with the revolutionary agent that I'm trying to build, um, the problem I have with some apps is very different from the problem I have with other apps. Like, I am very lucky with Isoket and Coca and continuous. I get lots of feedback. And my problem with those apps is it's so much feedback. I don't always deal with it very well. Emails and reviews and support requests, all that kind of stuff. Um, that I've learned is a really good problem to have. There's a whole nother problem, which is my app is not popular and I'm not getting any feedback. So in the case of those apps. What I'm learning is I need a different set of skills. Um, I needed to go do competitive analysis. Go find other apps like it. Figure out what their feature set is. Um, dearest AI, figure out why is my app not selling? Who is beating me in this market and what can I do to compete in this market? So it's it's like there's different problems for different app types out there. My end goal is to be a successful app developer and make money and continue to write apps. I need to be able to sell my apps in order to meet that angle. But meeting that goal is very different for an app that's already established and popular versus an app that I'm trying to establish and trying to make popular. So I'm learning that is a probably the biggest lesson I've learned while developing this tool is it's very different between those two types of apps. Yeah, that makes a lot of sense. Yeah. It's interesting. I think it's a cool use case. I'm glad that you went down this journey in Rabbit Hole, and I'm kind of interested to see where it goes next. Like I'm already thinking about, you know, I, you know, this last weekend there was like a GitHub Copilot SDK hackathon and just seeing some of the things that people were building was just like mind boggling to me of, you know, because you're able to access all these MCP servers and have everything do a bunch of things. I'm like, wow. I'm like, not like flexing it enough, you know what I mean? Like, I was I built a little tool, which was, um, hey, I'm about to post this thing on Twitter, like, make it sound better. So I'd open up the CLI and it's called like post helper. I do post helper post in the tweet it use GitHub copilot. Like, you know, just a free model like GPT mini or whatever. And it would just make it better. So it would add bulleted lists. It would like add emojis if necessary. It would like clean it up. And I was like, that's cool. And then John is like, well, you know, like it has access to like a fetch tool where it can like go fetch web content. Yeah. And like, what if you put out a blog post and you're like, go read the blog post and, like, figure it out? And I was like, whoa. Because, like, when I asked the AI to do it, I was like, oh, I'll download the website, I'll parse the HTML and I'll find the content. I was like, no, no, no, give it to the model. I know it knows how to make the tool calls. It knows how to do the stuff like you're saying, right? Which is so cool and it does a thing. And then I thought about like some of the ways that I have been doing feedback flow, which is like making all these rude API calls and all this stuff to go get this data and all this stuff and then combine it together and go do this thing. I'm like, well, actually what I want to do is probably combine together like MCP servers and do a bunch of stuff and build something locally that actually is able to connect to GitHub, to Reddit, to all these different places and then take that data and then the user can parse over it in the context of it. Right. And that actually enables me to build really unique scenarios that I couldn't maybe possibly fit into the constraints that I had before and allows the users of the app to do something really unique. Yeah, I think modern apps are going to be like that. There are going to be the hard coded data paths that you put in there, because you know, that is the direction you want to go. Like take data from here and put it there, do this processing, put it there. But then you almost to be a modern app need that necessity of. There's also an AI sitting there with access to that data model and whatever the user can dream up and type into a little chat window. It should also be able to do, because now you put the effort into pulling that data in and being able to post that data. Now, also just I hate it because I think when all this came out, I said, don't just put chat windows in every app. Maybe you should put a chat window in every app because, uh, especially if you give it access to all those data, data sources, um, as tools or MCP servers, whatever, it can merge it all and really enhance the feature set of your app just by having that silly chat window there. Now, the next thing that I'll talk about really quickly here as we dive into minute forty five, but also to just yesterday there was an update to the MCP standard. I don't know if you actually saw or not. Why do they change? It's not a standard if you change it. Well it's an extension to it. So it's additive added. You can add. Okay fine. So it is called MCP apps. So now your MCP servers can return UI web UI specifically and have real time communication back and forth. So for example now it could prompt back and show you graphs and charts and things over time. It can go ahead and give you hey here's here's like your top issues. Like which one do you want to analyze. You click on and it goes deeper into it. Right. And like you kind of keep going down this rabbit hole of it. So den from anthropic was on the VS code podcast and he showed like building stuff out like a color picker. And then we showed like perf data analysis where you could click in on it and then you would say, oh, here's the perf data, click on it, it sends it to the model and it does a bunch of stuff back. Right. And it kind of like, wow, we're back in the UI phase, right? Like this is my glory, right? Because what I was doing for the monkey MCP servers, my demo sample app, right, is I would say, okay, like here's the monkey data and then the real time monkey data, GPS stuff. And then I'd say, okay, let's create a Jupyter notebook and then let's do this stuff. Well, now I just return a map, I can charts and this and that and monkey statistics and whatever you can envision. Right. And you could do SignalR to do real time updating and things and pin it and maybe in the future and things like that. So I'm thinking like for yours, imagine you start to get a visual tool where you're able to work with these models. The models are able to to basically put together a bunch of different UI options. For me now, We're not autonomous at that point, but maybe you want to do some refining and dig deeper and expose that UI. And it could, uh, give you a bunch of nice little options instead of often like, what I'm seeing, right, is like, here's four options. Pick one, enter one, two, three or four. And I'm like, let me just click on something, right. So we're starting to evolve a little bit. And I think that's kind of like really like a neat scenario that you can kind of get this like UI on demand when you need it, instead of having to always run a server to do it. Uh, just proving that I was right. I think three or four years ago, I said something like, everyone's missing the point of this AI eventually, and we're not there yet. The AI will be the app. Um, we app developers will be out of business, sadly, at some point when the AI's can just generate the UI as it's requesting and you can say, keep this UI around and all that kind of stuff. I'm not saying that's what this is doing and what you're describing, but this is obviously a step in that direction because user interfaces are important and it's a good way to collect information. It's a good way to present information. Turns out this GUI thing is good. So I'm glad that they're finally supporting it. It's funny because I was just looking up just before we were recording. Like, how do I return an image from an MCP server? Because like, there's a lot of testing I do on my iPhone. And sure, Xcode previews are something, and there's playwright for web stuff, and the web people have virtual browsers. You know, if you're a web developer, you got all the toys, you got everything working for you. But if you're a mobile developer, our tooling is more fuddy duddy and old fashioned, and it's harder to get screenshots into things. And honestly, these eyes are still kind of bad at mobile UI development compared to web development. Because they're trained on web development, they have a lot more examples for web development. Um, so I it's funny, I was just looking at like, how do you return an image in MCP servers? Now you're telling me there's a whole HTML stack I can learn now? So that's cool. I'm actually really looking forward to going and reading that stack and seeing, uh, how much closer we are to my idea of the AI is the app at some point. Yeah. It's neat. It's literally you just return HTML, CSS and JavaScript and it just does its thing. So an infinite loop in it and it locks up the whole UI. Great. I hope not. Well, it's inside a it's inside a iframe. So it's inside of an iframe. So that's the sandboxed iframe. So yeah. So I'm interested to dive deeper into it because I am a GUI person. Like I think that that's the next unlock even for simple things offering like suggestions or ordering. And um, Harold showed an example of like here's your back catalog and like it shows you here's the priority. Well, what if it just showed you a priority, reordered the priority and said, now, now use this. Right. So we're visual people. So I think it's like unique opportunities. Yeah. And our super reliance on markdown. It's been it's been a real boon for that industry. We all owe Gruber money basically. Like his invention of markdown has been a huge part of the AI success. A nice, simple text format that's not HTML because HTML is too hard to compose in an editor. Markdown is easy to compose, but markdowns very limiting in the same ways that HTML is terribly limiting. Before, um, before Dhtml basically came out before JavaScript and before the Dom was really made truly powerful. HTML was it was it was nasty. If you if you lived in the HTML one and even the HTML two days, it was it was not powerful. And I feel like we're still a little bit in that stage with markdown. I love markdown, like I said, we all owe Gruber some money. Um, but it's nice to see that. Yeah, we can do better. We can do better than mark down for talking to these eyes. Yeah. That's cool. Very cool. Well, let's wrap up episode five hundred as we go forward into it. And, you know, obviously, you know, huge shout out. And thanks to all of our listeners that have stuck with us through the years or have just maybe coming in for the first time, did have some big shout outs. I think Frederick, uh, followed you. He said he listened to three hundred and fifty six episodes. That's pretty, pretty good. That's like a year's worth, uh, every day. Um. Oh my God. Uh, Robbie online said, uh, he's only, uh, long commitment. I said, blimey, that's a long commitment. He's only a ten episodes behind. He's gonna jump right to episode five hundred. Loves hearing about our apps evolving over time. Uh, forever. Grateful to hear your experiences with various SDKs and eyes, whether it's. Net or other platforms. Just like loves to hear different opinions, you know, and contradict necessarily some of the stuff I say since I work at Microsoft. Um. Let's see. Chris says congrats, you guys only started listening about eighteen months ago. Welcome, Chris. That's still a lot of episodes. That's, uh, almost one hundred, but it's been great. Podcast, uh, to check out with other net junkies, I learn about new and upcoming technologies. Uh, also love hearing about new mysteries surrounding, you know, a CI, CD provisioning, nightmares, in-app purchases, app review processes, never ending. Keep up the good work that at episode one thousand for ever. Yes, on and on and on. So it'll keep going. So appreciate everybody that you know um, that is listening. Shout it out. Left a comment did a review, did anything uh, over the years. We really appreciate it. Um, so it's been fun and we have we have more. We're not going anywhere. Anything like that. There will be an episode five oh one then. Yes, I'm asking you. Okay, okay. Yes. We're in. Okay. We'll be. We'll be around. We'll be around. We're not going anywhere. Um. All right. And then we have John. Congratulations. Thanks, John. Super appreciate it. Yeah I catalog wow. Wow. Thank you John really appreciate it. Well, you know, if you look at it we have published five hundred and seven episodes. Okay. So we do have some special like, you know, WWDC episodes, things like that. We did multiple in a week. Um, we have two point nine three million downloads. So we're very close to three million. Um, thank you all for listening. Super appreciate it. Um, we have gotten we've started to get some renaissance actually in the downloads counts in the last several months. So big shout out. We're actually trending upwards again, which is the first time in a while, you know, during I mean, you know, during during, you know, we're kind of coming back to early pandemic days. At the end of the pandemic, people stopped listening to I stopped listening to pandemic. We're trying to get a resurgence, but any given month we have twenty to to thirty thousand downloads of the pod. Super appreciative of it. Um, we've in total produced three hundred and seventy four hours of content. Okay. It's going to take a lot of mowing the lawn to get through that back catalogue. Mhm. Um, just do the lightning episodes. Yeah. There you go. Yeah. Um, the majority of our listeners are on Apple Podcasts. Um, second up overcast. Shout out to the overcast crew Pocketcasts my podcast app of choice and, uh, podcast addicts, mostly folks in the United States, uh, followed by the UK. I mean, there's a big other gap, but UK, Germany, Australia, Canada, Brazil, Sweden, Poland and the Netherlands. Shout out there! Yes. Um, and let's see here. Average duration forty four minutes. I think that has grown since the last time we did it. By the way, I'm not going to try to really keep to a tight thirty. And oh boy, we just let that go after it's gone. It's gone. So. But those are some fun stats. Thanks for everyone for hanging out with us. And um, thanks, Frank for all these years and all these pods. Thank you. James. It's been, uh, I always say this is my longest held job I've ever had, and you've made it very pleasurable. Thank you, I try. Well, thank you and thanks, everyone for listening. And that's going to do it for episode five hundred of Merge Conflicts. So until next time, I'm James Montemagno and I'm Frank Kruger. Thanks for watching and listening. Peace.