
This comparison is part of our MCP comparisons, within The MCP Guide. Facts are checked against each vendor's own documentation and pricing pages on the date shown.
Use LangChain tools for logic that only your LangChain agent needs. Use MCP when the same tools should work in many AI apps, such as Claude, ChatGPT, Cursor and your own agent. You do not have to choose one: as of October 2026, LangChain loads MCP tools natively and turns them into LangChain tools.
The two answer different questions. A LangChain tool is a function in your agent's code. An MCP tool lives on a server that any MCP client can discover and call.
Checked against: the LangChain tools docs, the LangChain MCP docs and the MCP tools specification (2026-07-28), on 28 October 2026.
Key Takeaways
- A LangChain tool is a decorated Python function passed to a chat model inside your agent.
- An MCP tool is exposed by a server and found at runtime with
tools/listby any MCP client. - LangChain 1.4 added a built-in
langchain.mcpnamespace, in beta, with anMCPAdapterclass built on FastMCP. - The older
langchain-mcp-adapterspackage says it is "no longer actively maintained." langchain.mcpcovers MCP tools; it does not yet wrap MCP prompts or resources.- LangChain adds approvals through its human-in-the-loop middleware; the MCP spec says a human SHOULD be able to deny tool calls.
At a glance
| LangChain tools | MCP tools | |
|---|---|---|
| What it is | A function in your agent code | A capability on a separate server |
| Who can use it | Agents built with LangChain | Any MCP client (Claude, ChatGPT, Cursor, your agent) |
| How it is defined | @tool decorator; type hints are the schema | inputSchema in JSON Schema, usually generated by an SDK |
| Discovery | You pass the list to create_agent | Client sends tools/list at runtime |
| Where it runs | In your agent's process | In the server's process, local or remote |
| Access to agent state | Yes, via ToolRuntime | No; server sees only the call |
| Also offers | Middleware, memory, stores | Resources and prompts |
| Auth | Your code's credentials | Optional OAuth 2.1 for HTTP servers |
| Approvals | HumanInTheLoopMiddleware | Host's responsibility; spec says SHOULD |
| Package or spec | langchain 1.4.7, MIT | MCP spec 2026-07-28 |
What a LangChain tool is
LangChain's tools page says "tools are callable functions with well-defined inputs and outputs that get passed to a chat model." The model "decides when to invoke a tool based on the conversation context."
You create one with the @tool decorator. The docstring becomes the description, and "type hints are required as they define the tool's input schema." The tool lives in your code, next to your agent.
What an MCP tool is
An MCP tool sits on an MCP server. Per the tools spec, clients "send a tools/list request" to learn what is available, then call a tool by name. Each tool has an inputSchema in JSON Schema.
The server can be a local process over stdio or a remote URL. Any MCP client can use it. Our guide to MCP tools explains the parts.
Where LangChain tools are stronger
Direct access to agent state. LangChain tools can take a ToolRuntime parameter to read "state, context, store." The docs say this parameter "is not included in the tool schema sent to the model." An MCP server cannot see your agent's conversation state.
No extra process. A LangChain tool is just a function. There is no server to run, host or secure. For one agent with a few private helpers, that is the simplest path.
Tight approval controls. The human-in-the-loop docs describe middleware that pauses tool calls by policy. A person can approve, edit, reject or respond. A when predicate can gate on the tool's arguments.
Memory built in. Tools can read and write LangGraph's long-term store and update short-term state. That suits multi-step agents that remember users.
Where MCP tools are stronger
Write once, use in many apps. An MCP server works with any MCP client. The same tool can serve Claude Desktop, Cursor, ChatGPT and your LangChain agent. A LangChain tool works only inside LangChain.
Separation of concerns. The tool's code, credentials and logs stay on the server. Your agent never holds the database password. Our page on remote vs local servers explains both models.
A shared catalog. The MCP project cited "10,000 active servers" in its December 2025 announcement. LangChain's own docs even run an MCP server at https://docs.langchain.com/mcp, per its MCP page.
Standard auth. The MCP authorization spec builds on OAuth 2.1 for HTTP servers. That lets each user sign in to a server as themselves.
More than tools. MCP servers can also offer resources and prompts. See our comparison of tools vs resources vs prompts.
How LangChain uses MCP today
This changed in 2026, so older tutorials may mislead you.
LangChain's MCP docs say agents call MCP tools through MCPAdapter, "which discovers a server's tools and adapts them into LangChain tools." It "is built on FastMCP." The langchain.mcp namespace "requires langchain[mcp]>=1.4.0 and is in beta."
MCPAdapter picks the transport from its target. An http or https URL uses Streamable HTTP. A script path launches over stdio. A config dict can hold several servers. The docs warn that a plain string "must be an http or https URL," because a string naming a local file could otherwise launch it.
The standalone langchain-mcp-adapters repository now says: "This repository is no longer actively maintained." Its MultiServerMCPClient is "collapsed into a single MCPAdapter class," per the migration guide.
There is one gap. The migration guide says langchain.mcp "focuses on tools and does not yet wrap MCP prompts or resources." It suggests reading them directly through the FastMCP client in the meantime. Our FastMCP vs official Python SDK page explains what FastMCP is.
Pricing
Both are free. LangChain is open source under the MIT licence, per PyPI. MCP is an open specification governed by the Agentic AI Foundation under the Linux Foundation.
Paid costs come from model usage, hosting MCP servers and any observability service you add.
Security and admin controls
Approvals. The MCP tools spec says "there SHOULD always be a human in the loop with the ability to deny tool invocations." In a LangChain agent, you supply that human through HumanInTheLoopMiddleware. Do not assume an MCP tool loaded into LangChain gets the approval prompt a desktop AI app might show.
Credentials. LangChain's MCP auth docs support a bearer token, "a full OAuth 2.1 flow," or any httpx.Auth. They recommend per-user auth in a deployment "so each run reaches the server as the caller."
Untrusted descriptions. Tool descriptions from a third-party MCP server go straight to your model. That is the path for tool poisoning. Load only servers you trust, and pin them.
Beta status. LangChain says the langchain.mcp API "may change." Pin versions and test upgrades.
Which to choose
Pick LangChain tools if:
- Only your LangChain agent needs the tool.
- The tool needs agent state, memory or the runtime context.
- You want the fewest moving parts.
Pick MCP tools if:
- Several AI apps or teams should share the same tools.
- Credentials and logs should stay on a server, not in each agent.
- A vendor already ships an MCP server for the system you need.
- You may move off LangChain later and want portable tools.
Many teams do both: private helpers as LangChain tools, shared systems as MCP servers loaded through MCPAdapter. For more matchups, see our MCP comparisons.
Next step
List your tools and ask, for each one, "would another AI app ever need this?" The yes answers are MCP server candidates. If you want help building those servers, talk to our MCP development team.
Frequently asked questions
Can LangChain use MCP servers?
Yes. LangChain 1.4 and later include langchain.mcp, whose MCPAdapter connects to MCP servers and turns their tools into LangChain tools for create_agent. The namespace is in beta as of October 2026.
Is langchain-mcp-adapters deprecated?
Its README says it is "no longer actively maintained" and points to langchain[mcp]. LangChain publishes a migration guide from MultiServerMCPClient to MCPAdapter.
Can I expose my LangChain tools as an MCP server?
LangChain's migration guide lists the old adapters' to_fastmcp helper among features to stop and review, not as a langchain.mcp feature. The guide does not name a replacement. You can build a server with an MCP SDK or FastMCP and call your existing functions from it.
Do MCP prompts and resources work in LangChain?
Not through MCPAdapter yet. The migration guide says langchain.mcp does not yet wrap prompts or resources. You can read them through the FastMCP client directly.











