M

MCP Server Requests 工具

@coucya/mcp-server-requests
0 Stars 478 次浏览 coucya 更新于 2026-08-23

网页内容检索(完整网页、过滤后的内容或转换为Markdown格式的内容)、自定义用户代理、多HTTP方法支持(GET/POST/PUT/DELETE/PATCH)、大型语言模型控制的请求头、大型语言模型可访问的响应头等。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "mcp-server-requests": {
      "args": [
        "-m",
        "mcp_server_requests"
      ],
      "command": "python"
    }
  }
}

服务介绍

中文


mcp-server-requests

一个提供 HTTP 请求功能的 MCP 服务器,使 LLM 能够获取和处理网页内容。

功能

  • 支持将网页内容转换为 Markdown 格式
  • 支持过滤掉对 LLM 无用的内容
  • 支持自定义 User-Agent 头
  • 支持随机 User-Agent 头
  • 支持在 HTTP 请求中自定义请求头
  • 支持完整的 HTTP 方法(GET、POST、PUT、DELETE、PATCH)
  • LLM 可以访问完整的 HTTP 响应头信息

安装

git clone https://github.com/coucya/mcp-server-requests.git
cd mcp-server-requests
pip install .

使用

MCP 服务器配置

{
    "mcpServers": {
        "mcp-server-requests": {
            "command": "python",
            "args": [
                "-m",
                "mcp_server_requests"
            ]
        }
    }
}

命令行

0. 启动 MCP 服务器

直接启动 MCP 服务器:

python -m mcp_server_requests

选项

  • --user-agent TEXT: 指定自定义的 User-Agent 字符串
  • --random-user-agent [browser=xxx;os=xxx]: 使用随机生成的 User-Agent
  • --force-user-agent: 强制使用命令行指定的 User-Agent,忽略 LLM 提供的 UA
  • --list-os-and-browser: 列出用于随机 User-Agent 生成的可用浏览器和操作系统

选项详情

  • --user-agent--random-user-agent 是互斥的,不能同时使用

  • User-Agent 设置方法:

    • 自定义字符串:--user-agent "Mozilla/5.0 (...)"
    • 完全随机:--random-user-agent
    • 条件随机生成:
      • 指定浏览器类型:--random-user-agent browser=chrome
      • 指定操作系统:--random-user-agent os=windows
      • 同时指定浏览器和操作系统:--random-user-agent browser=chrome;os=windows
      • 注意:浏览器和操作系统的参数不区分大小写
  • 使用 --list-os-and-browser 查看 --random-user-agent 的可用浏览器和操作系统。

  • --force-user-agent 控制 User-Agent 的优先级:

    • 当启用时:优先使用命令行指定的 User-Agent(通过 --user-agent--random-user-agent),忽略 LLM 提供的 UA
    • 当禁用时:
      • 如果 LLM 提供了 User-Agent,则使用该 UA
      • 否则使用命令行指定的 User-Agent

1. fetch - 获取网页内容

fetch 子命令等同于 fetch 工具的功能,展示了获取能力。

python -m mcp_server_requests fetch <URL> [--return-content {raw,basic_clean,strict_clean,markdown}]

选项:

  • --return-content: 返回内容类型(默认:markdown)
    • raw: 返回未经处理的原始 HTML 内容
    • basic_clean: 基本清理,移除如 script、style 等非显示标签
    • strict_clean: 严格清理,移除非显示标签和大多数 HTML 属性
    • markdown: 将 HTML 转换为干净的 Markdown 格式

示例:

python -m mcp_server_requests fetch https://example.com

2. get - 执行 HTTP GET 请求

get 子命令等同于 http_get 工具的功能,展示了 http_get 能力。

python -m mcp_server_requests get <URL> [--headers HEADERS]

选项:

  • --headers: 自定义请求头(格式:"key1=value1;key2=value2")

3. post - 执行 HTTP POST 请求

post 子命令等同于 http_post 工具的功能,展示了 http_post 能力。

python -m mcp_server_requests post <URL> [--headers HEADERS] [--data TEXT]

选项:

  • --headers: 自定义请求头
  • --data: 请求体数据

4. put - 执行 HTTP PUT 请求

put 子命令等同于 http_put 工具的功能,展示了 http_put 的能力。

python -m mcp_server_requests put <URL> [--headers HEADERS] [--data TEXT]

选项:与 POST 方法相同


5. delete - 执行 HTTP DELETE 请求

delete 子命令等同于 http_delete 工具的功能,展示了 http_delete 的能力。

python -m mcp_server_requests delete <URL> [--headers HEADERS] [--data TEXT]

选项:与 POST 方法相同


功能

可用工具

  1. fetch - 获取网页内容

    • 参数:
      • url (必需): 目标 URL
      • return_content (可选): 返回内容类型 ('raw', 'basic_clean', 'strict_clean', 'markdown')
        • raw: 返回原始 HTML 内容
        • basic_clean: 返回过滤后的 HTML 内容,移除如 script, style 等非显示标签
        • strict_clean: 返回过滤后的 HTML 内容,移除非显示标签和大多数无用的 HTML 属性
        • markdown: 将 HTML 转换为 Markdown 后返回
  2. http_get - 执行 HTTP GET 请求

    • 参数:
      • url (必需): 目标 URL
      • query (可选): 查询参数键值对
      • headers (可选): 自定义请求头
        • LLM 可以在 headers 中指定 User-Agent,是否使用它由 --force-user-agent 控制(对其他工具同样适用)
  3. http_post - 执行 HTTP POST 请求

    • 参数:
      • url (必需): 目标 URL
      • query (可选): 查询参数键值对
      • headers (可选): 自定义请求头
      • data (可选): 请求体数据(文本)
      • json (可选): 请求体数据(JSON)
      • datajson 不能同时使用
  4. http_put - 执行 HTTP PUT 请求

    • 参数:与 http_post 相同
  5. http_patch - 执行 HTTP PATCH 请求

    • 参数:与 http_post 相同
  6. http_delete - 执行 HTTP DELETE 请求

    • 参数:与 http_post 相同

许可证

MIT

相关 MCP 服务