Fundamentals6 min read

MCP vs Function Calling: What’s the Difference?

It is the most common confusion in MCP discussions: are MCP and function calling the same thing? Different things? Competitors? The short answer: they sit at different layers. Function calling is what the model emits. MCP is how tool servers talk to clients. You almost always use both together.

The one-sentence version

Function calling is a model capability: a frontier LLM can output a structured request like "call get_weather with location="Berlin"". MCP is a server protocol: it defines how a tool-server publishes its tools, how a client discovers them, and how requests and responses travel between them.

They compose. The model emits a function call (function calling); the client routes that call to the right MCP server (MCP). The server runs the tool and returns the result; the client feeds it back to the model. Same conversation, two layers of plumbing.

Where each lives in the stack

Function calling

A capability of specific model APIs (Anthropic, OpenAI, Google, etc.). The model returns a JSON object describing a function to call. Your code is responsible for parsing it, running the function, and returning the result.

  • Defined by each provider's API
  • Format varies across providers
  • You write the routing logic
  • Tools live in your codebase

MCP

An open standard for tool servers. The server declares its tools; the client connects, discovers them, and forwards model function calls to the server. The wire format is provider-agnostic.

  • Defined by modelcontextprotocol.io
  • Standardised JSON-RPC envelope
  • Discovery and dispatch built in
  • Tools live in reusable servers

A request, traced end-to-end

The cleanest way to see the difference is to walk one tool call through both layers. Say a user asks Claude Desktop "what is the weather in Berlin?" with the (hypothetical) Weather MCP installed.

1

Client lists available tools

Claude Desktop has discovered the Weather MCP at startup. It includes the server's tool descriptions (e.g. get_weather(location)) in the model's system prompt — this is the MCP layer doing discovery.

2

Model emits a function call

The model returns a structured response: { type: "tool_use", name: "get_weather", input: { location: "Berlin" } }. This is the function-calling layer — Anthropic's API spec defines this format.

3

Client routes via MCP

Claude Desktop sees a tool_use targeting a tool exposed by the Weather MCP. It forwards a CallToolRequest over the MCP transport (stdio or HTTP) to the Weather server.

4

MCP server executes

The Weather MCP server receives the request, calls the underlying weather API, and returns a CallToolResult with the text result. This is MCP-server code that the user never writes — it ships in the server.

5

Client feeds result back to model

Claude Desktop wraps the result as a tool_result message and sends it back through Anthropic's API. The model uses it to compose the final reply for the user.

Steps 2 and 5 are function calling. Steps 1, 3, and 4 are MCP. Without MCP, your application code has to do steps 1, 3, and 4 by hand — for every tool, every model API, every client.

Side-by-side comparison

Function callingMCP
LayerModel output formatTransport + discovery protocol
Defined byEach provider API (Anthropic, OpenAI, etc.)modelcontextprotocol.io (open spec)
Tools live inYour application codeReusable MCP servers
DiscoveryYou hand-write descriptionsClient lists tools from connected servers
Cross-providerNo — JSON shapes differYes — clients abstract over provider
Cross-clientNo — you write per-client glueYes — one MCP works in Claude/Cursor/VS Code
Wire formatWhatever the provider returnsJSON-RPC over stdio or HTTP
AuthYour code's jobOAuth 2.1 + PKCE (remote MCPs)
Best forSingle-tool, single-model use casesShared tooling across clients/models

They are not competing — they are complementary

The model still needs function calling to express "I want to use this tool." MCP just standardises how that intent travels to a tool server and back, so you do not write the plumbing every time. Almost every production agent stack uses both.

When to skip MCP and write raw function calling

MCP is the right default for any tool you want available in more than one place. But there are cases where direct function calling is simpler.

Single-provider, single-client backend agent

If your only consumer is your own backend, talking to one provider's API, with one set of tools nobody else will ever use, the indirection MCP adds is overhead.

Framework-managed tools (LangChain, LlamaIndex)

These frameworks already wrap function calling. Adding MCP on top makes sense only if you also want those tools usable outside the framework.

Tightly coupled to a specific feature surface

If the tool exists to enable one specific UI behaviour and is meaningless outside it, the portability MCP offers is not worth the protocol overhead.

When MCP clearly wins

You want the same tool in Claude Desktop, Cursor, VS Code, and ChatGPT

Write the MCP server once; install in every client with a one-line config block. With raw function calling you would build per-client integrations.

Multiple teams share the same tool

A central MCP server with OAuth lets each user authenticate with their own scope. Function calling has no built-in answer for multi-tenant auth.

You are integrating a SaaS that already ships an MCP

HubSpot, Linear, Sentry, Cloudflare, Stripe, Notion all publish MCP servers. Using theirs means zero glue code — that is the literal point of an open standard.

You want LLM-portable tooling

MCP servers work with any client/model. If your agent stack might switch from Claude to GPT (or vice versa) next quarter, MCP lets the tools come along for free.

Frequently asked questions

Is MCP the same as function calling?

No. Function calling is a feature of a specific model API — the model returns a structured request describing a function to invoke. MCP is a transport-layer protocol that standardises how clients discover and call tools across providers, models, and tool servers. They operate at different layers: function calling is "what the model emits," MCP is "how tool servers talk to clients."

Do I need MCP if my model already supports function calling?

You do not need it, but it dramatically reduces glue code. With raw function calling, you write the tool descriptions, parse the model's function-call output, route to your handlers, and pipe the result back — every time, for every tool, for every model API. With MCP, those plumbing layers move into the protocol; you point the client at an MCP server and the tools become available automatically.

Can MCP work without function calling support in the model?

Conceptually no — MCP relies on the model being able to emit a structured "I want to call this tool" request, which is exactly what function calling provides. In practice, every modern frontier model (Claude, GPT, Gemini, Llama) supports function calling, so the question is mostly academic. MCP's value is portability across all of them.

Is MCP locked into Anthropic?

No. MCP is an open standard. The spec lives at modelcontextprotocol.io and the reference implementations are on GitHub under the modelcontextprotocol organization. OpenAI ChatGPT, Cursor, VS Code, Windsurf, and Zed all support MCP as clients. Many providers ship MCP servers as the official integration path.

When should I use raw function calling instead of MCP?

When you have a single tool, one specific model, one client, and full control over both sides. A small internal tool that only your backend will ever call from one provider's API is faster to wire as raw function calling. The moment you want the same tool available in Claude Desktop, Cursor, and a homegrown agent, MCP saves more time than it costs.

How does MCP compare to LangChain tools or LlamaIndex tools?

Different abstraction levels again. LangChain and LlamaIndex are frameworks that wrap function calling with helpers (chains, agents, retries). MCP is a wire-format protocol — it does not care which framework you use. You can build a LangChain agent that consumes MCP servers, or an MCP server that exposes a LangChain tool. They compose; they do not compete.

Continue reading

If MCP itself is still abstract, the what-is-mcp guide walks the plumbing in plain English. If you already understand the basics, the security and transport guides cover the harder operational questions.

More guides

Comparison

AWS MCP vs Azure MCP: Which to Use in 2026

7 min read

Comparison

Square MCP vs Stripe MCP: Which to Use in 2026

7 min read

Ranked Guide

Best MCPs for DevOps in 2026 (Ranked)

11 min read

Vertical Guide

Best MCPs for Domains and DNS in 2026 (Ranked)

8 min read

Comparison

Namecheap vs GoDaddy vs Cloudflare MCP (2026)

7 min read

Vertical Guide

Best MCPs for Payments in 2026 (Ranked)

8 min read

Vertical Guide

Best MCPs for Invoicing and Accounting in 2026

9 min read

Comparison

Stripe MCP vs PayPal MCP: Which to Use in 2026

6 min read

Ranked Guide

Best MCP Servers for Postgres in 2026 (Ranked)

12 min read

Ranked Guide

Best MCP Servers for Browser Automation in 2026 (Ranked)

12 min read

Ranked Guide

Best MCP Servers for Vector Databases in 2026 (RAG-Ready)

11 min read

Ranked Guide

Best MCP Servers for Git in 2026 (GitHub, GitLab, Bitbucket, Local)

11 min read

Ranked Guide

Best MCP Servers for Workflow Automation in 2026 (Ranked)

11 min read

Ranked Guide

Best Free MCP Servers in 2026 (No API Key Required)

10 min read

Comparison

GitHub vs GitLab MCP: Which to Use in 2026

8 min read

Comparison

Pinecone vs Qdrant vs Chroma MCP: Which to Use (2026)

9 min read

Comparison

Playwright vs Browserbase MCP: Local vs Cloud (2026)

8 min read

Comparison

Postgres MCP vs Supabase MCP: Which to Use (2026)

8 min read

Comparison

n8n vs Zapier vs Make MCP: Which to Use (2026)

9 min read

Ranked Guide

Best MCP Servers for Deploying Websites in 2026 (Ranked)

11 min read

Comparison

Vercel vs Netlify vs Cloudflare MCP: Which to Use (2026)

9 min read

Tutorial

Deploy to Vercel With an AI Agent (Vercel MCP, 2026)

7 min read

Tutorial

Deploy to Cloudflare With an AI Agent (Cloudflare MCP, 2026)

7 min read

Strategy

Can an AI Agent Deploy to Production? (Safely, in 2026)

8 min read

Fundamentals

What Is MCP? A Plain-English Guide to Model Context Protocol

6 min read

Setup Guide

Best MCPs for Cursor in 2026 (Ranked + Setup)

8 min read

Setup Guide

Best MCPs for Claude Desktop in 2026 (Ranked + Setup)

9 min read

Setup Guide

Best MCPs for Claude Code in 2026 (Ranked + Setup)

8 min read

Setup Guide

Best MCPs for Codex CLI in 2026 (Ranked + config.toml)

8 min read

Setup Guide

Best MCPs for Windsurf in 2026 (Cascade-Ready Setup)

8 min read

Setup Guide

Best MCPs for VS Code in 2026 (Agent Mode + .vscode/mcp.json)

8 min read

Vertical Guide

Best MCPs for Marketing in 2026 (Ranked + Use Cases)

9 min read

Vertical Guide

Best MCPs for SEO in 2026 (Ranked + Workflows)

9 min read

Vertical Guide

Best MCPs for Data Teams in 2026 (Ranked + Workflows)

9 min read

Vertical Guide

Best MCPs for Security in 2026 (Ranked + Posture Workflows)

10 min read

Strategy

MCP Registry vs Curated Directory: Which Should You Use?

5 min read

Setup Guide

Best MCPs for ChatGPT: The Apps and Connectors Worth Installing

9 min read

Tutorial

How to Add an MCP Server to ChatGPT (Developer Mode + Apps Directory)

7 min read

Security

MCP Security: What to Know Before You Install

9 min read

Role Guide

Best MCPs for Marketers in 2026 (SEO, Email, Analytics)

8 min read

Strategy

Remote vs Local MCP Servers: When to Use Each

7 min read

Comparison

MCP Directories Compared: Top MCPs vs mcp.so vs PulseMCP vs mcp.directory

8 min read

Security

MCP Prompt Injection: How Tool-Calling Agents Get Hijacked

8 min read

Security

OAuth 2.1 for MCP: What the Spec Standardised and What You Need to Know

8 min read

Security

Sandboxing MCP Servers: Containers, Least Privilege, and Process Isolation

9 min read

Security

Rotating MCP Credentials: A Practical Guide for Leaks, Expiry, and Routine Hygiene

7 min read

Security

Least-Privilege Scoping for MCPs: How to Grant the Smallest Useful Permission

7 min read

Setup Guide

Best MCP Servers for Databases in 2026 (Ranked + Setup)

10 min read

Setup Guide

Best MCP Servers for Research in 2026 (Search, Scrape, Synthesize)

9 min read

Setup Guide

Best MCP Servers for Design-to-Code in 2026 (Figma → React)

9 min read

Setup Guide

Best MCP Servers for Domains in 2026 (Registrars + DNS)

9 min read

Tutorial

How to Buy a Domain From Claude (Cloudflare MCP, Step by Step)

6 min read

Tutorial

How to Search for Domains With an AI Agent (Cross-Registrar Workflow)

7 min read

Tutorial

How to Deploy a Website With an AI Agent (MCP Workflow)

8 min read