Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
LangChain MCP Adapters — connect LangChain agents to MCP (Model Context Protocol) servers. Load MCP tools, prompts, and resources as LangChain-compatible objects. Supports stdio, SSE, StreamableHTTP, and WebSocket transports. Includes interceptors, callbacks, and multi-server management.
LangChain MCP Adapters Skill
Expert assistance for langchain-mcp-adapters: the official LangChain bridge to MCP (Model Context Protocol) servers. Converts MCP tools, prompts, and resources into LangChain-native objects usable by any LangChain agent or chain.
Install: pip install langchain-mcp-adapters
Reference: references/api.md (500 KB — full API reference) and references/llms.md (28 KB — index).
When to Use This Skill
Activate when:
Connecting to MCP servers — using MultiServerMCPClient or create_session() to connect via stdio, SSE, HTTP, or WebSocket
Loading MCP tools — calling load_mcp_tools() or client.get_tools() to get BaseTool-compatible tools
Configuring connection types — choosing between StdioConnection, SSEConnection, StreamableHttpConnection, WebsocketConnection
Adding tool interceptors — implementing ToolCallInterceptor for retry, caching, rate limiting, or auth
Handling MCP callbacks — using LoggingMessageCallback, ProgressCallback, or ElicitationCallback
Loading MCP resources or prompts — calling , , or
load_mcp_resources()
get_mcp_resource()
load_mcp_prompt()
Prefixing tool names — avoiding name collisions across multiple MCP servers with tool_name_prefix=True
Converting to FastMCP — using to_fastmcp() to expose LangChain tools as a FastMCP server
Quick Reference
Connect to multiple MCP servers and load tools
from langchain_mcp_adapters.client import MultiServerMCPClient
asyncwith MultiServerMCPClient(
connections={
"filesystem": {
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
},
"weather": {
"transport": "streamable_http",
"url": "https://weather-mcp.example.com/mcp",
},
},
tool_name_prefix=True, # tools become "filesystem_read_file", "weather_search"
) as client:
tools = await client.get_tools()
# Use tools with any LangChain agent
agent = create_react_agent(llm, tools)
Connection types
from langchain_mcp_adapters.sessions import (
StdioConnection, SSEConnection, StreamableHttpConnection, WebsocketConnection
)
# stdio — local process (most common for CLI tools)
stdio: StdioConnection = {
"transport": "stdio",
"command": "python",
"args": ["-m", "my_mcp_server"],
"env": {"MY_API_KEY": "..."},
"cwd": "/path/to/server",
}
# StreamableHTTP — remote server (recommended for network)
http: StreamableHttpConnection = {
"transport": "streamable_http",
"url": "https://my-mcp-server.example.com/mcp",
"headers": {"Authorization": "Bearer my-token"},
"timeout": timedelta(seconds=30),
}
# SSE — legacy remote (use streamable_http for new servers)
sse: SSEConnection = {
"transport": "sse",
"url": "https://my-mcp-server.example.com/sse",
}
Load tools from a single session
from langchain_mcp_adapters.sessions import create_session
from langchain_mcp_adapters.tools import load_mcp_tools
asyncwith create_session(connection) as session:
tools: list[BaseTool] = await load_mcp_tools(
session=session,
server_name="my_server",
tool_name_prefix=True, # prefix tool names with server_name
)
from langchain_mcp_adapters.resources import load_mcp_resources, get_mcp_resource
from langchain_mcp_adapters.prompts import load_mcp_prompt
asyncwith create_session(connection) as session:
# Load all resources as LangChain Blobs
resources = await load_mcp_resources(session)
# Get a specific resource
blob = await get_mcp_resource(session, uri="file:///data/config.json")
# Load a prompt and convert to LangChain messages
messages = await load_mcp_prompt(session, name="summarize", arguments={"text": "..."})
Convert LangChain tools to FastMCP server
from langchain_mcp_adapters.tools import to_fastmcp
from langchain_community.tools import DuckDuckGoSearchRun
lc_tools = [DuckDuckGoSearchRun()]
fastmcp_server = to_fastmcp(lc_tools) # expose as MCP server
fastmcp_server.run()