Talking to your data: Is MCP the future interface?
Download MP3Cool, awesome. Well, welcome everybody to episode 19 of the Breakeven Brothers podcast.
This one, uh, we're super excited to talk to you about something called MCP, which we're going to dig into.
But before we do, Brad, how's it going?
Pretty good.
Had a little bit of a sad event happen on the weekend.
I think we talked about it a little bit, but yeah, Duke lost in the Final Four.
Very, very close game.
Don't really want to talk about it too much, but other than that, the weekend was pretty good.
Had some good food, good coffee, and actually did a little bit of work on Split My Expenses that I've been meaning to do for too damn long.
So yeah, not bad. How about you?
Yeah, it was good. Yeah, good weekend.
Went to the zoo on Saturday and then on Sunday, I guess kind of tying into the sports thing, Alex Ovechkin passed the goal-scoring record, which is pretty cool.
So I'm wearing a hockey shirt today.
Uh just happened to put it on, but now I'm thinking it's a great tie-in to the podcast.
But yeah, good weekend, so can't complain.
I saw that clip. He scored and then he like dove on the ground.
Yeah, yeah.
I mean, I remember a couple of years ago that record was thought to be unbreakable, and then here we are, you know.
So, yeah, pretty crazy.
Nice.
And I think if you take out like some of the lockout years and he's rarely been injured.
But I think if you take out some of like the lockout and like COVID years, he would have gotten there even earlier, which is crazy. So.
How old is he?
I think 39, I want to say.
Okay, that feels like that's kind of young still.
And still, yeah, and he's still, you know, scoring a bunch of goals.
Like it's still, you know, on fire. So, yeah, pretty cool.
Nice.
Cool. Well, anywho, let's talk about what we've been gearing up to talk about now for a bit.
And we've actually previewed this on a few other episodes, kind of just saying, oh, maybe a couple of sentences, no real deep dive.
But MCP, uh, Model Context Protocol.
And so we're going to kind of try to get into like what it actually is, talk about some of the technical aspects of it.
Um, where it's strong, where it's weak, and then kind of how to get started.
And I think, you know, in all honesty, this is probably not going to be our only episode on something like this.
I could see us revisiting this, um, you know, in a few months, maybe later in the year as more and more things develop because I don't think it's something that you can really cover in one podcast episode.
Yeah, and I think just to start off, some background on MCP.
So I think if I remember correctly, Anthropic released MCP, Model Context Protocol, I think November or December of last year.
And before that, there was tool-calling, which was another way to feed external data into an LLM chat.
Anthropic made a new kind of standard at the end of the year and then went for it and basically adopted it only within their technology stack from November to probably January or February.
And I think February rolled around and people started getting more interested.
When I say people, I mean the AI companies are going crazy right now, tons and tons of innovation, and they finally picked up uh, MCP.
And so, you know, ChatGPT, Sam Altman, OpenAI was like, hey, we're going to pick this up.
Uh, I think even a day later, uh, Google CEO Sundar Pichai was like, oh, MCP, like, what do we think about it?
And I think it kind of caught the whole AI community by storm because there was a way, again, to feed external data into LLMs.
But it just wasn't that easy.
I think MCP is the first iteration of something that makes it much more friendly to incorporate external data into chats.
And that's not all it is, but I think that's a little bit of the background and history.
And as we talk more about it, I think that's important to keep in mind because it's ever-evolving.
What we look at today, there are lots of rough edges.
Like I think the promise of MCP makes a lot of sense and I've tinkered with it uh this weekend and I have thoughts to share, but it's still evolving.
It's very exciting and I think there's an intense amount of focus and kind of priority on being a company that puts out an MCP server for your product.
And I guess maybe that's a good place to start, Ben. Give me one MCP server that you've seen um that had some cool kind of results or integrations.
Yeah. Yeah, I think the one that is probably nearest and dearest to me is Xero, which is XERO, not with a Z.
That is an accounting software that's really similar to QuickBooks, but it's kind of more, it has more global usage, whereas the US tends to be very QuickBooks-oriented.
But Xero released an MCP server, and I'll find the link in the notes, or put the link in the show notes for the person who demoed this because they deserve credit.
I think it's Growthwise on YouTube, but we'll link it.
But yeah, he walked through connecting to the Xero MCP and like, what can you do?
And I think we'll get into connecting and some of those aspects, which is probably where it's a challenge, especially for non-technical people like myself.
But once he had it connected, you can ask it things, you can ask the chat things about your Xero file or your Xero company.
And it just gives you responses back.
So he asked, you know, what were my last five invoices?
And it would just spit back his last five invoices from his Xero account.
And he could even create an invoice, and he did that.
I think there were a couple of things he had to tweak where it wasn't perfect on the first go-around, but like we say a lot in these podcasts, like this is only going to get better.
And so the fact that he could talk to it, create an invoice, and it creates an invoice in Xero and you can go in and look at it and edit it if he needs to.
But hopefully at some point, you know, he'd be able to just create an invoice and then not even have to look at it again or have to edit it.
So that was probably the first use case where I was like, oh, that's really cool.
And being able to connect, you know, be able to use chat LLMs, um, with more context from the systems you're interacting with on a day-to-day basis, I think it's going to be really powerful. And that's what had me really excited about it at first.
Yeah, and I think I do want to explain it. Explaining it is a little hard, though. I guess I can give it my best shot.
Like as I've been talking today about it, it's feeding data into the LLMs.
And again, we had function calling or tool support, which you'll see online. And then we have this MCP way.
And I think the MCP way is important because it's a standardized protocol to essentially hook into a bunch of different data sources.
And it makes it easy to install, easy to control.
Like yes, it's not perfect, but I think the big thing is it takes a lot less effort to get integration with various products that you work with.
So I saw an MCP server from PayPal, from Stripe.
All these companies are creating essentially a tool for your AI chat to hook into and invoke various operations.
So usually an MCP server is packaged with various tools.
So if you've used Stripe, a famous billing platform, payment system, you can invoice a customer, you can pay, you can refund, all these like core operations that are within Stripe and PayPal.
The MCP server allows like a one-click install in theory, a simpler install to get your LLM chat to essentially understand how to use Stripe APIs or PayPal APIs.
I think again, you could pull this off with function calling and tools. It just takes a lot more effort and it's not easily shareable because it's kind of like a bespoke integration for each of these things.
So, big thing about MCP, standardized way to do it.
Anyone can kind of like install the PayPal official or the Stripe official MCP server. And these servers are essentially exposing the core logic of these applications so that the AI agent can automate things.
So, like Ben explained, if I wanted to invoice or refund a customer who had just paid for my product, I could connect the Stripe MCP server and say, you know, find the last person who bought my product and then refund them.
And so if I didn't have the MCP server, I'd have to go in the Stripe dashboard, do all that manually, find the user, click refund, click done.
The MCP server allows the LLM to say, okay, I know I need to do something. Do I have tools that help me get to that objective?
It will scan the MCP server, see all the descriptions of tools, say, hey, I can find a customer, hey, I can refund a purchase.
So at first, it will find the customer, it'll ask you if you want to use this tool, click yes.
It'll kind of get the customers, find the latest one, and then find their purchases and then do a refund.
And so it's like a way to connect data to your LLM chat.
And I think the biggest thing like we talked about is it's kind of plug-and-play at a high level.
And you can have multiple servers. So you could have a Stripe server, you could have like a product server, some sort of like integrations that work together.
I think the complexity of lots of software today is that every product has its own data set. And to work across these boundaries is complicated and time-consuming.
And so, if you can bring multiple MCP servers together and have Claude work on them with a single chat session, I think that's a big benefit.
And that's something I've been trying to do with varied success. It's not super easy as much as the hype might suggest.
Yeah. And one thing I would say too is, um, you know, basically, or maybe we can kind of talk a little bit more about how it works. Like how does it actually work in practice?
Because essentially, when you were talking about like Stripe and, you know, Google and all these different companies publishing their MCP servers, like what does that actually mean?
And we'll also probably link another video or two in the show notes for this episode because there's some really great videos out there that, you know, I've leveraged, which really go into it, probably better than Brad and I could.
But just the kind of gist of it is essentially these companies are publishing their MCP server that kind of goes over and tells your chat, essentially your LLM, this is how I operate.
Like this is what you can do. These are my tools and this is how you can kind of interact with me.
And so when we talk about, you know, uh, Google or Xero or Stripe, like you said, there is that work that those teams or those companies are doing to make that available.
And so as of right now, as of today, QuickBooks does not have an MCP server, but potentially, since Xero did and those are always kind of the two that go against each other, QuickBooks might be making one.
And then honestly, they probably already are at least working on something like that right now. Even if it never gets released, they probably are at least contemplating that.
Yeah, I think the beauty is anyone can create an MCP server.
Um, it might not be official. So I could create one for QuickBooks in theory.
Um, and what that is, yeah, like Ben mentioned, what is an MCP server?
Essentially it's just a way to call Stripe APIs or other product APIs under the hood.
But when you're interacting with the LLM and the LLM has a tool within the MCP server, you don't care how that's done.
You just know like the input and the output or essentially what the tool can do for me is all I care about.
I don't care about what Stripe APIs are hit under the hood to kind of fulfill that tool request.
And I think that part's pretty important because if it's an official MCP server, Stripe will always publish, hey, you can get a customer, you can search for customers.
Over time, they might change their API under the hood, but they're controlling the MCP server and the APIs on Stripe's backend.
So you really never have to care about how this is done.
Again, LLMs kind of act on text as the core functionality.
If you ask to get a customer and it returns a JSON payload of the customer's details, you don't know how that's done and you don't care.
And I think that's the beauty of the MCP server and tools is it's very much these building blocks.
And then the LLM has high-grade intelligence, PhD-level intelligence to kind of incorporate a plan, look at what available tools are there and act on them.
And I think it really plays into this agentic 2025 that we're looking at.
People are trying to run agents to, you know, automate things and offload work. And part of this is giving the LLM enough tools to do the job.
And enough tools to do the job is powered by MCP. And again, it could be powered by function calling, but it's easier, more standardized, easier to get kind of like onboarded.
And it's going to be supported by everybody in the near future. So I think MCP server is like a functional component of an agentic workflow.
And I think that's what excites people the most is how does this work? How do we get onboarded? How many tools can we use? Like how far can we push this to make it, you know, a software engineer, an accountant?
Like what tools do you use at your disposal? How can we integrate those within an MCP server and then allow like correct access control, all those sorts of things.
So, it's a very interesting space right now and I think I've personally built my own MCP server. I think Ben's interacted with his own MCP servers within Claude.
So we can dive into the nitty-gritty there, but I think just pausing. Ben, anything to add on like the MCP description or kind of like methodologies?
I know there's a lot to unpack there and I'm probably not the best at explaining it, but that's kind of the best I could do at a high level.
Yeah. Yeah. Well, no, I mean, there's nothing else I would say other than I think just from the non-technical standpoint, what it feels like to me as an accountant, it feels like it's a more natural way to get information out of a system.
And a lot of what accounting and accountants do is you're going to pull whether it's financial data out of your GL.
So like, hey, I need to know what's my fixed asset account balance as of March 31st? And soon you'll be able to just say that.
If QuickBooks or Xero does have an MCP, you can go to your chat if it's connected to that server and say like, what was my account balance as of 3/31? And it'll just tell you.
And that might be a potential use case for business owners too, to kind of just be able to more quickly or more easily access that kind of data without having to know all the intricacies of running a QuickBooks report or running a Xero report.
So I think once the connection is established, it should be easier to get information in a more natural way versus having to A) know how to run the reports in the system, or B) use an API and make a request.
You know, like I'm used to trying to do that with Python and like, you know, so this is something that takes all of that technical work out of it.
There is still some technical work that you have to do to set it up, which we'll get into here, but, you know, I likened it to Brad on text.
And I don't know if this will actually hold up to be historically accurate in the future, but to me, I think what it felt like was, you know, back pre-touchscreen, we used to have to like hit a bunch of buttons to do something on your phone because we didn't have a touchscreen.
So like you'd have to hit arrow keys and then hit enter and then go find more arrow keys and hit enter. And now we just touch icons, like we just touch things because that just feels more natural.
And I feel like that's going to be a similar thing with getting data out of our systems and connecting to our systems where we're just going to ask it questions versus having to, oh, you got to go into this report window and then you got to run this report here and then adjust your parameters.
Um, you know, you can just say what were my sales last month? And it'll just give you the sales last month.
So, I don't know. We'll see if that ends up being, um, again, factual and accurate as time goes on and if that's some of the use cases that come with it.
But early on, that's kind of where it feels to me. So, um, but yeah, let's get into the technical aspects of it and as you were building and we can kind of compare notes there and share with everybody.
Yeah, I I think Ben's sentiment is absolutely correct. Like the community, when I say community, I think AI Twitter folks are extremely excited about it.
You can see the impulse of people building MCP servers as a strong indicator it's here to stay.
Um, and because of that, I thought, how do I get this set up? You know, what exactly is this and how can I build my own?
So this weekend, I probably spent, I don't know, two hours trying to get an MCP server up and running.
And like Ben mentioned, I wanted to simplify personal finance.
And so for those familiar, mint.com existed as a long-term kind of like personal finance app that just aggregated your accounts, showed you transactions, spending, etc.
I use personal finance now, which is an Empower product. So I think it's called Personal Capital, the Personal Capital dashboard.
And what I wanted to do as a proof of concept is essentially chat with my personal finances because as someone who has various cards and banks, it's painful to look at all these things.
I'm sure I could reduce spending, reduce subscriptions, all these common things that, you know, if you spend time looking at the data month over month, quarter over quarter, you could probably find some cool opportunities.
So that was kind of my initial goal.
Um so what I did is went to the Claude documentation. So Claude is the one kind of championing the MCP protocol.
And with that, there is a Python and a TypeScript kind of like starter kit.
And so what I did is I pulled down the starter kit, basically got a simple MCP server with a single tool just to be able to expose it to the Claude desktop app.
Because when you create this MCP server, part of it is creating the code, and the other part is telling your chat app like Claude or ChatGPT.
Currently, when we're recording today, only Claude desktop supports MCP servers.
There are IDEs like Cursor or Winsurf who have them, but that is more on the developer side. If you just want to chat with your data in a non-developer way, Claude desktop is definitely the move.
So I integrated this MCP server in Python following their kind of quick start guide. Went into Claude desktop and tried to get it integrated.
And this is where I ran into my first issue. Very hard-coded paths in terms of MCP server setup.
So again, when we talked about an MCP server, you can think of it as a wrapper around hitting Stripe APIs or QuickBooks APIs.
So you point to this kind of program locally on your computer. That program then interacts with a web server remotely.
And mine, I didn't have anything special in it, like it didn't really do anything. Um just kind of like a fake dummy tool.
But it uses Python's uv package manager, which I'm not super familiar with.
And then it uses pretty hard-coded paths in terms of pointing to where this kind of like MCP server is on disk.
And so what that looks like is pasting in kind of the directory and a few arguments to start this MCP server.
And I fought with it maybe for like 10 minutes. So I boot up Claude. The second Claude boots up, it prints out a bunch of error messages in the top right corner. It's like, can't find this, can't find this, jump to the logs, etc.
And I thought, you know, like MCP, I've heard so much about it. I'm a developer. Like it wasn't immediately clear to me what to do.
And so I I kind of dove into the error logs and figured it out.
Um but I think one of the pain points that I ran into for MCP, at least initially was: One, getting that initial understanding of how things work. Two, getting it set up on the LLM side, which is the chat app, and understanding the codebase side.
And then Three, understanding that to kind of have iterations within your MCP server, you need to reboot the chat app every single time, which sucked.
So like I would make a code change, I might be in the middle of chatting with my MCP server, and oh, I need to go, you know, quit out of Claude desktop and restart it because how it worked is when the chat app came up, it then like kind of started all the MCP servers.
And these are long-lived applications. So if I made any code changes within Python, I don't think as far as I know, it wasn't picking that up.
Um so yeah, definitely a few hurdles in the beginning that I don't think were too complicated, but I think people were just acting like it was this insane thing and I thought it'd be, you know, a three-minute thing. It probably took me I don't know, at least 45 minutes to get it configured and set up, at least with a bare-bones version that doesn't do anything.
Yeah, I would totally echo that and if something took Brad, you know, whatever you said, 45 minutes, then triple that for me because yeah, it was difficult.
I think, and some of it is silly to be honest with you. Like one of my challenges was I had the Claude desktop app and, you know, once you go into like the settings pane, you should see your MCP servers that you have installed or that are active.
But I didn't have that pane and I looked around for like 20 minutes and then someone's like, you have to have developer mode on, which I didn't have on.
So I, and it was like in some GitHub forum that I found it in. I was just like, that could be more clear to be honest with you.
Mhm.
But then once I had that up and running, one of the use cases that I did is there's a like a file system example that is available.
So there's a GitHub directory that you can clone that has like all these different MCP servers that you can connect to.
And so one of the simpler ones was the file system where basically you can connect to it and you can point at certain directories on your local computer and then you can ask it questions about those directories.
And so I got that one up and running. I said, hey, show me all the folders and files that are in this directory. And it went through and you could see it kind of going through those.
Nice.
And getting information. Yeah. And then I asked, I said, which ones are the most recently edited ones?
And it went and pointed out, you know, this one was edited April 4th, this one was edited, you know, January 28th. So you're able to kind of see information about those files.
But yeah, definitely, definitely getting it up and running was the challenge, at least to start.
Because you got to go in and edit the config file and all that kind of stuff. And so I think for non-technical people, that's a hurdle that is going to feel a little bit painful at first. It certainly was painful for me.
It's not as easy as going to, you know, chat.openai.com and just starting right away. There's a bit of a hurdle to get through.
And I think we're not the only ones. As I've seen online, there's been plenty of people that are trying to create this one-click marketplace to install MCP servers.
I think that realization pretty much came from the onboarding side of MCP servers: it's just a few things to turn on, a few things that could go wrong for people who are less interested about that and just want things to work, which is all of us.
But again, I think on the developer side, we want to see a little bit more under the hood. People who don't care about that, I think that is a fantastic way to do it.
And I think VS Code is enabling like a one-click add experience, at least for their latest VS Code build, which is more on the IDE side, but yeah, so I I guess jumping back to my story.
I had gotten things set up. This was just a bare-bones MCP server. Now it was how do I get data out of Personal Capital's dashboard.
And so what I did is I logged into their website, opened up the Chrome dev tools, and as I navigated around the pages internally, this dashboard was making API calls to various endpoints to pull out data.
So one example was transactions, which are underpinning all the charts, data, income, cash flow, all these features are basically built off a list of transactions.
So that was the first one that I started with. Inside my MCP server, in Python, you'd create a function, and that function essentially was `get_transactions`.
And then there were parameters for that function, start date as a string, end date as a string, to kind of say, give me transactions between these two dates.
And the cool thing about the Python SDK or packages that were used for the MCP server is they do a little magic under the hood that if you describe your MCP tool within the MCP server with a comment.
So I would say, you know, get transactions between this date and this date and provide a specific date format, like YYYY-MM-DD.
That comment is actually surfaced inside and used inside the MCP protocol.
So when the Claude desktop app boots up, whatever you have in your comment inside that function in Python is actually broadcasted as the description for that tool.
All the parameters that you've defined are also automatically kind of collected and shared with the MCP client, which is Claude in this case.
So you can imagine when Claude boots up, it says, okay, I see an MCP server called Personal Capital. It goes to look at it. What are the tools within this Personal Capital MCP server? Okay, there's `get_transactions`.
I know what that does because the person described it in natural text, which the LLM can understand. And I know the arguments.
I think the arguments, which are like the function arguments are very, very specific. And that's how Claude can then call your tool: okay, I know it's this, I know this is what it does. How do I actually invoke it?
Um, and so that was the first one that I hooked up and it was a little hacky because I have to log into the web app. When I'm logged into the web app, I kind of pull my authentication data down locally and reuse that.
But the session timeout is only 30 minutes. So essentially, I log in, I have 30 minutes to be able to play with this, so I'll have to re-log in or re-authenticate within the MCP server.
And I think the coolest part was getting it to work the first time. I had gotten it logged in. That was a huge headache. Tons of hours spent on that that are outside any LLM stuff.
This is just like trying to figure out how their website worked. And then I would just say, what have I spent on in the last month?
And so it knew what the current date was, it knew what the last month was, it generated two dates like a 'from' time and a 'to' time, invoked my MCP server for transactions.
And my MCP server essentially hit the Personal Capital API using the same API that they use on their web app, pulled in this giant JSON data and returned it to the client.
And then it kind of listed it out. I thought, oh, that's pretty cool. Then I said like, how much did I spend in total? And then it kind of crunched through and gave me the number.
And I thought, oh, this is so nice. Like, this is very basic, but you get the point that once you have that data within the LLM, that is like the main roadblock.
Like MCP servers are just a way to get data from the outside world into your current chat because again, LLMs are super smart.
If you have someone who's good at math, good at reasoning, good at logic, you can be very creative to find insights from your data.
But I would never go to Personal Capital, go through all my transactions, like export them, copy and paste them in like, count me out.
I would rather spend 100 hours coding an MCP server instead. And that's kind of what I did. So it was very, very satisfying to get that first kind of like, oh, this works, this is real data.
And now like the LLM is plugged into my kind of financial life, which is really cool.
Yeah, a couple points there. And I apologize to all the accountants that just heard Brad say that he would rather code for 100 hours than go into reports and pull and slice and dice things in Excel because that's a lot of accountants' jobs.
And that's the nature of why the profession needs to get updated with technology for sure.
But a couple things, I guess just to point out so people are super clear. So, what you were describing building was the MCP server itself, not the connection setup within Claude, right?
Like if Empower, you know, Personal Capital, if they had their own MCP server, you wouldn't have had to do all that. But because they didn't, you created that MCP server yourself with those kind of API paths that you were talking about, right?
Yeah, exactly. They didn't have an official one and lots of people don't. Doesn't mean you can't do it yourself.
And I think a better way to do it is use their official APIs. Unfortunately, that doesn't really have great public access. So this was like a hacky way to do it. Um definitely for testing purposes.
But yeah, the connection between Claude and the MCP server, that is handled through the model context protocol itself. You know, describing how Claude talks to my MCP server.
My work is just giving my server behaviors or tools. And these tools describe, you know, how to call it, what data it returns, etc.
Yeah. And so I think for people that are getting interested or getting into MCP, you know, if there is already an MCP server that's being published by Stripe and, you know, by whatever system that you're interested in, Xero, you wouldn't have to do all that that Brad just described.
You would just be doing the Claude setup and connecting to that server, which is still kind of a challenge. That's what we were talking about earlier. That's still not necessarily easy yet as of today.
But if they don't have that server, then you can do what Brad did and kind of throw it together yourself, either with APIs or kind of the hacky way that he did if you're, you know, able to do that.
Yeah. I I see the long-term trajectory saying every product has an MCP server. However, it's not without downsides.
Before we dive into downsides, I'll probably just wrap up on my story because I could talk about it forever. But I think that was the first, you know, successful call getting transactions.
The one that I really wanted to see was to see if Claude could do processing. So LLMs in the past few months have gained an ability to actually write code and run that code.
And usually what that ends up being is Python or JavaScript where if you ask it to do a complex calculation, the LLM doesn't think. What it does as a kind of thinking mechanism is it writes code and then runs it and then looks at the output of that code.
And so I asked it like plot my like net worth over the past three months.
And so it looked at my account balances, looked at my expenses, basically wrote, I think maybe 200, 300 lines of JavaScript to sum all these things up, write like React graphs, and then finally run that.
And I got like a visual interactive playground of sorts that I could click on various tabs, and it would show me like my bank account balances, my investment balances, my credit card debt, like all these pieces of your financial picture in your linked accounts.
It showed me this beautiful graph representation. I thought that was really cool because I'm just giving it the data. It's doing that second step and processing and writing code that I never asked it to do because I care about the output.
But it knows what's best to get the output. And so I think that was probably the coolest bit after I'd fought through, you know, hooking up authentication, hooking up these tools was, now that I have the data, what can Claude or like modern LLMs with, you know, great reasoning do with it?
And it showed me some pretty cool stuff. So again, it wrote React code that plotted things, it found like subscriptions over time, it grouped things together. Transactions are really ugly when they're from your bank, but if an LLM can look at it, it can understand it.
Like, you know, usually you have recurring bills, but maybe the bill like name changes from time to time. Like it can figure all that out.
So, uh, that was kind of the wrap-up on my MCP server. I think I'll probably open source it uh in the next month or two. It was a really fun project to like get an understanding from the developer point of view.
How much effort it takes to create these things? And again, it's not perfect. And as I was building this, I had a few frustrations. I think those will probably go away as the tooling and infrastructure um improves.
But it was a decently fun experience. It's nice building these connectors. Like MCP servers are just connectors to get data out of one system into the LLM chat.
And I think that power becomes stronger and stronger as you have multiple servers that kind of compound where I could pull my financial data, maybe read a spreadsheet on Google Drive, like put all this data together, what do we get?
And I think I was just using one MCP server, mostly using one tool, and I was getting a lot out of it. If I connected it to much deeper insights and data, like you can really see it going far. So I was really impressed. I think I was like very jazzed and energized to write the code too.
I was like, oh, this is freaking cool. You know, like kind of one of those really fun coding session times.
Yeah, there's definitely a bit of a dopamine hit once you get it connected and it like talks to you, you know, the chat like talks to you with like data that you're like, yes, that's right. You know, that's correct. I did spend that money or whatever.
Um, and yeah, there's so many different use cases. One of the areas that um, that was being a challenge, um, that I wasn't able to solve before we started recording this podcast was getting the GDrive MCP server hooked up.
Um, I got the file system one done. I saw how the Xero one worked.
Um, but the GDrive one is a bit more challenging and I think that's one thing I wanted to touch on was authentication seems like that could still be kind of a challenge.
Um, because I know QuickBooks OAuth authentication, like I've used the API and it's again, for a I'm going to beat a dead horse saying this for a non-technical person, the OAuth stuff is pretty menacing and it can be pretty brutal.
And so that was something that I think, um, you know, the steps and the documentation within GitHub are really good, but like if anything goes wrong or you have to kind of troubleshoot on your own, it's tough.
Um, and so that was something I noticed uh that was kind of a challenge. And then I think the second thing, you know, going back to what you were saying about getting the data and then having the chat, like that can, you know, do PhD-level research and do, you know, coding and data analysis, like when I think about it for accountants, just as an example.
Um, one of the things that accountants typically have to do at publicly traded companies is do like a set of disclosures.
Like every quarter when they file their 10K or 10Q, excuse me, they need to prepare certain disclosures for their investors um that are required per, you know, US GAAP.
And like one of the things that you could kind of in theory kind of think about is, like just as an example, you need to separately disclose, you know, like the cash paid for like leases, just as an example. And I won't get too into debits and credits on us here.
But like, you could in theory describe like on your MCP server, if you have like a general ledger system like, you know, Oracle or Workday or SAP, if they had an MCP server and you could describe, hey, this is how you can get that data.
Like if you can filter for, you know, cash payments that are associated with these different lease objects in the general ledger, if you could kind of communicate a way to get that data, then the accountant user could just say, hey, give me the lease payments, um the cash lease payments that we paid for the last quarter.
And it just pulls it in and like does, you know, the grouping or whatever you needed to do formatting wise. But that's a pretty powerful way that you're not having to go in each time to the system, run the reports, change the parameters, export it to Excel and then do all your monkeying around that way.
If that MCP server is connected to your general ledger system or even like a reporting intermediate area, you could then just tell it what you need and as long as it's clear about how you get to that answer.
If the data is clean in the system, there should be no challenges in getting that.
And so that was something I really wanted to do with the Google Drive MCP server was I wanted to be able to connect to the Google Drive MCP server, connect to like a Xero or like make my own kind of QuickBooks version and just do some basic questions of like, hey, does my bank balance that I have, my PDF, uh bank statement saved down in my GDrive? Does that match with what Xero or QuickBooks is telling me, you know, it is right now.
Um, and that's just, you know, that's just one silly use case, but you could think of all these different times where a lot of accounting, you're reconciling things, you're comparing two different reports to make sure things match up. If they don't, you have to figure out why.
And so there's I think a natural use case to that as well. And then the last thing I'll say on kind of use cases is there's a company, uh, it's called Numeric, Numeric IO, not AI, Numeric IO. And they are kind of doing some of this stuff.
So they basically automate like your uh a lot of times accounting departments have to do like a flux analysis where you look at this month's accounts, you know, say a profit and loss statement or a balance sheet, you look at look at that compared to prior month and see like, okay, what's the change?
And I kind of have to add business context as to why that change. So, you know, revenue went up 1,000%. Okay, well then we sold 1,000 more units. You kind of do that deeper digging.
Um, and Numeric is like trying to automate that. And so there are companies out there that are like kind of taking a bite of that apple, but I think there's still a lot of just general room for improvement because that's so much of what accountants are doing is pulling data from the system and analyzing it.
And if, you know, chat can do that, then that's going to be a huge lift to those kinds of roles.
Yeah, Chat's big. I think MCP right now is the worst it's going to be. We'll say that continuously for AI products, tools and services, but speaking on MCP and where it sucked the most, I think my top two as I integrated with it this weekend, probably number one was the output for Claude and other LLMs.
So when I say output, when you ask Claude to describe something, to do anything, it has a limit on the number of characters it can write out.
And this usually isn't a problem. Um, for example, if you ask for a bedtime story for your kid, it might write something too long and at the very end say, I can't finish writing this, like, please tell me to continue.
For all intents and purposes for 99% of my work, I never run into this limit. But when I started using MCP servers, specifically the one that I was interested in with transactions, I kept running into it.
And the reason I ran into it is because I was asking things like, hey, for the year 2024, identify my, you know, top 10 purchases.
And what that would actually get translated into internally for the LLM is, let me go call this uh MCP tool to go get the transaction data for a whole year. And you can imagine for a full year, there are going to be a lot of transactions.
So 500+, for example. For each of these transactions, there's a name, there's a date, there's a category, there are a few metadata fields.
Um and what Claude tried to do continuously was to write React code to basically parse out the top expenses.
So when I thought top expenses, I thought, okay, what it can go do is go fetch these expenses, and then just look at it, you know, maybe take the top 10, it's not that hard.
But what it was doing was writing React code to basically, you know, do like a maximum function to pull out the top 10. That's not super complicated.
But what it was doing was it was writing back out each of the transactions. So you can imagine there's a transactions array and it was like writing out like Chipotle, $10, In-N-Out, $12. And so the core logic of determining the maximum is not hard. It's very straightforward. Anyone could write that code.
The problem is it was writing the input to the function in the code as well. Like it couldn't figure out a way to take the external data and just like run the function on that data. And that part was really frustrating because I wanted to work on a large data set.
The only way it could figure out how to reason is to write code, but it was writing my transaction data into the output code and would consistently choke and say, I can't process this.
And so I was really excited because when I first started doing this, I would say, you know, tell me the transactions in the last month. It would get there and I thought, oh, this is unstoppable. Tell me the last three months. Okay, it kind of half broke.
Tell me the last year, broke every single damn time. And I thought, okay, there's clearly a limit on how far this can go. And I think, um, in the future, they'll have a better way to kind of write code and have input data. But right now, that sucked. I was kind of disappointed because having these larger views are excellent.
But the way it processed and understood that was writing output code and that output code included all my transaction data. And so that was a big no-go. I don't know if you ran into anything like that, but that kind of sucked.
No. No, I didn't run into that, but that's super interesting and I think relevant to, you know, bringing in MCP and how that might impact your day-to-day job. Like companies more than ever have more and more data and the data sets are larger and larger.
And so, yeah, that's super important to know because in my head, if I just said, hey, get me the top 10 transactions or whatever it was that you had said. Hey, I'm almost thinking that that would just become like a SQL query where it's like it just says, okay, he wants to know this.
That's easy. And that SQL query would take less than a second, right?
Right.
But it's interesting to know that that's how it works under the hood. I didn't know that. So.
It's funny you say that because that cues me up for number two. Uh, I had pulled in a SQL server MCP server to actually do that exact thing. I thought this is barbaric. There's got to be a better way to do this.
And so I pulled in the like SQLite MCP server and I described it in LLM chat. I basically said, pull the latest transactions for the past year, then store them in the database.
Again, I'm like directing it to use these tools. Ideally in a smart way, it would figure that out and say, don't write code that's unoptimized, like start using SQL.
But I gave it the explicit instructions to say, fetch my transactions for the past year, store them in the database, and then find the top 10.
And this almost worked, but there was a tool call for each insert. So instead of my code or instead of Claude writing all my transactions line by line in code, it was asking me to tool call line by line for an insert into an expenses SQL table.
That took ages. So then I redid it and I said, write it into SQL using bulk inserts. Like just things that are so obvious to any human. So like it really made me think. I thought, damn, MCP is good. And what we have here is like the building blocks, but these common things where if you're doing bulk data manipulation, it should be efficient, it should be quick.
You shouldn't be writing the output in the code and you shouldn't be doing a line-by-line insert. These are obvious things for any developer or any proficient tech person.
And so, it's not fully there yet. Um these are some of the top issues that I ran into and I thought, okay, if I'm running into these, other people are too and we're going to get to a spot where this is not an issue in probably like one month's time.
Yeah, I wonder how much of that is the LLM getting better at understanding the request or is that, you know, so much, I hear so much now, you know, what should people be learning?
What should like should I even learn how to code or should I even learn, you know, whatever skill that they're talking about.
And I think a lot of times it's yes, like I would still think you need to understand the basics of like what's going on under the hood. Just like you said, like to understand that it was doing React code and why that was so slow. If you didn't know how to program, you'd be like, what is this thing doing? And you'd be kind of probably stuck there for a bit.
But besides just that, a lot of it is knowing how to ask the question or what is the right question to ask or what is the right, you know, the prompt engineering obviously has been said a bunch, but like it's knowing how to talk to these things and how to ask the right questions, not just a question, but what's the right question or what are the right set of instructions it needs to be productive and generate that output.
Yeah. That's surprising, but again, it's only going to get better from here, right? So yeah.
I like to call it director mode. I find my job is now providing the right context and that has become increasingly the right thing to do.
Um I think if I didn't touch LLM stuff as much, it would take me a while to figure out why things are wrong and also how to get the right behavior.
As I've interacted with LLM chat over the past year and a half, once I saw it started acting weird, I thought, okay, it just doesn't know.
It can follow instructions, it just wasn't instructed. Should it do that by default? Yes. Since it doesn't, I have to be there to provide that input.
So it was a relatively easy fix and after that it kind of did a better job. Um wasn't perfect, but I think then it kind of came to mind, which is the final reason I thought MCP wasn't there yet was the issue of having too many tools.
So for example, I would ask it like, get my net worth or how much were my investment accounts worth on this date? And it kept going back to transactions as this underpinning base layer for, you know, personal finance.
But there were actually dedicated MCP functions or tools that I had that actually gave you investment balances at a specific date powered by uh Personal Capital.
So there's a thing that solved the job, but the LLM chose to choose transactions as like a base layer. And so, I think with that comes explaining your MCP server and tools very succinctly.
And also not overwhelming the LLM. We've seen this a lot on Twitter where if you have too many tools, for example, the LLM can do 100 things, it might not know which one to pick.
And I think that goes back to understanding that LLMs are smart, but just like a human, you can't give them 100 tools and say, do the job, like you're going to get overwhelmed.
Context is king, managing like delegating and choosing the right words to say in a chat is king. And then making sure you have the right tools for that specific workload and no more and no less.
I think that is extremely important in the MCP server world where I think the initial hunch is, go add 40 MCP servers, like your job is done. Tell it, I need to go create an expense report, but like you need way more detail, you need half the tools turned on. Like it's not that simple.
And I think that's where I'd want to showcase to folks that it has a ton of potential and it's going to get there. I think there are going to be lots of tools built around making it better.
But where it is today, very impressive, very productivity-focused, but with a few rough edges for sure.
Yeah. And the other probably point I would mention too is Brad and I are talking all about like local, this is all like local to our machine. OpenAI has some MCP support and I think there's a way to do it like on an actual server where it's not on your own machine.
But I think if the local setup is a challenge, then that's probably going to be 10X the challenge to put it on a server. Haven't done it yet, so I could be proven wrong on that, but I just have a hunch that's going to be even more complicated as of right now.
But you know, one thing that I think it would excel in, you know, so if we take away those issues, like the context window limits or it being overwhelmed by too many transactions. But I think on the local side, you know, one thing that we talked about was like it could be really good for like productivity, like just being able to kind of quickly pull your net worth if you needed to.
But even just let's not use the net worth example. Let's use like Gmail, like being able to quickly pull what are the emails I haven't read yet today? And like are any of them really urgent?
Um, whereas in the past you'd have to like write an agent to do that. Like if you can connect to MCP and um, Google makes that, you know, kind of an available tool, um, which I'm sure it is.
Um, then, you know, you'd be able to just do that right away on your machine.
So I think that's kind of a double-edged sword. Like it's local, which means that it can't do maybe as much, but also at the same time it's nice because it kind of turns into like a productivity tool if you can use it the right way and get past some of those other hurdles that we talked about.
Um, and hopefully, you know, companies as we're developing and doing this more and more, we're finding ways to kind of address those uh shortcomings that we've mentioned because I think Brad had mentioned it was like first released in November and here we are in April, you know, and there's already so much that's already been released.
Again, Stripe, Xero, PayPal, like they're all releasing these things. And so, you know, there's a lot of attention there and it's going to only get, you know, more and more eyes and more as they get more feedback, you know, they'll make changes and make it better. So, super exciting.
Yeah. I would say if you work at a company that has any data at all, so pretty much any company in the world, you know, talk to your technology leaders, show them what MCP is. And I think it'll go a long way in making, you know, people use your tools, business, product, etc., much easier because I think in the future, these are going to be plugged into chat systems.
It's going to be easier to access where you can speak about things in natural language and under the hood it's doing complicated tasks that are specific to that business or that product, but we have no clue or maybe we have some clue, but it's not as relevant to the work you need to get done.
So I think lots of tech companies are building theirs now. If you're not specifically within the tech sector, I think MCP is decently approachable and will kind of give your company uh a leading edge of, you know, hey, we have an MCP server. Right now it's like kind of the hot thing and uh you could be early to that and kind of get some press behind that.
Yeah. And I think just in terms of like how it impacts, you know, certain roles and certain jobs, you know, still early, but I think um at least as far as like the accounting side goes.
Um again, just being able to more quickly pull data from different systems and interact with that data in chat, I think is going to be huge.
Um, and also too like just as an example, um or kind of what you had mentioned Numeric.io is doing, like being able to explain variance and flux analysis.
Um, you know, even outside of their platform, but like if again, say your major GL has an MCP server published and then you also use Google Sheets and all your kind of sub-ledger and supporting schedules are in Google Sheets. Well then you could in theory say, hey, my account balances are fluctuating a million bucks here.
You know, what do you see in the Google Sheets when you compare, you know, those two periods that is explaining that? Like how can I make sense of that? And it should be able to do that, you know, as long as the data is clean and well-labeled and stuff like that.
Um which isn't always the case. But you know, as we get more and more using these tools, I think that'll become more and more of a focus is getting the data in a place where AI can use it.
Um and so for again, for accounting, that means having things well-labeled, documented and then connecting these different tools and being able to, you know, um give context to the business changes that you're seeing on the financials. If you are like a CPA, like so you have clients that you're working with, being able to kind of more easily help them understand what's going on in their business and not just speaking debits and credits at them, but being able to more quickly, you know, generate them a P&L, generate them a balance sheet and then add context to it without costing you a bunch of time.
Because maybe that took you five hours to do. Um now that can take you an hour, you know, because you're mainly just reviewing what the LLM um had kind of put out there. So lots of potential and I'm sure there's more, but lots of potential use cases for the accounting industry if it can kind of get widespread adoption.
Yeah, and there's a ton of MCP servers out there right now. If anyone listening has some cool ones that either they're working on or they've used that they found really successful, um please share in the YouTube comments because there's so much out there. Sometimes it's a little hard to see which ones are good and which ones are bad.
And I say that because there definitely is quality and craft to creating a good one because, you know, having an MCP server that doesn't have the right descriptions for tools or has too many tools can really degrade the experience. So I think there's a fine line in capturing the, you know, kind of the core behavior, describing that well and making it LLM-compatible and easy to use.
So if you have any cool ones out there, um please share it with us. And I think on a final note, as someone who might not use MCP, I think in the future, what you can think of is all these systems that you interact with, maybe different domains in your Chrome browser, imagine that these end up being LLM-compatible where you could extract data that you're looking at on your Chrome browser tab into an LLM chat for each of these.
And then how can an LLM perform data, you know, access, data manipulations or insights from all that. I think that is kind of what the future picture of MCP looks like is pulling data with relatively low friction from different, you know, services, products, websites, then having an LLM take a look at it in entirety, what can be done and what can be automated with that.
So, that's kind of my final takeaway is there's tons of stuff that's going to be built here, but in the grand scheme of things, it's extracting data with ease and ease with an asterisk because right now it's not that easy, but it'll get there.
And I think every product business API is going to have one of these in the next six months. So get prepared and if you don't have Claude desktop, download it, go to its website to set it up. We can leave some links in the show notes um to set up an MCP server like the file system, which is very basic.
Once you get the hang of it, you kind of think, oh, it's not too bad after you get through those few hurdles, but yeah, exciting times.
Yeah, for sure. Cool. Awesome. Well that was uh a pretty deep dive for being 50 minutes. And again, there's probably a lot more that we can get into um that maybe we'll save for a future episode um and future releases because again, they're going to only get better and better.
So why don't we I guess transition, Brad, into bookmarks so we can wrap it up.
Sounds good to me. Uh do you want to start?
Yeah, sure. Um, mine is actually a bookmark to a course on Earmark, which Earmark, for those that don't know, it's a great app.
Um, I think made or at least founded by Blake Oliver who is a longtime host of the Cloud Accounting podcast.
I've been listening to that for years. And so Earmark was an app or like a web service. I don't know exactly what he would call it, but where you can earn CPE, which is continuing professional education, I think is the abbreviation, which CPAs typically have to get a certain number of um each year to keep their license active.
And so they have a course which basically turns out to be like more like podcasts and then you answer questions at the end. So it's pretty cool because I think he just realized that people listen to a lot of great content on podcasts but they don't get the credit for it.
So he made an app that lets them do that. Not affiliated with Earmark at all, but it's just a great product.
But so there's a course or a podcast episode on how to use AI to analyze data and draft financial reports in minutes. So super topical, super interesting.
Um excited to listen to that one. And um I think the person he has on Nicholas uh Boucher. I hope I pronounced that right. Goes into like ChatGPT, Google Workspace collaboration, stuff like that.
So I think it should be pretty practical too, which I always value in these kinds of topics and not too theoretical.
Nice. My bookmark today is OpenAI's Academy. So this is essentially a learning platform that they put out probably a week or two ago, I think sometime in March.
And essentially it has videos, uh blog posts on pretty much everything you can think of with AI. This could be entry-level stuff like introduction to ChatGPT is one of their examples.
Um this could be a live class, recorded class. Pretty much anything you can think of. And then it even has deep dives into prompting.
So as we've talked about in the past 100 episodes, writing the right thing to the AI agent or AI chats, providing enough context, all super important. I haven't looked at their video, but their video is called Mastering Prompts: The Key to Getting What You Need from ChatGPT.
So if that doesn't entice you, I don't know what won't. But that one is super cool and I think yeah, released on March 23rd, 56,000 views so far. Relatively under-utilized resource.
But if you're interested in kind of a beginner's approach to ChatGPT or using AI tools, check out academy.openai.com. And I think again, it's not an AI tool, but I assume this will get better and better.
Um I think Claude also came out with an educational resource portal-ish thing. Um and I think this past week. So it's really becoming mainstream to get more people onboarded with AI and I think becoming the norm uh, you know, for folks to interact with these systems and know how to use them well. So a great learning resource.
Yeah, totally. And we didn't talk about it on this podcast because I think it came out today, but I think a document got leaked from the Shopify founder. Did you see that?
Yeah. Yeah, yeah.
Okay. Yeah. Well we'll save that for the next one. But it was very interesting and I think, you know, a plug for using OpenAI Academy and Claude or Anthropic's, whatever learning center because yeah, it's going to be more and more part of the expectation of employers that you know how to do these things.
Um, and if you are, you know, a business owner, then you should be using these things to keep yourself more efficient anyways. So, yeah, it's the new norm we live in.
Yeah. I think I've been using it every day, so I think I checked the box.
Yeah, perfect. Cool. So before we wrap up, we always like to do a bit of a call to action to our viewers and audience.
So for this episode, since it's all about MCPs, we want to know, you know, what are some applications for MCP that you see or are using in your jobs or industries. So if you have anything good, definitely let us know. Either drop a note in the uh comments or leave a review.
Um it'd be great to hear that and hear what you guys are doing. Cool. Awesome. Well, good stuff Brad. Hope everyone enjoyed this one and um yeah, till next time.
Awesome. Thanks. See you.
Thank you for listening to the Breakeven Brothers podcast.
If you enjoyed the episode, please leave us a five-star review on Spotify, Apple Podcasts, or wherever else you may be listening from.
Also, be sure to subscribe to our show and YouTube channel so you never miss an episode.
Thanks and take care.
All views and opinions by Bradley and Bennett are solely their own and unaffiliated with any external parties.
Creators and Guests


