使用说明
LangChain MCP剧作家客户端
一个Python客户端,将Playwright MCP(模型上下文协议)服务器与LangChain集成在一起,通过AI代理实现浏览器自动化。
概述
该项目实现了以下各项之间的无缝集成:
- 剧作家MCP服务器:通过MCP提供浏览器自动化功能
- LangChain:构建AI代理应用程序的框架
- Groq:使用Llama 3.3 70B等模型进行超快速LLM推理
客户端会自动发现可用的Playwright工具,并将其包装为LangChain工具,允许AI代理执行复杂的浏览器自动化任务。
特性
- 🔌 轻松连接:连接到Playwright MCP服务器的简单异步接口
- 🛠️ 自动工具发现:动态发现MCP工具并将其包装为LangChain工具
- 🤖 代理支持:创建具有完全浏览器自动化访问权限的LangChain代理
- 🔄 上下文管理:使用异步上下文管理器进行干净的资源管理
- 📝 类型提示:完整的类型注释,以获得更好的IDE支持
- ⚡ Groq集成:闪电般快速的LLM推理,实现快速的浏览器自动化
安装
先决条件
- Python 3.8或更高版本
- Node.js和npm(用于Playwright MCP服务器)
- 紫外线 (推荐)或pip
设置
-
克隆或下载此存储库
-
安装Python依赖项:
使用紫外线(推荐-更快):
# Install uv if you haven't already # Windows: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # macOS/Linux: curl -LsSf https://astral.sh/uv/install.sh | sh # Create virtual environment and install dependencies uv venv .venv\Scripts\activate # Windows # source .venv/bin/activate # macOS/Linux uv pip install -r requirements.txt使用pip:
pip install -r requirements.txt -
设置环境变量:
cp .env.example .env编辑
.env并添加您的Groq API密钥(从 console.groq.com):GROQ_API_KEY=your_groq_api_key_here -
验证Playwright MCP是否可用:
npx @playwright/mcp@latest --help
快速开始
基本用法
import asyncio
from dotenv import load_dotenv
from langchain_groq import ChatGroq
from langchain_mcp_client import create_playwright_mcp_client
async def main():
load_dotenv()
# Initialize LLM with Groq
llm = ChatGroq(model="llama-3.3-70b-versatile", temperature=0)
# Create and use MCP client
async with create_playwright_mcp_client() as client:
# Create agent
agent = client.create_agent(llm)
# Run a task
result = await agent.ainvoke({
"input": "Navigate to https://example.com and take a screenshot"
})
print(result['output'])
asyncio.run(main())
使用不同的LLM提供者
Groq(推荐-提供快速免费套餐)
from langchain_groq import ChatGroq
# Llama 3.3 70B - Best for complex tasks
llm = ChatGroq(model="llama-3.3-70b-versatile", temperature=0)
# Other models:
# llm = ChatGroq(model="llama-3.1-70b-versatile", temperature=0)
# llm = ChatGroq(model="mixtral-8x7b-32768", temperature=0)
其他提供者(需要额外的依赖关系)
# OpenAI: pip install langchain-openai
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4", temperature=0)
# Anthropic: pip install langchain-anthropic
from langchain_anthropic import ChatAnthropic
llm = ChatAnthropic(model="claude-3-5-sonnet-20241022", temperature=0)
自定义系统消息
async with create_playwright_mcp_client() as client:
custom_message = (
"You are an expert web scraper. "
"Extract information precisely and efficiently."
)
agent = client.create_agent(llm, system_message=custom_message)
手动连接管理
from langchain_mcp_client import PlaywrightMCPClient
client = PlaywrightMCPClient()
try:
await client.connect()
print(f"Connected! Found {len(client.tools)} tools")
agent = client.create_agent(llm)
result = await agent.ainvoke({"input": "Your task here"})
finally:
await client.disconnect()
api参考
PlaywrightMCPClient
用于与Playwright MCP服务器交互的主客户端类。
方法
async connect():连接到MCP服务器并发现工具create_agent(llm, system_message=None):使用MCP工具创建LangChain代理async disconnect():断开与服务器的连接并清理资源
属性
tools:已发现的LangChain工具列表session:活动MCP客户端会话
create_playwright_mcp_client()
异步上下文管理器,便于客户端生命周期管理。
退货: PlaywrightMCPClient 例子
示例:
async with create_playwright_mcp_client() as client:
# Use client here
pass
配置
MCP服务器配置
客户端使用以下方式连接到Playwright MCP:
{
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
这是在中配置的 langchain_mcp_client.py 并运行最新版本的Playwright MCP。
环境变量
必修的:
GROQ_API_KEY:从获取您的免费API密钥 console.groq.com
可选(适用于其他提供商):
OPENAI_API_KEY:对于OpenAI模型(需要langchain-openai)ANTHROPIC_API_KEY:对于Anthropic模型(需要langchain-anthropic)
示例
运行示例脚本:
python example_usage.py
该脚本提供了多个示例:
- OpenAI(GPT-4)使用情况
- 人类学(克劳德)用法
- 手动客户端管理
- 所有示例
可用工具
Playwright MCP服务器提供各种浏览器自动化工具。常用工具包括:
- 导航:
playwright_navigate,playwright_goto - 截图:
playwright_screenshot - 页面交互:
playwright_click,playwright_fill,playwright_type - 内容提取:
playwright_evaluate,playwright_content - 还有更多:连接时自动发现
要查看所有可用工具,请执行以下操作:
async with create_playwright_mcp_client() as client:
for tool in client.tools:
print(f"{tool.name}: {tool.description}")
故障排除
“会话未初始化”错误
一定要打电话 await client.connect() 在使用客户端之前,或者使用上下文管理器。
“无可用工具”错误
确保MCP服务器正常运行。测试:
npx @playwright/mcp@latest
API关键错误
验证您的 .env 文件包含有效的API密钥,并且 load_dotenv() 被称为。
连接超时
MCP服务器可能需要一点时间才能启动。如果您遇到超时,请确保:
- Node.js和npm已正确安装
- 没有防火墙阻止npm/npx
@playwright/mcp@latest可访问的
建筑
┌─────────────────┐
│ LangChain │
│ Agent │
└────────┬────────┘
│
▼
┌─────────────────┐
│ LangChain MCP │
│ Client │
└────────┬────────┘
│
▼
┌─────────────────┐
│ MCP Session │
│ (stdio) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Playwright MCP │
│ Server │
│ (npx process) │
└─────────────────┘
贡献
欢迎投稿!请随意:
- 报告错误
- 建议功能
- 提交拉取请求
许可证
麻省理工学院许可证-请在您的项目中自由使用!
致谢
支持
对于问题或疑问:
- 检查故障排除部分
- 查看示例脚本
- 在GitHub上打开一个问题
自动化快乐! 🚀 #� �m�c�p�_�b�r�o�w�s�e�r� � �