项目简介

MCP-GetWeb是一个遵循Model Context Protocol (MCP) 标准的服务器,专门为大型语言模型(LLM)设计,使其能够安全、可靠地执行各种Web操作。它将复杂的网络搜索和内容提取功能封装成易于LLM调用的工具,从而允许LLM访问互联网的实时信息和丰富内容。

主要功能点

  • DuckDuckGo搜索: 提供隐私友好的Web搜索功能,支持对搜索结果进行分页和控制返回数量。
  • Google搜索: 通过Google Programmable Search Engine进行高级Web搜索,支持多种筛选条件,如限制搜索的特定站点、语言、日期范围、精确短语匹配以及指定结果类型(如图片、新闻、视频)。
  • Felo AI搜索: 提供AI驱动的搜索服务,专门用于获取最新的技术信息,包括软件发布、安全公告、迁移指南、性能基准和社区洞察等。
  • URL内容获取器 ('fetch-url'): 从指定URL获取纯净的网页文本内容。支持自定义内容最大长度、尝试提取网页主要内容、选择是否包含链接文本和图片Alt文本,以及排除特定的HTML标签以去除冗余或不必要的内容。
  • URL元数据提取器 ('url-metadata'): 从URL中提取关键元数据,包括网页标题、描述、Open Graph图片('og:image')和网站的Favicon。
  • URL转Markdown转换器 ('url-fetch'): 获取网页内容并将其智能转换为Markdown格式。能处理HTML、纯文本和JSON数据(JSON会被美化并放入代码块中)。
  • Jina Reader ('jina-reader'): 使用Jina r.reader API从URL提取对LLM友好的内容。支持选择返回格式(Markdown、HTML、纯文本、截图等)、链接和图片摘要生成、绕过缓存以及设置请求超时时间。

安装步骤

  1. 确保Node.js环境: 本项目通过'npx'命令启动,因此您的系统需要安装Node.js。
  2. 安装项目: 您可以通过npm全局安装'mcp-getweb'包:
    npm install -g mcp-getweb
    或者,您可以直接使用'npx'运行它,它会在执行前自动下载并运行:
    npx mcp-getweb
  3. 配置API密钥(可选):
    • Google搜索: 如果您希望使用Google搜索工具,需要配置'GOOGLE_API_KEY'和'GOOGLE_SEARCH_ENGINE_ID'。
    • Jina Reader: 如果您希望使用Jina Reader工具,需要配置'JINA_API_KEY'。 这些密钥可以通过环境变量或在启动服务器时作为命令行参数提供(例如:'--google-api-key YOUR_KEY --jina-api-key YOUR_JINA_KEY')。

服务器配置

MCP客户端通常需要一个JSON格式的配置来启动并连接到MCP服务器。以下是针对MCP-GetWeb服务器的典型配置示例。请将'YOUR_GOOGLE_API_KEY'、'YOUR_GOOGLE_SEARCH_ENGINE_ID'和'YOUR_JINA_API_KEY'替换为您的实际密钥。

{
  "mcpServers": {
    "getweb": {
      "command": "npx",
      "args": [
        "mcp-getweb"
      ],
      "type": "stdio",
      "env": {
        "GOOGLE_API_KEY": "YOUR_GOOGLE_API_KEY",
        "GOOGLE_SEARCH_ENGINE_ID": "YOUR_GOOGLE_SEARCH_ENGINE_ID",
        "JINA_API_KEY": "YOUR_JINA_API_KEY"
      }
    }
  }
}
  • '"mcpServers"': 这是一个用于定义所有MCP服务器的顶级键。
  • '"getweb"': 这是此特定MCP服务器实例的唯一名称。您的MCP客户端将使用此名称来引用和与其交互。
  • '"command": "npx"': 指定用于启动MCP服务器进程的命令。在这种情况下,是Node.js的包执行工具'npx'。
  • '"args": ["mcp-getweb"]': 提供给'command'的参数列表。'mcp-getweb'是安装的npm包名,'npx'会执行该包的默认可执行文件。
  • '"type": "stdio"': 指示MCP客户端应通过标准输入/输出(stdin/stdout)与服务器通信,这是MCP协议支持的一种传输方式。
  • '"env"': 这是一个可选对象,用于为服务器进程设置环境变量。
    • '"GOOGLE_API_KEY"': 您的Google Custom Search API密钥,启用'google-search'工具的必要条件。
    • '"GOOGLE_SEARCH_ENGINE_ID"': 您的Google Custom Search Engine ID,启用'google-search'工具的必要条件。
    • '"JINA_API_KEY"': 您的Jina AI r.reader API密钥,启用'jina-reader'工具的必要条件。

基本使用方法

一旦MCP-GetWeb服务器启动并被MCP客户端成功连接,LLM就可以通过JSON-RPC协议调用其提供的各种工具。

  1. 列出可用工具: LLM客户端可以发送一个'tools/list'请求,以获取服务器当前支持的所有工具及其详细定义(包括名称、描述和输入参数Schema)。
  2. 调用工具: LLM客户端根据其任务需求,选择合适的工具并发送'tools/call'请求,提供相应的参数。

例如: 如果LLM需要搜索“最新的AI技术进展”,它将向MCP-GetWeb服务器发送一个'tools/call'请求,指定工具名称为'duckduckgo-search',并提供查询参数:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "duckduckgo-search",
    "arguments": {
      "query": "最新的AI技术进展"
    }
  }
}

MCP-GetWeb服务器接收到此请求后,将执行DuckDuckGo搜索,并将格式化的搜索结果通过JSON-RPC响应返回给LLM客户端。

信息

分类

网页与API