DS DevShelfHub Projects · AI tools
Articles / MCP Explained Without Jargon: Model Context Protocol, the Three Components, and How to Build Your Own MCP Server in n8n

AI Engineering

MCP Explained: Build Your Own MCP Server in n8n (No Code)

By DevShelfHub

A non-coder-friendly deep dive into MCP — why it exists, the host/client/server architecture, why tool descriptions matter, before-and-after MCP, and a step-by-step walkthrough to build your own MCP server in n8n and connect it to Claude.

MCP Explained: Build Your Own MCP Server in n8n (No Code)

Introduction

Ask the internet what MCP is and you get a parade of bad analogies—“it’s a USB-C port for AI,” “it’s the HTTP of agents.” Technically true, practically useless. Most of these definitions describe what MCP looks like, not why it exists or how to use it.

This guide takes a different path. We’ll start from a problem you already understand—copying emails from Gmail into ChatGPT to get a reply, then pasting the reply back into Gmail—and build up to Model Context Protocol (MCP) piece by piece. By the end you’ll understand the three components, why every major application is shipping an MCP server, and you’ll build your own MCP server in n8n (no code) and connect it to Claude in under ten minutes.

📚 Table of contents

  • The problem MCP actually solves
  • LLMs are next-word predictors that live in silos
  • From copy-paste to tools: how LLMs got hands
  • What MCP really stands for
  • The three components: Host, Client, Server
  • Why every Gmail user was reinventing “send email”
  • Before and after MCP
  • Hands-on: build your own MCP server in n8n
  • Why tool names and descriptions matter more than you think
  • Connecting your custom server to Claude
  • Production gotchas: security, drift, and tool collisions
  • Common mistakes & pro tips
  • Frequently asked questions

🧩 The problem MCP actually solves

Forget MCP for a minute. Picture a familiar daily workflow:

  1. Your manager sends you an email.
  2. You copy the email into ChatGPT or Claude.
  3. The model drafts a reply.
  4. You copy the reply back into Gmail and hit send.

Every step where you copy or paste is friction. The model has a brain but no hands—it can’t read your inbox, can’t reach send. MCP exists because humans are lazy in the most productive sense of the word: we want the brain to also have hands.

🧠 LLMs are next-word predictors that live in silos

Strip an LLM down to its mechanics and it’s a next-token predictor. You hand it a prompt, it produces text one token at a time. That’s the entire primitive. Ask a vanilla model “who is the current president of Venezuela?” without giving it any tools and you’ll get a confident, plausible, often wrong answer—because the only thing it knows is what it was trained on.

Humans don’t solve problems with their brains alone. We pick up the phone, we Google, we open Notion, we check Gmail. The brain coordinates; tools execute. If you want an LLM to be useful past chatting, it needs the same arrangement.

🛠️ From copy-paste to tools: how LLMs got hands

The first step out of the silo was tools. Give a model a description of an external capability—“search Google, return the top 5 results”—and when you ask it about Venezuela, it can call the tool, read the results, and answer correctly with fresh context.

🧰 The first tools any LLM needs

  • Web search — current information beyond the training cutoff
  • Email toolsread, draft, send, label
  • Calendar tools — create event, list events, find free time
  • Files — read, write, edit, list

Sound a lot like the Gmail-and-ChatGPT scenario? It is. Tools turn a chat box into a coworker. The only remaining question is: how do thousands of LLMs and thousands of applications talk to each other without everyone writing the same wrappers?

🔤 What MCP really stands for

Model Context Protocol. Three words, each doing real work:

🧠 Model

Your LLM—Claude, ChatGPT, Gemini, an agent framework like LangGraph. Whatever has the brain.

📚 Context

The information the model needs to act—“you have these tools, you can call them like this, and here’s what they do.”

🤝 Protocol

A fixed set of rules for how the model talks to those tools—same idea as HTTP, FTP, or SMTP, just for AI agents.

In plain English: MCP is a standard way for an LLM to discover and use tools exposed by external applications. That’s the whole protocol.

🏗️ The three components: Host, Client, Server

Every MCP setup has the same three moving parts. Get these right and you’ve mastered the architecture.

🖥️ 1. MCP Host

The AI surface you’re actually talking to—Claude Desktop, ChatGPT, Cursor, an agentic framework like LangChain or AutoGen. The host is where the conversation lives.

🌉 2. MCP Client

The bridge layer baked into the host. When you ask Claude to “send an email to my manager,” the client translates that intent into the formal protocol message the server expects—auth tokens, structured parameters, request format. You never see it; it’s plumbing.

🛰️ 3. MCP Server

The application adapter that exposes tools to the model. A Gmail MCP server publishes send_email, read_email, draft_email, label. A Notion server publishes page and database operations. The server is where the actual work happens.

👉 Think of it as brain (Host)translator (Client)hands (Server). The brain decides; the translator speaks the right protocol; the hands actually move.

🔁 Why every Gmail user was reinventing “send email”

Before MCP, every team that wanted an AI to send Gmail wrote their own send_email wrapper around the Gmail API. Thousands of companies. Thousands of slightly different implementations. Same code, written over and over, all of it fragile.

❌ The pre-MCP world

  • Duplicate code everywhere. Every project rebuilt the same tool wrappers.
  • Fragile to API changes. Gmail renames a parameter—every wrapper breaks.
  • Inconsistent quality. Some wrappers were good, most were not.
  • Slow to update. New Gmail features waited months for community wrappers.
  • No standard discovery. No way to ask “what tools do you support?”

🚀 Before and after MCP

Once Google, Notion, GitHub, Linear, Supabase, Slack—and increasingly every B2B SaaS in existence—publishes an official MCP server, the picture inverts.

⏮️ Before MCP

  • You define every tool by hand
  • You wrap the API yourself
  • You version it, you patch it, you maintain it
  • Your AI can’t discover new capabilities automatically

⏭️ After MCP

  • Vendors publish official servers
  • Your host (Claude, Cursor, etc.) auto-discovers tools
  • Schema changes are pushed by the vendor
  • Same protocol means any host can talk to any server

📌 Inside Claude, the “Connectors” panel is just a friendly UI on top of MCP. Each connector is an MCP server in disguise.

🧪 Hands-on: build your own MCP server in n8n

The cleanest way to internalize MCP is to build a tiny server yourself. We’ll create one in n8n—no code required—and use it to append rows to a Google Sheet from Claude, even though Claude doesn’t natively integrate with Sheets.

🪜 Step-by-step

  1. In n8n, create a new workflow and add the MCP Server Trigger node. This gives you a hosted URL that speaks MCP.
  2. Add a tool node inside the trigger: select Google Sheets → Append Row.
  3. Authenticate Google Sheets with the account that owns the target spreadsheet.
  4. Pick the spreadsheet and the sheet, then mark the data fields as “Let the AI decide” so the model can fill them at runtime.
  5. Write a clean tool description: “Append a row to the demo Google Sheet. Requires two values: name and receiver.”
  6. Activate the workflow and copy the production URL.
  7. In Claude → Settings → Connectors → Add custom connector, paste the URL, name it (e.g. My MCP Server), and approve the available tool.

Now in Claude, type: “Use my MCP server to append a row with name ‘Alice’ and receiver ‘Bob.’” Claude inspects the connector, finds the append_row tool, fills in the parameters, and the row lands in your Sheet. You just shipped an MCP server.

📝 Why tool names and descriptions matter more than you think

Here’s where new MCP builders trip: the LLM picks tools by reading their names and descriptions. Misname your “append row” tool as send_email and the model will happily try to send an email to a spreadsheet.

✍️ Anatomy of a good tool description

  • Verb-first name. append_row, not row_thing.
  • One-sentence purpose. “Append a row of customer data to the demo sheet.”
  • Required parameters with types and meaning. Not just “name: string”—“name: full name of the contact being added.”
  • Edge cases. “Returns an error if the spreadsheet is locked.”
  • Don’t mention secrets. Auth happens at connection time, not in the description.

When two MCP servers expose tools with similar names, the LLM picks based on description quality. The better-described tool wins. That’s your competitive edge as an MCP builder.

🛡️ Production gotchas: security, drift, and tool collisions

🔐 Security

Your MCP server is now an attack surface. Lock it down with auth on the URL, scoped tokens per tool, and rate limits. Never expose a destructive tool without explicit approval flows.

📜 Schema drift

When you change a tool’s parameters, every connected host sees the update on next discovery. That’s the upside—and the risk. Roll changes carefully and log invocations.

⚔️ Tool collisions

If two servers expose send_email, the host either asks you which one or picks by description. Namespace your tools (myco_gmail_send_email) to avoid ambiguity.

📈 Observability

Log every tool invocation: caller, parameters, result. When something goes sideways at 3 a.m. you’ll need that trail. Tie it to your existing telemetry stack.

Common mistakes & pro tips

❌ Common mistakes

  • Thinking MCP is magic—it’s just a standardized tool catalog
  • Writing vague tool descriptions and blaming the LLM for picking wrong
  • Exposing destructive operations without confirmation flows
  • Stuffing dozens of tools into one MCP server—the model gets confused
  • Forgetting that every connected MCP adds tokens to every request
  • Skipping namespacing and ending up with collisions

✅ Pro tips

  • Treat tool descriptions like product copy—rewrite them until they’re unambiguous
  • Start with read-only tools; add write tools deliberately
  • One MCP server per logical domain (Gmail, Calendar, internal CRM)
  • Add an ping tool for easy connectivity testing
  • Version your servers so changes are explicit
  • Build n8n MCPs for everything before reaching for code

Conclusion

MCP isn’t complicated—people just love to make it sound complicated. Strip away the metaphors and you have a clean three-part architecture: a host running an LLM, a client speaking a standard protocol, and any number of servers exposing tools. That’s the whole protocol.

The real superpower is what MCP unlocks: every application in your stack can become a tool for any AI you use. Build one tiny MCP server today—even a single append_row tool—and you’ll feel the shift. Your LLM stops being a chat box and starts being a coworker that lives inside your entire toolkit.

Related reading: Claude ecosystem guide (Chat, Code & Desktop)traditional RAG vs vectorless RAGn8n review

Explore More on DevShelf

  • Learn Agentic AI in 7 Steps

    Step 7 of this path covers MCP and production ops — see how the server you just built slots into the full agentic stack.

  • Claude Code Deep Dive

    Claude Code is one of the primary MCP clients — see how it uses the protocol to connect tools and extend its capabilities.

MCP Explained Without Jargon: Model Context Protocol, the Three Components, and How to Build Your Own MCP Server in n8n FAQ

Is MCP just an API with extra steps?

Functionally yes. The difference is standardization. An API is bespoke; an MCP server publishes its tools in a format that any compliant AI host can discover and use without bespoke wiring. That's what makes it valuable.

Do I need to know how to code to build an MCP server?

No. Tools like n8n, Pipedream, and Make let you assemble an MCP server visually. For more control or production hardening, code-based SDKs in TypeScript and Python work too—but the no-code path is real.

Where does the MCP server actually run?

Anywhere: your local machine, a cloud VM, a serverless function, a SaaS like n8n Cloud, or your company's internal network. The host connects to whatever URL you provide.

If two servers have the same tool name, which one wins?

Depends on the host. Some prompt the user; others pick based on description quality. The safe answer is to namespace your tool names so collisions don't happen in the first place.

Does connecting an MCP server cost extra tokens?

Yes—every tool definition is loaded into the context window. A handful of tools is cheap; a hundred is expensive. Prune connectors you're not actively using.

How is MCP different from RAG?

RAG retrieves information from a knowledge source and stuffs it into the prompt. MCP gives the LLM capabilities by exposing tools it can call. You often use both: MCP for actions, RAG for context.

Can I expose internal company APIs as an MCP server?

Absolutely. That's the highest-value use case for most enterprises—turning bespoke internal systems into tools any approved AI can call. Wrap your API, host the MCP server, and restrict access.

Is MCP secure by default?

No—security is on the server author. Add authentication, scope tokens, log requests, and gate destructive actions behind explicit approvals. The protocol gives you the rails; the safety story is yours.