🚀 MCP 到 LangChain 和 LangGraph 的適配器文檔
本適配器文檔旨在幫助用戶將 MCP 協議工具轉換為 LangChain 和 LangGraph 兼容的工具,提供了詳細的安裝、使用、功能特性及故障排除等方面的內容。
🚀 快速開始
本適配器可將 MCP 協議工具轉換為 LangChain 和 LangGraph 兼容的 BaseTool
類。以下是快速上手的步驟:
from mcp_langchain_adapter import MCPAdapter
adapter = MCPAdapter(server_script_path="path/to/your/mcp_server.py")
adapter.initialize()
tools = adapter.get_tools()
print(f"發現 {len(tools)} 個工具:")
for tool in tools:
print(f"- {tool.name}: {tool.description}")
add_tool = adapter.get_tool_by_name("add")
if add_tool:
result = add_tool.run({"a": 5, "b": 7})
print(f"加法結果:{result}")
weather_tool = adapter.get_tool_by_name("get_weather")
if weather_tool:
result = weather_tool.run({"city": "London"})
print(f"天氣查詢結果:{result}")
📦 安裝指南
安裝依賴
pip install mcp-langchain-adapter
✨ 主要特性
工具適配
- 將 MCP 協議工具轉換為 LangChain 和 LangGraph 兼容的
BaseTool
類。
- 支持自定義參數傳遞,包括環境變量。
服務器啟動與管理
- 提供簡便方法啟動 MCP 服務器進程。
- 支持異步初始化和清理資源。
自動檢測與發現
- 通過掃描指定目錄自動發現 MCP 工具。
- 支持動態加載新添加的工具。
💻 使用示例
基礎用法
from mcp_langchain_adapter import MCPAdapter
adapter = MCPAdapter("path/to/mcp_server.py")
adapter.initialize()
tools = adapter.get_tools()
print(f"檢測到 {len(tools)} 個工具:")
for tool in tools:
print(f"- 名稱: {tool.name}")
print(f" 描述: {tool.description}")
print(f" 參數: {tool.args_schema}\n")
高級用法
工具包裝器
from mcp_langchain_adapter import MCPToolWrapper
wrapper = MCPToolWrapper(
name="計算器",
description="執行基本算術運算的工具",
server_script_path="path/to/calculator_server.py",
env={"ENV_VAR": "value"},
args_schema={
"a": {"type": "int", "required": True},
"b": {"type": "int", "required": True}
}
)
自定義工具加載
import os
from mcp_langchain_adapter import MCPToolWrapper, MCPAdapter
def custom_tool_loader(directory):
tools = []
for script in os.listdir(directory):
if script.endswith(".py"):
try:
tool = MCPToolWrapper(..., server_script_path=os.path.join(directory, script))
tools.append(tool)
except Exception as e:
print(f"加載腳本 {script} 時出錯:{e}")
return tools
adapter = MCPAdapter(custom_tool_loader=custom_tool_loader)
異步支持
async def async_usage():
from mcp_langchain_adapter import MCPAdapter
adapter = MCPAdapter("path/to/mcp_server.py")
await adapter.initialize()
add_tool = adapter.get_tool_by_name("add")
if add_tool:
result = await add_tool.async_run({"a": 5, "b": 7})
print(f"異步加法結果:{result}")
📚 詳細文檔
故障排除
常見問題
-
無法連接到 MCP 服務器?
- 檢查服務器腳本路徑是否正確。
- 確保服務器正在運行且監聽正確端口。
-
工具未被發現?
- 確認工具符合適配器的規範。
- 查看日誌輸出以獲取更多信息。
-
環境變量配置錯誤?
- 檢查
env
參數是否正確傳遞。
- 確保服務器端能夠讀取這些環境變量。
日誌記錄
import logging
logging.basicConfig(level=logging.DEBUG)
adapter = MCPAdapter("path/to/mcp_server.py", log_level=logging.DEBUG)
更多資源
貢獻指南
歡迎貢獻修復和功能增強!
請 Fork 本倉庫並在提交前閱讀Contributing.md。
📄 許可證
MIT License
聯繫方式
- 郵件:support@mcp-langchain-adapter.com
- GitHub:https://github.com/mcp/langchain-adapter