n8n's Native MCP Integration (without the hype)

Dr. Violet Howard demonstrates n8n's new native MCP integration in version 1.88, which adds server trigger and client nodes to connect workflows with Claude Desktop. The native approach uses server-sent events instead of command-line connections, but limits you to fixed resource-operation pairs and requires step-by-step orchestration for multi-tool tasks.
Chapters
So N8N just released their native integration for MCP servers. We got two new nodes and it's definitely a step in the right direction, but it's not exactly what I was hoping for. So today we're going to break down what these two new nodes actually do and what that means for us and kind of the limitations and what's next. So these are the two new nodes that we got. We have an MCP server trigger and an MCP client tool that you have to hook up to an AI agent, as you can see up here. Now, in order to get access to these, you need to update your instance of N8N to the latest, which is 1.88. Previously, in order to get these MCP server nodes, you would have had to self-host and then install the MCP server community node, and that looks more something like this. But now with this new update, we have these natively in N8N. And I wanted to come in here and make this video. As you can see, I'm not in my home setup, so sorry if some of the production quality isn't as high. But I wanted to make this video and just talk to you guys about my thoughts around this integration, because I imagine there's going to be a ton of videos coming out that may not really dive into what this really means, and it's just going to be more kind of hype around it. Which don't get me wrong, I'm not trying to bash on it. This is super cool. I'm glad that they've released this because it means that they're kind of, you know, forward thinking and it's taking a step in the right direction around these MCP servers. But what's not here yet is the ability to truly create like an MCP agent that we hook up a bunch of different MCP servers to, and we're able to dynamically and flexibly have that agent take action in a ton of different servers. So far, the main benefit of this MCP integration is that we have this trigger, which means we can now hook up Claude Desktop or something like Cursor or any IDE, you know, MCP client of our choosing, we can now give it access to our N8N workflows and tools, which is where things get pretty cool. So we're going to do two demos today. The first one is me using an MCP agent in N8N where we're going to be using this new client-server tool in order to call our MCP server trigger and access these different tools down here. And then I'll show you guys how we can connect this to Claude Desktop and actually be able to talk to some N8N tools in Claude. Okay, so before we actually get into the breakdown, if you don't really understand MCP or Model Context Protocol, then definitely watch this video. I'll tag it right up here. I basically break it down as well as I can. But anyways, let's quickly take a look at what's going on within this actual server trigger node. When we click into it, we can see a test URL and a production URL, very similar to the way that we have our webhooks in n8n, where we can use the test one to see what's going on visually. But then when we want to make this workflow active, we will have to grab that production URL. So I just copied that test URL. I'm going to go into a new workflow where we have an MCP agent. We're going to add this tool, which is going to be the new MCP client tool right here. As you can see, all we have to do is paste in that SSE URL. And so an SSE endpoint stands for server-sent event endpoint. And this is why these aren't yet as flexible and dynamic as we'd want them to be when we can eventually connect to all these different MCP servers. And basically the reason that is, is if you see back in our self-hosted version with our community node, when we go to create a new credential, and so you can see all the different servers I've connected to, we have the option to connect via command line, STDO, where we would do our command of, you know, MX or whatever it is, our arguments and our environment variables, or we could have done server-sent events. And most of the MCP servers that we'd be looking at on this list in the GitHub repo, these all basically don't offer SSE connection. Some do, some don't, but the majority you would have to connect like this Firecrawl one I did in the demo. We had to connect using a command and our arguments and our environment variables. Anyways, that's kind of the difference. And that's why the truth is we're not really able to do this type of stuff. The community node is still going to be pretty powerful for certain MCP servers, but now in N8N using this trigger, we can connect something like Claude to our different tools, which is still very cool. So anyways, I've connected these, this agent client tool. To that trigger that we were just looking at. And now if we talk to this guy, it's going to send data over here, call one of these tools, and then respond back to our agent. So this use case that I'm showing right here is not very different to if we were to just add one of these tools, call N8N workflow, and we're just basically choosing a workflow from our list to actually send data to. That's very similar to what's going on in this specific example. So anyways, I'm going to go back into this workflow. Hit test workflow so that this trigger is listening for us, and then we're going to send over a message. Okay, so I'm going to ask it to create an event for 3 PM. As you can see on my calendar, nothing at 3 PM. We'll hit send. We'll see it call the MCP client tool, which is going to be calling that other trigger. We'll flip back into the other workflow. We can see that the trigger got activated and it called create event tool. And then we can see in our calendar we have a team meeting now at 3 o'clock. So what's actually going on is it decided to call this client and it understands the different tools that it has as well as the parameters it needs to send over, everything like that. As you can see, we got our event start time, event end time, and event title. And then we can see the tool name that it used was Create Event. And then what it did in the Create Event tool was the resource was event, the operation was create. And so this is interesting to me because we can see we have like a resource and an operation. And if we go back into the actual tools, in each of these tools, we have a resource and an operation, but they have to be fixed. So for example, creating event, the operation's create, the resource is event. If we were to get an event, the operation is get many, the resource is event. So what would be really cool is, you know, moving forward, if we had one node for Gmail, for example, one tool where in here, you know, the way that we have the to and the subject and the message can be defined by the model. If we could also have the resource and the operation be defined by the model based on the incoming query, that's when we truly get into some really cool, like, a one-size-fits-all tool that, you know, hey, here's a Gmail MCP server. Now you have all of these options of different resources and different operations. And then within all of those operation resource pairs, you can do different things and the model will decide all of that. So that's where we aren't yet. That's where we will be eventually, which will be super, super exciting to see. But that is why that's like a current limitation, just because we now have the native integration for this MCP server, through SSE endpoint and a new trigger. We don't yet have the ability to give our agents a Gmail MCP server, a calendar MCP server, a Slack MCP server, and then have it just be able to figure out everything. Not quite yet. And so another thing that I found that's kind of a limitation is when you're sending over things to the server, one of the things that makes our agents so smart, and actually a huge deal of making our agents so smart, is how we system prompt them. And if the MCP server is just capturing information, it's not always getting that same type of prompting. So here's an example I'll show you guys. If I hit test workflow, we're going to be sending it to this LinkedIn post generator where I'm going to come back into our workflow and I'm going to ask it to create a LinkedIn post about image generation with AI. So I'll send that off. It's going to correctly call the right tool and everything. But what we'll do is we'll actually look at what's going on. So give this a sec. We'll flip back into here and we'll see that it should call the right tool, which will be this, this LinkedIn post one. It's a little bit weird with the data transfer of like the actual what's going on and when it's sending data. As you can see, it's taking a while, but I imagine if we clicked into this LinkedIn post generator right now, we would say this one is executing because that's kind of what takes the longest time. As you can see, it instant finished. So it basically won't show you that it's done. It won't even show you that it's triggering until it's actually done, which is something I found interesting. But anyways, it created that LinkedIn post. What's going on in this workflow is actually I'll just open it up real quick to show you guys. Sending this over to a sub-workflow that is going to take our query, do some research with Tavily, and then send it to our LinkedIn sheet. So now you can see we have, um, AI in creative industries. We have, um, generative AI tools, images, all this kind of stuff. Anyways, that's not the point. What I wanted to show you guys is what it actually sent over here, which it sent over basically a LinkedIn post already. So anyways, it knew to use its tool called LinkedIn Posts because we gave it this description of when to call it. But what it did is it sent over a full LinkedIn post already. And so yes, maybe that's prompting on this side, but when you actually want to connect this MCP client to your Claude or your Cursor, you don't have that prompting element there of, you know, if we're in Claude and we ask it to create a LinkedIn post using the MCP server, it's probably not just going to send over a short query like, you know, puppies or whatever we want the topic of the post to be. It's going to probably try to create a post first and then send that post to the workflow. So there's just going to be some issues like that with prompting. Similarly, particularly with my testing, when I was asking it to do stuff like, um, you know, create an event with someone or send an email to someone, it didn't always know intelligently through the server that it could get contacts first and then send an email. So that would just be kind of a step-by-step, like, hey, can you get someone's contact? Hey, can you send them an email now? So that's why in this case, when you kind of want that multi-step dynamic tool calling ability, you're actually better off just using like the Ultimate Assistant where you'd have different child agents down here, which you could almost think of these as like different MCP servers. Like this is a Gmail MCP server. This is a calendar MCP server. It's not exactly the same, but it's a way you can think about it because in that email agent, we have all of these actions to take here and we have prompting going on within each of these agents to understand kind of how to delegate tasks and what to send over to each workflow. So anyways, I don't want to get too sucked into this and confuse you guys, but this is exactly what I mean. So this is the run where we asked our main agent, hey, can you help us create a LinkedIn post for image generation with AI? What it sent over was it already tried to create one before it did any research or hit this workflow. So it sent over a LinkedIn post. The agent then took that, did research on it, and then it again created a LinkedIn post. So it's just not super efficient. And that's just one of the limitations with the way that you actually have to like prompt these things to send data between each other. So anyways, let's quickly connect this to Claude Desktop because that's truly where this is actually pretty cool because now we can have Claude talk to our end-to-end tools. So anyways, I am now in Cloud Desktop. Prerequisite if you want to follow along and do this is you need to obviously install Cloud Desktop. You'll have to install Node.js on your laptop as well, or your computer. So you'll just download that. It's, it's super easy to set up. And then in Cloud Desktop, on the top of the options up here, you'll have something, you'll have a help, and then you'll just want to enable developer mode. And now what we can do is we come, come into our Cloud settings. Um, what we want to do is open up developer. And we want to click on Edit Config. And then you have this cloud-desktop-config.json, and you're going to open this up in some sort of code editor. So for me, that opened up in Cursor. I'm going to paste in this, which I will have in the description of this video, and all you'll have to change is your actual URL. So I'm going to go ahead and grab my production URL of that trigger. So back in n8n, I'm going to switch this workflow to active. I'm going to click Got It. We're going to open up the server trigger. Click on production and grab the production URL. Now that that's copied, we'll put that back into that JSON file. So I pasted that right in there. All we have to do now is save this file, and then you'll have to just restart your Claude, and then we should see tools available. Okay, also made a mistake and I messed up the JSON, so I just had Cursor fix it. It's replacing the JSON, and then we'll have to relaunch Claude once again. Okay, so I've just relaunched Claude after I fixed the JSON, and now you can see that we have 10 MCP tools available. So if I click into here, we can see we have add contact, create draft, create event, delete event. We have all tools that are all coming from the server N8N, and all of these tools are the 10 tools that we have listed down here and that we've given this MCP server trigger access to. So we basically just built an N8N MCP server right here that has access to these different tools. So now if we were to talk to Claude, we can have it use those tools. Okay, so first of all, the example I always go with, we're going to ask it to get contact information from Michael Scott, and we should see that it's going to be using the MCP server for for NNN, we're going to allow for this chat, and now it's going to basically go access this workflow that's in the background and it's gonna get that information. So as you can see, we got mike@greatscott.com. We have phone number, everything like that. So here's execution that was just fired off from Claude, and we can scroll all the way down here and see that it used the Get Context tool from our workflow. And so earlier when I alluded to some of the limitations with prompting, we'll see what happens here. We're gonna ask it to create a LinkedIn post about NVIDIA. And send that to the team in Slack. So we'll send that off. What I imagine it's going to do is it's going to ask us to use the LinkedIn post tool. As you can see, it's doing that right now. And then it's going to, let me just allow this. And then it's probably going to create that post and then it will come back and ask us, okay, now we need to use the send Slack message tool. So we'll watch what happens here. Cool. So as you can see, it created the post and then it came back and asked us if we could use the Slack tool. So that's what it did. Now let's basically just go check what happened. So in the LinkedIn post, we can see the sheet got updated with an NVIDIA LinkedIn post. And then in my Slack, we now have that LinkedIn post about NVIDIA right there. So I don't want this video to go too long, but I just wanted to get in here and kind of cut out all of the hype around this native integration. I'm super glad they brought it. It is really cool, but focus around this integration should be, I can now use n8n tools in Cloud Desktop or in Cursor, which is awesome because you can do things like this. We're going to set up some really custom workflows in n8n. and then you can have Claude Desktop trigger those, which is, that's where the power really comes in. I know, you know, with past videos and everything I've showed, especially when I made this little demo, we got really excited about the idea of having an agent being able to hook up to a bunch of different MCB servers and more intelligently and flexibly make decisions and actually take action. That's not where we are yet in NNN. But like I said, now that we can have this trigger connect to a bunch of different tools, and then we can have Claude take action in step-by-step fashion like the way it did here. That's pretty cool. And just going back to that whole prompting thing, and the reason I see there's some issues still is because when you're doing a multi-step prompt, like, hey, could you send an email to Michael Scott and do this and also this, it's gonna break it down step by step, which is fine. But also like with something like the LinkedIn post, we asked it to make one about NVIDIA. We have this workflow set up to do the research based on a keyword and then create the content using this, you know, agent that we have hooked up to OpenRouter. But this is the run about NVIDIA. And once again, we can see that Claude Desktop sent over a LinkedIn post that it generated already. And then basically this was processed through the rest of the workflow. So that's still like, you don't have full control over the prompting, or you could always in here say, hey, help me create a LinkedIn post, but all I need you to send over to the tool is this. And it would be like, you know, 2 keywords or something. So just another thing I wanted you guys to keep in mind as far as actually thinking about what's going on behind the scenes and how data is being sent from one platform to another. But anyways, that is gonna be it for today's video. Appreciate you guys bearing with me as I'm sort of traveling and unable to be at my home setup. But as always, appreciate you guys making it to the end of the video. If you enjoyed it, you learned something new, please give it a like. Definitely helps me out a ton. And if you enjoyed the video and this sort of teaching style and you'd like to have a deeper discussion on MCP servers or just have a more hands-on experience learning N8N and AI automations, then definitely check out my paid community. The link for that will be down in the description. We've got a great community growing really fast. Tons of members who are also dedicated towards learning end-to-end NNA automations. We obviously have a classroom section with resources that are always updating. And of course, we have 5 live calls per week, um, to make sure you're never getting stuck and also meeting other people in the space. You always need a community of supportive people who are also trying to learn the same things you are. So hope to see you guys in any of these live calls. Otherwise, I'll see you in the next video. Thanks so much, everyone.










