网页内容抓取工具

一个移除robots.txt检查的模型上下文协议服务器,提供网页内容抓取功能,将HTML转换为Markdown以便于处理。

  • by LangGPT
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 LangGPT/mcp-fetch

使用说明

MCP提取

提供web内容获取功能的模型上下文协议服务器 已删除robots.txt检查此服务器使LLM能够从网页中检索和处理内容,将HTML转换为markdown以便于使用。

这是原始mcp服务器获取的修改版本,删除了所有robots.txt检查,允许不受限制地访问web内容。

[!小心] 此服务器可以访问本地/内部IP地址,可能存在安全风险。使用此MCP服务器时请小心,以确保不会暴露任何敏感数据。此外,此版本忽略了可能违反某些网站访问策略的robots.txt限制。

fetch工具将截断响应,但通过使用 start_index 参数,您可以指定从哪里开始内容提取。这让模型可以分块阅读网页,直到找到所需的信息。

可用工具

  • fetch -从互联网获取URL并将其内容提取为markdown。
    • url (字符串,必填):要获取的URL
    • max_length (整数,可选):返回的最大字符数(默认值:5000)
    • start_index (整数,可选):从此字符索引开始内容(默认值:0)
    • raw (boolean,可选):获取原始内容而不进行markdown转换(默认值:false)

可用提示

  • 获取
    • 获取一个URL并将其内容提取为markdown
    • 论据:
      • url (字符串,必填):要获取的URL

安装和使用

地方发展设置

  1. 克隆或下载源代码:

    git clone https://github.com/LangGPT/mcp-fetch.git
    cd mcp-fetch
    
  2. 使用uv安装依赖项:

    uv sync
    
  3. 测试服务器:

    uv run python -m mcp_fetch --help
    

与Claude Desktop一起使用(本地源代码)

  1. 创建Claude桌面配置:

    {
      "mcpServers": {
        "mcp-fetch": {
          "command": "uv",
          "args": [
            "run",
            "--directory",
            "/path/to/your/mcp-fetch",
            "python",
            "-m",
            "mcp_fetch"
          ]
        }
      }
    }
    
  2. 将配置添加到Claude Desktop:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 窗户: %APPDATA%/Claude/claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  3. 重新启动克劳德桌面 加载新服务器。

与VS代码(本地源代码)一起使用

添加到您的VS代码设置或 .vscode/mcp.json:

{
  "mcp": {
    "servers": {
      "mcp-fetch": {
        "command": "uv",
        "args": [
          "run",
          "--directory",
          "/path/to/your/mcp-fetch",
          "python",
          "-m",
          "mcp_fetch"
        ]
      }
    }
  }
}

通过包管理器安装

使用紫外线(推荐)

使用时 uv 不需要特定的安装。我们将 使用 uvx 直接运行 mcp获取:

uvx mcp-fetch

使用pip

pip install mcp-fetch

安装后,按以下方式运行:

python -m mcp_fetch

包管理器配置

带uvx的克劳德桌面

{
  "mcpServers": {
    "mcp-fetch": {
      "command": "uvx",
      "args": ["mcp-fetch"]
    }
  }
}

带有uvx的VS代码

{
  "mcp": {
    "servers": {
      "mcp-fetch": {
        "command": "uvx",
        "args": ["mcp-fetch"]
      }
    }
  }
}

发展

建立开发环境

  1. 安装开发依赖项:

    uv sync --dev
    
  2. 运行linting和类型检查:

    uv run ruff check
    uv run pyright
    
  3. 构建包:

    uv build
    

测试

在本地测试服务器:

uv run python -m mcp_fetch

使用MCP检查器进行调试:

npx @modelcontextprotocol/inspector uv run python -m mcp_fetch

进行更改

  1. 在中编辑源代码 src/mcp_fetch/
  2. 使用测试您的更改 uv run python -m mcp_fetch
  3. 更新版本 pyproject.toml 如有需要
  4. 运行测试和梳理

出版

发布到PyPI

  1. 构建包:

    uv build
    
  2. 发布到PyPI:

    uv publish
    

    或使用麻绳:

    pip install twine
    twine upload dist/*
    

发布到GitHub

  1. 初始化git存储库(如果尚未完成):

    git init
    git branch -m main
    
  2. 添加和提交文件:

    git add .
    git commit -m "Initial commit: MCP Web Fetch server without robots.txt checking"
    
  3. 创建GitHub存储库并推送:

    # Create repository on GitHub first, then:
    git remote add origin https://github.com/LangGPT/mcp-fetch.git
    git push -u origin main
    
  4. 在GitHub上创建一个版本:

    • 转到GitHub上的存储库
    • 点击“发布”→ “创建新版本”
    • 标签版本: v0.6.3
    • 发布标题: v0.6.3 - MCP Fetch
    • 描述您的更改
    • 发布发布

构建Docker镜像

docker build -t mcp-fetch .
docker tag mcp-fetch LangGPT/mcp-fetch:latest
docker push LangGPT/mcp-fetch:latest

定制

robots.txt

此版本已完全删除robots.txt检查。 无论robots.txt的限制如何,所有网络请求都将继续进行。

用户代理

默认情况下,根据请求是来自模型(通过工具)还是由用户发起(通过提示) 服务器将使用用户代理:

ModelContextProtocol/1.0 (Autonomous; +https://github.com/modelcontextprotocol/servers)

或者:

ModelContextProtocol/1.0 (User-Specified; +https://github.com/modelcontextprotocol/servers)

这可以通过添加参数进行自定义 --user-agent=YourUserAgent 到 args 配置中的列表。

代理

可以使用以下命令将服务器配置为使用代理 --proxy-url 争论。

调试

您可以使用MCP检查器调试服务器:

对于当地发展:

npx @modelcontextprotocol/inspector uv run python -m mcp_fetch

对于uvx安装:

npx @modelcontextprotocol/inspector uvx mcp-fetch

贡献

我们鼓励捐款以帮助扩大和改善mcp获取。无论您是想添加新工具、增强现有功能还是改进文档,您的意见都是有价值的。

许可证

mcp-fetch是根据MIT许可证授权的。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。