← Back to list

Your LangGraph Agent Already Does What You Think MCP Does

A developer’s journey from confusion to clarity about the Model Context Protocol

Karan_bhutani · 2025-11-09 22:44 · 1 claps · 6.5 min read
#mcp-server #langchain #langgraph #claude #streamable-http
Open on Medium ↗
Wiki topics: LLM · Large Language Models AGT · AI Agents

Your LangGraph Agent Already Does What You Think MCP Does

A developer’s journey from confusion to clarity about the Model Context Protocol

I spent an hour yesterday trying to understand MCP (Model Context Protocol), and honestly? I felt like I was being gaslit by technology.

Everyone’s talking about how revolutionary it is. “Game-changer!” they say. “The future of AI integration!” But the more I dug in, the more confused I got. Because here’s the thing: everything MCP supposedly does, I was already doing with LangGraph.

Sound familiar? Let me take you on the journey I just went through, and maybe save you some head-scratching time.

The Confusion Starts

I’ve been building RAG systems with LangGraph. You know the drill: orchestrate some tools, let the LLM decide which to call, combine the results. Works great.

Then MCP drops, and everyone’s losing their minds.

“Finally! Now Claude can use tools!”

Wait, what? Claude could already use tools. GPT could use tools. This has been a thing for a while now.

“Now the LLM can decide which tools to call!”

Uh… yeah, that’s literally what my LangGraph agent does with conditional nodes.

“MCP lets you connect external data sources!”

My RAG system already does that. I’ve got SERP API for web search, Pinecone for my vector database, the whole nine yards.

So what the hell is MCP actually doing?

The Black Box Problem

Here’s where it gets frustrating. Most explanations of MCP go something like:

“MCP is a protocol that allows AI assistants to securely connect to data sources through standardized servers…”

Cool. Buzzwords. But HOW? What’s actually happening under the hood?

Is MCP writing code on the fly? Is there some magical orchestration happening? Is it a new type of AI reasoning?

The documentation talks about “servers” and “clients” and “tools,” but these are terms I already know. The mental model wasn’t clicking.

I needed someone to open the black box and show me the gears.

The Lightbulb Moment #1: It’s Just Message Passing

Here’s the first thing that clicked: MCP isn’t magic. It’s literally just programs talking to each other.

When you “connect an MCP server” to Claude, here’s what actually happens:

  1. A program starts running on your computer (the MCP server)
  2. Claude connects to it
  3. Claude asks: “Hey, what can you do?”
  4. The MCP server responds: “I can do X, Y, and Z”
  5. Claude stores that list

That’s it. No AI magic. No dynamic code generation. Just structured JSON messages going back and forth.

When you ask Claude a question and it needs to use a tool:

  1. Claude decides: “I need tool X”
  2. Claude sends a message: {"method": "tools/call", "params": {"name": "search_web", "arguments": {...}}}
  3. MCP server receives it
  4. MCP server runs its pre-written code for that tool
  5. MCP server sends results back
  6. Claude uses those results

It’s like two programs passing notes in class. That’s literally all it is.

The “server” is just a program that knows how to respond to specific messages. The “protocol” is just the agreed-upon format for those messages (JSON-RPC, if you’re curious).

The Lightbulb Moment #2: Wait, This Already Exists!

This is where I got really confused, because this sounds EXACTLY like what tool calling already does.

With Claude’s API (no MCP), here’s what happens:

  1. You send Claude your tools in the API request
  2. Claude decides which to call
  3. Claude responds: “Call this tool with these arguments”
  4. You execute the tool in your code
  5. You send results back to Claude

With LangGraph agents:

  1. You define tools as Python functions
  2. LLM sees available tools
  3. LLM decides which to call
  4. Tools execute automatically
  5. LLM gets results

So MCP is doing the same thing?

YES! And that’s what nobody tells you clearly.

The capability (the LLM deciding which tools to call) already existed. MCP didn’t invent this.

So What IS MCP Actually Doing?

Here’s where it finally clicked for me, and this is the key insight that everyone seems to dance around:

MCP is not about capability. It’s about architecture.

Let me show you the real difference:

The LangGraph Way (What I Was Doing)

python

# In my application code:
@tool
def search_web(query: str):
    """Search the internet"""
    api_key = "my-serp-key"
    response = requests.get(...)
    return results

@tool
def search_docs(query: str):
    """Search my vector database"""
    pinecone.query(...)
    return results
# Create agent
agent = create_react_agent(
    model=claude,
    tools=[search_web, search_docs]
)

My tools are Python functions living IN my application code.

The MCP Way

On my computer:
├── My Application (running)
├── SERP MCP Server (separate program, running)
└── VectorDB MCP Server (separate program, running)

My application code:
client.connect("serp_mcp_server")
client.connect("vectordb_mcp_server")
# That's it!

My tools are SEPARATE PROGRAMS running independently.

The Restaurant Analogy That Made It Click

Think of it like restaurants:

Monolithic Restaurant (LangGraph)

You own a restaurant. You have:

  • Your own farm for vegetables
  • Your own butcher for meat
  • Your own bakery for bread

Everything’s in-house. You control it all. It works great!

If you open a second restaurant, you build a second farm, butcher, and bakery.

Supply Chain Model (MCP)

You own a restaurant. You:

  • Buy vegetables from a supplier
  • Buy meat from a supplier
  • Buy bread from a supplier

You open a second restaurant? Same suppliers.

Your friend opens a restaurant? They can use the same suppliers.

The suppliers improve their quality? All restaurants benefit.

MCP is like creating standardized suppliers for AI tools.

The Myths, Busted

Myth #1: “MCP gives Claude new capabilities!”

False. Claude could already use tools. MCP just changes WHERE those tools live and HOW they connect.

The intelligence (Claude deciding which tools to call) was already there.

Myth #2: “MCP is smarter than traditional tool calling!”

False. The LLM reasoning is identical. Whether it’s calling a Python function in your code or an MCP server, the decision-making process is the same.

Myth #3: “You need MCP to build AI agents!”

False. LangGraph, LlamaIndex, and direct API calls work perfectly fine. MCP is an architectural choice, not a requirement.

Myth #4: “MCP replaces LangGraph!”

False. They solve different problems:

  • LangGraph = Orchestration framework (how to chain operations)
  • MCP = Tool distribution protocol (how to package and share tools)

You can actually use both together!

When MCP Actually Matters

Okay, so if MCP isn’t magical new capability, when does it matter?

MCP shines when you have reusability and distribution needs:

Scenario 1: Multiple Apps, Same Tools

You’re building 5 different AI applications at your company. They all need:

  • Slack integration
  • Database access
  • Email search

Without MCP: Each app implements these tools. 5 times the work. Update the Slack integration? Change it in 5 places.

With MCP: One Slack MCP server. All 5 apps connect to it. Update once, everyone benefits.

Scenario 2: Cross-Team Collaboration

Your company has 10 teams building AI tools. Without a standard, everyone builds their own integrations. Wasted effort everywhere.

With MCP, tools become shared infrastructure. Build once, use everywhere.

Scenario 3: Community Sharing

Want to use someone’s cool GitHub MCP server? Just download and connect. No need to port their code to your stack.

Think of it like npm packages, but for AI tools.

Scenario 4: Language Independence

Your main app is in Python, but you have a great Rust library for processing data. With MCP, language doesn’t matter; the Rust tool can still work with your Python app.

When To Stick With LangGraph

Here’s the honest truth: For many projects, LangGraph (or similar frameworks) is totally fine.

Stick with traditional approaches when:

  • You’re building primarily one application
  • Your tools are simple Python functions
  • You like having everything in one codebase
  • You don’t need to share tools across projects
  • Your team is comfortable with the current setup

There’s no shame in this! Monolithic architectures work great for tons of use cases.

The Real Value Proposition

After all this confusion and clarity, here’s what MCP actually is:

MCP is the USB-C of AI tools.

Before USB-C, every device had its own charger. iPhone charger, Android charger, laptop charger. You traveled with a bag full of cables.

USB-C said: “What if we standardized?”

Before MCP, every AI app had its own tool implementations. Claude app implements Slack, GPT app implements Slack, Gemini app implements Slack. Everyone rebuilds the same thing.

MCP says: “What if we standardized?”

It’s not about new capability. It’s about interoperability.

The Missing Piece From Most Explanations

Here’s what finally made it click for me, and what I wish someone had told me upfront:

MCP is a specification for how to package and distribute AI tools, not a new way for AI to reason about tools.

It’s like:

  • Docker didn’t invent applications, it standardized how to package them
  • REST APIs didn’t invent web services, they standardized how to build them
  • npm didn’t invent JavaScript libraries, it standardized how to share them

MCP doesn’t invent tool calling, it standardizes how to share tools.

My Actual Recommendation

If you’re reading this and still confused about whether you need MCP, here’s my take:

Start with what you know. If you’re building with LangGraph or direct API calls and it’s working, keep going. Don’t rewrite everything because MCP exists.

Consider MCP when:

  • You have multiple AI applications that could share tools
  • Your team is growing and coordination is getting messy
  • You want to contribute to or use community-built tools
  • You need better isolation between your app and tools
  • You’re starting fresh and want to build with standards

The capability is the same. The architecture is different.

The Bottom Line

MCP isn’t magic. It’s not revolutionary AI capability. It’s not even that complex once you understand what it actually is.

MCP is infrastructure. It’s plumbing. It’s the boring-but-important work of standardizing how we package and share AI tools.

Is that valuable? Absolutely. Infrastructure matters!

Is it overhyped? Maybe a little.

Do you need it right now? Depends on what you’re building.

The key is understanding what it actually does vs. what people say it does. And hopefully, this journey from confusion to clarity helps you make that call for yourself.


메타데이터
post_id
0200bf8162e2
slug
your-langgraph-agent-already-does-what-you-think-mcp-does-0200bf8162e2
url
https://medium.com/@karanbhutani477/your-langgraph-agent-already-does-what-you-think-mcp-does-0200bf8162e2
canonical_url
https://medium.com/@karanbhutani477/your-langgraph-agent-already-does-what-you-think-mcp-does-0200bf8162e2
author_url
https://medium.com/@karanbhutani477
status
ok
fetched_at
2026-07-09 05:26:43