返回市场
MCP网页搜索服务器

MCP网页搜索服务器

作者:Claw2565 星标更新:2025-02-05

项目介绍

Web 搜索 MCP 服务器

提供具有高级机器人检测规避功能的 Google 搜索能力和网页内容查看功能的 MCP 服务器。

特性

  • 带有高级过滤功能的 Google 自定义搜索
  • 将网页内容转换为 Markdown 格式进行查看
  • 流量限制和缓存
  • 浏览器实例池化
  • 使用 rebrowser-puppeteer 进行机器人检测规避

预备条件

  • Bun 运行时 v1.0 或更高版本
  • Google API 凭据(API 密钥和搜索引擎 ID)

安装

# 安装依赖
bun install

# 构建 TypeScript 文件
bun run build

配置

Cookie 设置

为了访问经过身份验证的站点,你需要:

  1. 安装 Get cookies.txt LOCALLY Chrome 扩展程序
  2. 访问你想要登录的网站并登录
  3. 使用扩展程序导出你的 cookie 到 JSON 格式
  4. 将导出的 cookie 文件存储在一个安全的位置
  5. 设置环境变量 BROWSER_COOKIES_PATH 为你 cookie 文件的绝对路径

MCP 服务器配置

在你的 MCP 设置文件中添加服务器配置:

  • 对于 Cline: %APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json
  • 对于 Claude Desktop:
    • MacOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "web-search": {
      "command": "bun",
      "args": [
        "run",
        "/ABSOLUTE/PATH/TO/web_search_mcp/dist/index.js"
      ],
      "env": {
        "GOOGLE_API_KEY": "your_api_key",
        "GOOGLE_SEARCH_ENGINE_ID": "your_search_engine_id",
        "MAX_CONCURRENT_BROWSERS": "3",
        "BROWSER_TIMEOUT": "30000",
        "RATE_LIMIT_WINDOW": "60000",
        "RATE_LIMIT_MAX_REQUESTS": "60",
        "SEARCH_CACHE_TTL": "3600",
        "VIEW_URL_CACHE_TTL": "7200",
        "MAX_CACHE_ITEMS": "1000",
        "BROWSER_POOL_MIN": "1",
        "BROWSER_POOL_MAX": "5",
        "BROWSER_POOL_IDLE_TIMEOUT": "30000",
        "REBROWSER_PATCHES_RUNTIME_FIX_MODE": "addBinding",
        "REBROWSER_PATCHES_SOURCE_URL": "jquery.min.js",
        "REBROWSER_PATCHES_UTILITY_WORLD_NAME": "util",
        "REBROWSER_PATCHES_DEBUG": "0",
        "BROWSER_COOKIES_PATH": "C:\\path\\to\\cookies.json",
        "LOG_LEVEL": "info",
        无色输出设置为 "1"
        "BUN_FORCE_COLOR": "1",
        "FORCE_COLOR": "1"
      }
    }
  }
}

替换 /ABSOLUTE/PATH/TO/web_search_mcp 为你服务器目录的绝对路径。

日志配置

以下环境变量控制日志行为:

  • LOG_LEVEL: 设置日志级别(error, warn, info, debug)。默认值:info
  • NO_COLOR: 当设置为 "1" 时禁用彩色输出
  • BUN_FORCE_COLOR: 控制 Bun 运行时的彩色输出(设置为 "0" 以禁用)
  • FORCE_COLOR: 控制全局的彩色输出(设置为 "0" 以禁用)

机器人检测规避

此服务器使用 rebrowser-puppeteer 来避免机器人检测:

  1. 运行时启用泄漏预防:

    • 使用 addBinding 技术来避免运行时启用检测
    • 支持 web 工作者和 iframe
    • 维护对主世界上下文的访问
  2. 源 URL 掩蔽:

    • 更改 Puppeteer 的 sourceURL 使其看起来像一个合法的脚本
    • 帮助避免自动化工具的检测
  3. 实用世界名称:

    • 使用通用的实用世界名称
    • 通过世界名称模式防止检测
  4. 浏览器启动配置:

    • 禁用自动化标志
    • 使用优化的 Chrome 参数
    • 配置视口和窗口设置

与 Claude Desktop 一起使用

  1. 确保已安装并更新到最新版本的 Claude Desktop

  2. 打开你的 Claude Desktop 配置文件:

    • MacOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  3. 如上所述,在 配置 部分添加服务器配置。

  4. 重启 Claude Desktop

  5. 查找锤子图标 确认工具可用

可用工具

1. 搜索工具

{
  name: "search",
  params: {
    query: string;
    trustedDomains?: string[];
    excludedDomains?: string[];
    resultCount?: number;
    safeSearch?: boolean;
    dateRestrict?: string;
  }
}

2. 查看 URL 工具

{
  name: "view_url",
  params: {
    url: string;
    includeImages?: boolean;
    includeVideos?: boolean;
    preserveLinks?: boolean;
    formatCode?: boolean;
  }
}

故障排除

Claude Desktop 集成问题

  1. 检查日志:

    # MacOS/Linux
    tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
    
    # Windows
    type %APPDATA%\Claude\Logs\mcp*.log
    
  2. 常见问题:

    • 服务器未显示:检查配置文件语法和路径
    • 工具调用失败:检查服务器日志并重启 Claude Desktop
    • 路径问题:确保使用绝对路径

更多详细的故障排除,请参阅 MCP 调试指南

开发

# 在开发模式下运行并监视更改
bun --watch run dev

# 运行测试
bun run test

# 运行代码检查
bun run lint

重要注意事项

  1. 机器人检测:

    • 机器人检测规避功能有助于防止大多数常见的检测方法
    • 但可能还需要采取额外措施,如适当的代理和用户代理
    • 一些网站仍可能通过其他方式检测自动化
  2. 性能:

    • 浏览器实例被池化并重复使用
    • 空闲浏览器会自动清理
    • 资源限制防止过载

许可证

MIT