No Code MCP Setup with N8N

No Code MCP Setup with N8N

This guide walks through the complete process of setting up MCP (Managed Community Plugin) community nodes inside a self-hosted instance of n8n. It covers how to deploy n8n using Elestio, how to connect to open MCP servers like Airbnb and Brave Search, and how to create a fully functional AI-powered workflow that dynamically selects and executes tools based on user input all without writing terminal commands.

Hosting & Setting up

We begin by self-hosting n8n on Elestio. Once logged into Elestio, you can search for the n8n service and deploy it using a cloud provider like Hetzner or any other of your choice. It’s recommended to start with at least the medium-sized plan because MCP-based workflows can be memory-intensive.

Deploying n8n service in Elestio

During the deployment process, you define a subdomain like n8n-demo, and once the service is live, you complete the n8n setup by visiting the domain.

Before building workflows that utilise MCP tools, it is critical to enable community packages by setting the following environment variable:

N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE: true

This setting allows AI agents inside n8n to execute custom tool operations.

Updating environment variable in docker compose

Installing MCP Community Nodes in n8n

MCP stands for Model Context Protocol, a standard that allows AI agents or workflows to interact with external tools via a lightweight, composable interface. These tools are usually hosted as independent services and can be used for web scraping, search, data extraction, and other actions without needing to build custom HTTP or API logic yourself. To install the MCP plugin, open your n8n dashboard, go to Settings > Community Nodes.

Community nodes settings in n8n

Then install the package:

n8n-nodes-mcp
Installing community nodes in n8n

This node unlocks features like listTools, executeTool and integration with external MCP tool servers.

Adding & Connecting to Airbnb’s MCP Server

Start by adding the MCP server node in your N8N. Click on the + button on the canvas and search for MCP Client.

MCP Client node in n8n

Once selected, choose from the Actions > List available tools

List available tools action in node

Create a new credential in n8n under Credentials > MCP Client (STDIO) and choose the Command Line (STDIO) method. Use the following configuration:

  • Command:
npx
  • Arguments:
-y @openbnb/mcp-server-airbnb --ignore-robots-txt

No environment variables are required for this server.

Command connection in MCP client

Next, add another MCP Client in the chain, but this time, instead of listing the tools, we will execute the tools, do all the above steps again correctly, but this time choose Execute a tool from the actions window.

Execute a tool in mcp client in n8n

Inside the configuration for the tool, add the following. You can drag and drop the name and add location to the tool parameters to see the execution.

{
  "location": "los angeles"
}
MCP Client node configuration for execute tool

Run the flow and see the locations in Los Angeles searched and shown on the Airbnb website. Now we will use the same methods with our AI Agent.

Designing the Workflow with an AI Agent

Start with a When Chat Message Received node that listens for user input. This input passes to the AI Agent node, which is configured with a chat model such as Groq or OpenAI. Go ahead and add these three nodes and configure the API credits of your AI chat model accordingly. Check out Elestio blogs if you face difficulty.

Nodes setups for AI agent workflow

Now that this is done, similar to two nodes in the flow before, we will add two separate MCP nodes to the tooling section of the MCP:

  • One MCP node using the listTools operation to fetch all supported tools. This is exactly similar to one we already created before; you can replicate the steps.
  • Another MCP node using the executeTool operation to run the appropriate one based on AI inference.

Listing and Executing Tools Dynamically

The first node, listTools, returns tools such as:

["airbnb_search", "airbnb_listing_details"]

Each tool comes with schema information describing required parameters (e.g., location, adults, etc.). The second MCP node is configured to use an AI-generated tool name and parameters:

  • Tool Name:
{{ $fromAI("tool", "the_tool_selected") }}
  • Tool Parameters: Automatically derived from the input message and the selected tool’s schema
MCP Client for executing tool

For example, when a user types the following in chat:

Search for Airbnbs in Chicago for 4 adults

The tool selected would be airbnb_search, and the parameters passed would look like:

{
  "location": "chicago",
  "adults": 4
}

The node sends this to the Airbnb server, which responds with listings containing metadata like title, price, rating, and direct links.

Chat example from AI Agent operation

Extending the Setup with Brave Search MCP

To connect Brave’s search server, visit the Brave API Dashboard. Create an API key, then go back to n8n and configure a new MCP credential using:

  • Command:
npx
  • Arguments:
-y @modelcontextprotocol/server-brave-search
  • Environment Variables:
BRAVE_API_KEY=<your_api_key>
Brave search connection command

Once set, create another pair of listTools and executeTool nodes inside your AI workflow. When a user asks:

Search the web for AI agent use cases

The AI agent routes the input to the Brave Search MCP client, automatically resolving the correct tool and formatting the parameters. Results include article titles, summaries, and URLS from different sources.

Tool Execution Limitations and Troubleshooting

Tool execution in this architecture depends heavily on first retrieving the tool metadata. If the executeTool node is triggered before a corresponding listTools node has populated available options, errors like the following may occur:

Tool input did not match expected schema

To prevent this, always call listTools before executeTool. This issue becomes especially visible when working with APIs like Airtable. In that case, the agent must first use listBases to fetch the base ID, then listTables for the table ID, and only then can it call listRecords. Each call builds context for the next. Without memory or persistent context chaining, these steps can break. If needed, values like base_id and table_id can be hardcoded in expressions to simplify execution.

Conclusion

The MCP agent pattern in n8n provides an easy and modular way to connect conversational interfaces to external data sources. With community contributed nodes, you can integrate public tools like Airbnb search or Brave web queries without writing API requests or handling response parsing manually. By using an AI Agent to reason through which tool to use and how to construct parameters, workflows become more intelligent and user-driven.

Thanks for reading ❤️

Thank you so much for reading, and do check out the Elestio resources and Official N8N documentation to learn more about N8N. Click the button below to create your service on Elestio. See you in the next one👋