π¦
Langchain MCP Registry
Seamlessly integrate MCP Registry servers into your LangChain workflows
0 installs
1 stars
Trust: 51 β Fair
Ai
Installation
npx langchain-mcp-registryAsk AI about Langchain MCP Registry
Powered by Claude Β· Grounded in docs
I know everything about Langchain MCP Registry. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Loading tools...
Reviews
Documentation
π LangChain MCP Registry
Seamlessly integrate MCP Registry servers into your LangChain workflows
π Features
- π Automatic Discovery: Search and discover MCP servers from the official registry
- π Seamless Integration: Convert registry servers to LangChain-compatible tools
- π Zero Configuration: Works out of the box with sensible defaults
- π‘οΈ Type Safe: Full type hints and Pydantic models
- π― CLI & Python API: Use via command line or programmatically
- π¦ Multiple Transports: Support for stdio, HTTP, SSE
π Quick Start
Installation
pip install langchain-mcp-registry
Python API
from langchain_mcp_registry import MCPRegistryClient
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
# 1. Discover servers from registry
async with MCPRegistryClient() as client:
servers = await client.search_servers(query="weather")
# 2. Auto-convert to LangChain tools
tools = await client.load_tools(servers[0])
# 3. Use in LangChain agent
llm = ChatOpenAI(model="gpt-4")
agent = create_react_agent(llm, tools)
result = await agent.ainvoke({
"messages": [{"role": "user", "content": "What's the weather in SF?"}]
})
CLI Usage
# Search for servers
mcp-registry search weather
# List server details
mcp-registry info @modelcontextprotocol/server-brave-search
# Install and test a server
mcp-registry install @modelcontextprotocol/server-brave-search
mcp-registry test brave-search "search for AI news"
π Documentation
Registry Client
from langchain_mcp_registry import MCPRegistryClient
client = MCPRegistryClient(
registry_url="https://registry.modelcontextprotocol.io",
timeout=30.0,
cache_ttl=3600
)
# Search with filters
servers = await client.search_servers(
query="github",
limit=10,
version="latest"
)
# Get server details
server_details = await client.get_server_details(
name="@modelcontextprotocol/server-github",
version="latest"
)
Configuration Converter
from langchain_mcp_registry import RegistryToMCPConverter
converter = RegistryToMCPConverter()
# Convert registry server to MCP config
mcp_config = converter.convert(registry_server)
# Output: {"command": "npx", "args": [...], "env": {...}}
# Validate configuration
is_valid = converter.validate_config(mcp_config)
Tool Loader
from langchain_mcp_registry import MCPToolLoader
loader = MCPToolLoader()
# Load tools from registry server
tools = await loader.load_from_registry(
server_name="@modelcontextprotocol/server-everything",
version="latest"
)
# Load multiple servers
all_tools = await loader.load_multiple([
"server-brave-search",
"server-github",
"server-filesystem"
])
ποΈ Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LangChain Agent β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LangChain MCP Registry β
β ββββββββββββββββ ββββββββββββββ βββββββββββββββ β
β β Registry β β Converter β β Tool β β
β β Client βββΆβ (R β M) βββΆβ Loader β β
β ββββββββββββββββ ββββββββββββββ βββββββββββββββ β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MCP Registry (modelcontextprotocol.io) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π§ Advanced Usage
Custom Registry
client = MCPRegistryClient(
registry_url="https://your-private-registry.com",
headers={"Authorization": "Bearer YOUR_TOKEN"}
)
Error Handling
from langchain_mcp_registry.exceptions import (
ServerNotFoundError,
InvalidConfigError,
RegistryConnectionError
)
try:
tools = await client.load_tools("non-existent-server")
except ServerNotFoundError:
print("Server not found in registry")
except InvalidConfigError as e:
print(f"Invalid configuration: {e}")
Caching
# Enable local caching for faster repeated access
client = MCPRegistryClient(
cache_enabled=True,
cache_ttl=7200, # 2 hours
cache_dir="~/.mcp-registry-cache"
)
π€ Contributing
Contributions are welcome! Please see CONTRIBUTING.md for details.
π License
MIT License - see LICENSE file for details.
π Acknowledgments
π Links
- PyPI: https://pypi.org/project/langchain-mcp-registry/
- GitHub: https://github.com/ChangjunZhao/langchain-mcp-registry
- Issues: https://github.com/ChangjunZhao/langchain-mcp-registry/issues
Made with β€οΈ for the LangChain and MCP communities
