Model Context Protocol (MCP) To LangChain Tools Conversion Utility
Project description
MCP To LangChain Tools Conversion Utility

This package is intended to simplify the use of Model Context Protocol (MCP) server tools with LangChain / Python.
Model Context Protocol (MCP), introduced by Anthropic, extends the capabilities of LLMs by enabling interaction with external tools and resources, such as web search and database access. Thanks to its open-source nature, MCP has gained significant traction in the developer community, with over 400 MCP servers already developed and shared:
- Glama’s list of Open-Source MCP servers
- Smithery: MCP Server Registry
- awesome-mcp-servers
- MCP Get Started/Example Servers
In the MCP framework, external features are encapsulated in an MCP server,
which typically runs in a separate process and communicates
via stdio using the open standard protocol.
This clean decoupling makes it easy to adopt and reuse any of
the significant collections of MCP servers listed above.
To make it easy for LangChain users to take advantage of such a vast resource base, this package offers quick and seamless access from LangChain to MCP servers.
It contains a utility function convert_mcp_to_langchain_tools().
This async function handles parallel initialization of specified multiple MCP servers
and converts their available tools into a list of LangChain-compatible tools.
A typescript equivalent of this utility is available here
Requirements
- Python 3.11+
Installation
pip install langchain-mcp-tools
Quick Start
convert_mcp_to_langchain_tools() utility function accepts MCP server configurations
that follow the same structure as
Claude for Desktop,
but only the contents of the mcpServers property,
and is expressed as a dict, e.g.:
mcp_configs = {
'filesystem': {
'command': 'npx',
'args': ['-y', '@modelcontextprotocol/server-filesystem', '.']
},
'fetch': {
'command': 'uvx',
'args': ['mcp-server-fetch']
}
}
tools, cleanup = await convert_mcp_to_langchain_tools(
mcp_configs
)
This utility function initializes all specified MCP servers in parallel,
and returns LangChain Tools
(tools: List[BaseTool])
by gathering available MCP tools from the servers,
and by wrapping them into LangChain tools.
It also returns an async callback function (cleanup: McpServerCleanupFn)
to be invoked to close all MCP server sessions when finished.
The returned tools can be used with LangChain, e.g.:
# from langchain.chat_models import init_chat_model
llm = init_chat_model(
model='claude-3-5-haiku-latest',
model_provider='anthropic'
)
# from langgraph.prebuilt import create_react_agent
agent = create_react_agent(
llm,
tools
)
A simple and experimentable usage example can be found here
A more realistic usage example can be found here
Limitations
Currently, only text results of tool calls are supported.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file langchain_mcp_tools-0.1.4.tar.gz.
File metadata
- Download URL: langchain_mcp_tools-0.1.4.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f477918b53538b94bca30e242e3c4c676bbdd74686cd4f6537537242d2ef480
|
|
| MD5 |
5d08642e390f862d9aac3a9e09e88940
|
|
| BLAKE2b-256 |
804a2893db35660eee2534f292855c9096e481262e49bb48a6d16bb972764ab9
|
File details
Details for the file langchain_mcp_tools-0.1.4-py3-none-any.whl.
File metadata
- Download URL: langchain_mcp_tools-0.1.4-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2df968b99f0c5f01336714878ffe2bd01fe3393de417bfa351db52d84b5a0fe
|
|
| MD5 |
f272d878e5f76841f309ef28bfd19f54
|
|
| BLAKE2b-256 |
79237f77051ea340180c0af3b9a33c596625a760ef0e54780ca31fa59373e013
|