使用说明

项目简介

本项目 'Browser_scrape_mcp' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型(LLM)客户端提供强大的浏览器自动化和网页内容抓取能力。通过标准化的 MCP 协议,LLM 可以安全、可扩展地调用服务器提供的工具,实现智能化的网页信息提取和处理。

主要功能点

  • 网页抓取与信息提取: 提供多种工具,能够根据不同的网站类型(如GitHub、Stack Overflow、文档站、通用网站)智能抓取网页内容,并返回结构化信息。
  • 文件系统操作: 支持文件和目录的管理功能,例如列出目录内容、查看文件信息、读取文件内容等,方便进行本地文件操作。
  • 搜索引擎集成: 集成 Tavily 搜索引擎,可以根据用户查询获取相关的网页链接和内容。
  • 工具化能力: 所有功能均以 MCP 工具的形式提供,易于被 LLM 客户端调用和集成。
  • 标准 MCP 协议: 遵循 MCP 协议标准,易于与其他 MCP 客户端集成,实现即插即用。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/Raghu6798/Browser_scrape_mcp.git
    cd Browser_scrape_mcp
  2. 安装依赖:

    pip install -r requirements.txt
  3. 安装 Playwright 浏览器:

    playwright install
  4. 配置 API 密钥: 在项目根目录下创建 '.env' 文件,并添加 Mistral AI 和 Tavily Search 的 API 密钥:

    MISTRAL_API_KEY=你的Mistral_API_密钥
    TAVILY_SEARCH_API=你的Tavily_Search_API_密钥
    FIRECRAWL_API_KEY=你的Firecrawl_API_密钥

    注意: 如果不需要使用 'search_and_scrape' 和 'scrape_content' 工具,可以不配置 'TAVILY_SEARCH_API' 和 'FIRECRAWL_API_KEY'。

服务器配置

MCP 客户端需要配置以下 JSON 格式的服务器信息才能连接到本 MCP 服务器。

{
  "server name": "Browser_scrape_mcp Server",
  "command": "python",
  "args": ["main.py"]
}

配置参数说明:

  • 'server name': 服务器的名称,可以自定义,用于在客户端识别服务器。
  • 'command': 启动服务器的命令,这里使用 'python' 解释器。
  • 'args': 启动命令的参数列表,这里指定 'main.py' 为服务器主程序入口。 注意: 请确保 'main.py' 文件位于 MCP 客户端能够访问到的路径下。如果 'main.py' 路径与客户端当前工作目录不同,'args' 需要配置为 'main.py' 的绝对路径

基本使用方法

  1. 启动 MCP 服务器: 打开终端,进入仓库根目录,运行以下命令启动 MCP 服务器:

    python main.py

    服务器成功启动后,终端会显示 "Starting MCP server..." 和 "MCP server is running." 信息。保持服务器运行。

  2. 启动 MCP 客户端: 在另一个终端窗口中,进入仓库根目录,运行以下命令启动 MCP 客户端:

    python client.py

    客户端启动后,会连接到 MCP 服务器,并显示 "Client session initialized successfully." 和 "Tools loaded successfully." 信息。

  3. 与 Agent 交互: 在客户端终端中,输入你的查询内容,例如 "Search Google for the latest news about AI",然后按回车键。Agent 将调用 MCP 服务器提供的工具进行处理,并将结果返回并在客户端终端显示。

  4. 退出: 在客户端终端中,输入 'exit' 并按回车键,即可安全退出客户端程序。服务器程序需要手动在服务器终端中停止。

工具函数

本 MCP 服务器提供以下工具函数,可以通过 MCP 协议被客户端调用:

  • 'search_and_scrape(query: str)': 使用 Tavily 搜索并抓取最相关的网页内容。
  • 'list_directory(path: str = ".")': 列出指定目录下的文件和目录。
  • 'get_current_directory()': 获取当前工作目录。
  • 'change_directory(path: str)': 切换当前工作目录。
  • 'file_info(path: str)': 获取文件或目录的详细信息。
  • 'create_directory(path: str)': 创建新的目录。
  • 'scrape_content(url: str)': 抓取指定 URL 的网页内容并返回 Markdown 格式。
  • 'read_file_content(file_path: str, start_line: int = 1, end_line: int = None)': 读取文件内容,支持指定行范围。
  • 'preview_file(file_path: str, num_lines: int = 10)': 预览文件的前几行内容。
  • 'list_all_files(path: str = ".", exclude_dirs: list = None)': 递归列出目录及其子目录下的所有文件。
  • 'find_files_by_type(path: str = ".", file_type: str = None)': 查找指定类型的文件。

这些工具可以被 LLM 客户端灵活组合和调用,以实现复杂的浏览器自动化和信息处理任务。

信息

分类

网页与API