
Lesson Description
The "Add MCP Server to Claude Desktop" Lesson is part of the full, Complete Intro to MCP course featured in this preview video. Here's what you'd learn in this lesson:
Brian adds the demo-server MCP server to Claude Desktop and Tome. Enabling the MCP in Claude requires a restart. With the MCP enabled, a prompt is provided and the result of the add tool is displayed.
Transcript from the "Add MCP Server to Claude Desktop" Lesson
[00:00:00]
>> Brian Holt: So now we have a valid MCP server. We've used it locally, but we have not used it with actually using AI yet. We haven't actually seen our AI using yet. So I'm gonna show you how to add an MCP server to Cloud Desktop. It's a pain in the butt.
[00:00:17]
My guess is in the very near future they're going to make it even easier for us to do this. But for now, if you're following along, we're going to do it for Claude Desktop. So open Claude. There is a Settings panel here and I think it's under Developer.
[00:00:39]
Yeah, so I'm gonna trash that one for the moment. And then you're gonna wanna click Edit Config. It's going to take you to some file somewhere and I'm just going to open that file directly in VS code. So it tells me at the moment I have no MCP servers.
[00:01:02]
So here we're going to add some sort of server. You can call it, I called it Demo Server, you can call it Add Server, whatever you want. In fact, let's actually just call this demo, because I think we're going to reuse it here command. So here you have to give it the full path to your node binary.
[00:01:25]
So just come in here to your cli. Say which node. You can see mine is very silly because I use fnm, so what I was talking about earlier. But if you type which, it should give you the full path to what binary you're using for that. If you're not getting anything, you don't have node in your default path and you need to go install node.
[00:01:51]
Okay, so just paste that whole ugly thing there. Then you're gonna give it args, And then you're gonna have to give it the full path to your mcp.js file. Okay, so it's in a parenthesis. We're not going to give it like any additional flags afterwards. But you could.
[00:02:13]
This is where you would do it. So I'm here, I'm going to say I'm in my MCP folder that we've been writing in. If you put pwd, it should give you where you are. Grab that and then just put on the end MCP js if you're on Windows.
[00:02:40]
I think this will work in PowerShell both which and PWD, which is present working directory. Am I good? Yeah, close enough. Believable enough. Good. Okay, good. And then a nice thing for it to do is add an env. You don't have to do this, but I'm just gonna suggest that you always do if you're using Node js,.
[00:03:09]
Node.js will output deprecation warnings into the standard I/O, right? So if you start using something that knows like, this is about to be deprecated in version 26 of node, that would actually be passed directly to your agent. And your agent would be like, I don't know what to do with this, right?
[00:03:27]
Why are you telling me that? You can't use promises this way. So that's what this does. This suppresses all those warnings. Right now, this should be fine. You actually probably don't need this. But I just make a habit of putting it in there. That's it. That's how you add an McP server to Claude.
[00:03:46]
So in theory, I'm gonna quit Claude altogether and then I'm gonna reopen it. It's gonna ask me if it can ask, cuz my Node server is on my desktop, that's why it asked me that. Then you should see, if you click this Tools Demo server right there, it'll tell you what tools are open.
[00:04:19]
You can actually turn off the add tool if you want to. Then the other thing to look at here, which is helpful for debugging is Settings Developer. You can see that this is running. It tells you where it's running, what the arguments were, advanced options. Let's just break it intentionally for fun.
[00:04:47]
Very descriptive errors. Okay, and then I'm gonna to restart this. If you change anything about your MCP server, you do have to totally restart Claude Desktop every single time. Yeah. Okay. So it's gonna tell you that it has a problem. You're going to open Developer Settings and then it's going to give you Open Logs folder.
[00:05:06]
And you can see here, I have Demo Server and I can actually see all the logs. Normally you don't have this many logs. This is because I've been writing this course for a while. But actually, if you go all the way down to the bottom, let's just open it altogether.
[00:05:25]
All the way down to the bottom. Error, it should tell you that right there. LOL, WF, I promise that says LOL WTF OMG. Yeah, question.
>> Speaker 2: I think you might have just said. There'S no way to reload MCP servers in CLAUDE without just killing the app and reopening it.
[00:05:48]
>> Brian Holt: Correct. I hope they fix that sometime. But most people aren't doing what we're doing and they're not building for us. They're building for, like, the general populace. Okay, we're going to show you in tome how to add it as well. So with Tome very similar, just node and then mcp.js, Save.
[00:06:18]
Okay, and then now if I go over here, I have these other ones. Can I just delete these for now? Delete and delete. Okay, it's a Battle of Waterloo, just kidding. So now you can see over here I have all my servers, but I also have this ad server here that I can turn on and off for every single command I'm about to do.
[00:06:42]
This one you don't have to restart, which is nice. So let's go to Claude. Let's start a new chat and say I really want to add two numbers together. I want you to use the add server. MCP server, please add 2 and 7. We don't need Opus for this, Sonnet is just fine.
[00:07:15]
[LAUGH] That's pretty funny. No, you do have it though. Cause I broke it, did I?
>> Speaker 2: You restarted since.
>> Brian Holt: I don't think I did. Yeah. Okay. See this, this happens to me all the time. And you say, hey Claude, now try, you fool. Create a new chat.
[00:07:48]
And you can see now I have my demo server, Add is activated, all right. And that's gonna say, okay, I wanna use this tool. It's always going to ask you, which is good. There you go. This is the request that it sent to your server and this is the response.
[00:08:15]
Pretty cool stuff? We should be able to take this over. We're gonna do this with. We'll see how well QEN6 handles this. I'm just going to go ahead and suggest all of you just go ahead and use the QEN models for this. If you have no opinion on this, just use the QEN models.
[00:08:38]
I didn't even turn it on. Nope, we're gonna try this again. Turn this on, 0.6, ready, go. There you go. So Qwen 0.6, if it's very straightforward and it's just one tools call, Qwen 0.6 can generally handle that pretty well. Response is nine. So we got it going in Tome as well.
[00:09:07]
Mark?
>> Speaker 2: Can you write these MCP servers in other languages like Go?
>> Brian Holt: Absolutely. It's all standard I/O, so JavaScript and Python have really good SDKs for it. I would even say the best SDK for writing MCP servers is fast MCP, which is in Python. They took fastAPI, which is a great API framework, and they just made it MCP oriented as opposed to API oriented.
[00:09:35]
Actually today if I was going to go write my own MCP server professionally maintain it, I would just Write it in Python and I would use Fast mcp. This could definitely be written in Go. I don't know if there's a Go MCP server framework already exists. My intuition is that it probably exists, but if not, it's a minimal amount of framework that you would have to write, that Claude Code could definitely do for you.
[00:10:01]
>> Speaker 3: What's the best development experience you've found to do this? Cuz restarting obviously is.
>> Brian Holt: A pain in the butt.
>> Speaker 3: Logs are hard to get to. What do you typically do?
>> Brian Holt: For writing MCP servers, The fastest loop I have found is with Claude Code. Cuz Claude Code's usually pretty good about churning this out pretty quickly.
[00:10:20]
And then pointing Claude Code at the directory that has your logs and so you can say this didn't work, try this. Cloud code is usually able to iterate pretty quickly. And then I just open it in Claude Desktop, cuz I mean, it's annoying, but you just restart it and open it again and it goes pretty quickly.
[00:10:41]
Yeah, question.
>> Speaker 4: Yeah, I had a typo on my server on the response where I had test instead of text for the answer and CLAUDE did not know what to do there. How rigid are these responses? Are those all defined in the protocol?
>> Brian Holt: Good question. So his question is around like some of these like title description, input schemas, all that like, and just everything in the JSON rpc highly rigid like it is, depending on that fact.
[00:11:12]
Because it's not actually the LLM that's interpreting that, it's the client. So it's Claude desktop, not Claude that's interpreting those responses, it's calling the tool for it, passing that into the LLM. As far as what happens if you called this? Well, I mean, if you called this C, then it wouldn't get input in here correctly.
[00:11:34]
But what happens if you had three numbers in here and then you just had two numbers in here? Chances are the LLM would probably just sail over it and be fine with it because the LLM can. Well, humans are dumb and do dumb things, right? So there's places you could definitely make typos and it'd be okay, but it would be on the LLM side because the LLM could recover from it, whereas, like, the client will not be able to recover from it.
[00:12:00]
Does that answer your question?
>> Speaker 4: Yeah, yeah, that makes sense.
>> Brian Holt: Cool, good question. This is cool, right? Like, am I out to lunch here? I think this is pretty cool.
Learn Straight from the Experts Who Shape the Modern Web
- In-depth Courses
- Industry Leading Experts
- Learning Paths
- Live Interactive Workshops