MCP服务器网络工具
一个MCP(模型上下文协议)服务器,使用FastAPI、FastMCP和Playwright提供web自动化工具。该服务器将网页浏览功能作为人工智能助手的MCP工具公开。
安装
克隆存储库
git clone https://github.com/Imag2020/mcp-server-webtools.git
cd mcp-server-webtools再进行
pip install -r requirements.txt安装Playwright浏览器
playwright install运行服务器
cd src
python mcp-wetools.py服务器运行在 http://0.0.0.0:8000 并提供:
- SSE 终端:
http://0.0.0.0:8000/sse用于实时通信 - 消息端点:
http://0.0.0.0:8000/messages用于MCP协议
MCP客户端配置
要将此服务器用作MCP客户端,请使用以下配置MCP客户端:
{
"mcpServers": {
"webtools": {
"command": "python",
"args": ["path/to/mcp-server-webtools/src/mcp-wetools.py"],
"env": {}
}
}
}或者直接使用SSE端点: http://0.0.0.0:8000/sse
建筑
单文件架构:整个MCP服务器包含在 src/mcp-wetools.py
核心组件:
- 浏览器管理:具有生命周期管理的全局Playwright浏览器实例
- FastMCP集成:使用FastMCP框架将Python函数作为MCP工具公开
- Web自动化工具:一套用于导航、内容提取、表单填写和交互的工具
关键全局变量:
playwright,browser,page:剧作家浏览器状态work_dir:文件操作的工作目录
可用的MCP工具
服务器向MCP客户端公开这些工具:
导航和内容
navigate_to(url):导航到URLget_content():以markdown格式从当前页面提取可读文本save_pdf(output_path):将当前页面另存为PDFprint_screen(output_path):截取当前页面的屏幕截图
表单交互
fill_form_field(label, value):按标签文本填写表单字段submit_form_auto(fields, submit_button_text):填写多个字段并提交表单click(text, selector, exact_match, return_content):按文本或CSS选择器单击元素
弹出窗口管理
check_popups():检测可见的弹出窗口/对话框close_popups():关闭常见的弹出窗口类型(Cookie、同意等)force_close_google_popup():专门处理谷歌弹出窗口
系统
shutdown():彻底关闭浏览器和服务器
浏览器生命周期
- 浏览器在服务器启动时无头启动
- 跨所有工具调用共享单个持久浏览器/页面实例
- 服务器关闭时自动清理
- 页面状态在工具调用之间保持不变
错误处理
所有工具返回结构化响应,包括:
status:“成功”、“错误”或“部分成功”message:错误详细信息(如适用)- 工具特定成功数据
文本提取
这 extract_readable_text() 函数将HTML转换为markdown格式,提取:
- 标题(h1-h6)具有正确的markdown格式
- 段落、列表和链接
- 过滤和清理文本内容
