项目简介

本项目 'mcp-server-requests' 是一个实现了 Model Context Protocol (MCP) 的服务器,专注于提供 HTTP 请求功能。它扩展了 LLM 的能力,使其能够通过发送 HTTP 请求来访问互联网资源,例如抓取网页内容、调用 Web API 等。

主要功能点

  • 网页内容获取: 支持获取指定 URL 的网页内容,并可选择返回完整 HTML、过滤后的 HTML 内容或转换为 Markdown 格式。
  • 多种 HTTP 方法: 支持常用的 HTTP 请求方法,包括 GET, POST, PUT, DELETE 和 PATCH。
  • 自定义请求头: 允许设置自定义 HTTP 请求头,包括 User-Agent,以模拟不同的客户端行为或满足 API 的要求。
  • User-Agent 管理: 提供灵活的 User-Agent 管理选项,包括自定义 User-Agent、随机 User-Agent 以及强制使用指定 User-Agent 的模式。
  • 请求参数和数据: 支持在 HTTP 请求中包含查询参数、文本数据或 JSON 数据作为请求体。

安装步骤

  1. 克隆仓库

    git clone https://github.com/coucya/mcp-server-requests.git
    cd mcp-server-requests
  2. 安装 Python 包

    确保已安装 Python 和 pip,然后运行以下命令安装项目依赖:

    pip install .

服务器配置

要将 'mcp-server-requests' 配置为 MCP 服务器,您需要在 MCP 客户端的配置文件中添加如下服务器配置信息。这将告诉 MCP 客户端如何启动和连接到此 HTTP 请求服务器。

{
    "mcpServers": {
        "mcp-server-requests": {
            "command": "python",
            "args": [
                "-m",
                "mcp_server_requests"
            ],
            "description": "HTTP 请求 MCP 服务器"  // (可选) 服务器的描述信息,方便识别
        }
    }
}

参数说明:

  • 'server name': 'mcp-server-requests' - 服务器名称,在客户端配置中用于标识和引用此服务器。
  • 'command': '"python"' - 启动服务器的命令,这里使用 Python 解释器。
  • 'args': '["-m", "mcp_server_requests"]' - 传递给 'command' 的参数,'-m mcp_server_requests' 表示以模块方式运行 'mcp_server_requests' 包,即启动服务器程序。

可选参数:

启动服务器时,您可以通过命令行选项进行更详细的配置,例如 User-Agent 设置。以下是一些常用的选项及其在 'args' 中的配置方式:

  • '--user-agent TEXT': 指定自定义 User-Agent 字符串。

    "args": ["-m", "mcp_server_requests", "--user-agent", "My Custom User Agent"]
  • '--random-user-agent [browser=xxx;os=xxx]': 使用随机 User-Agent。可以指定浏览器和操作系统类型。

    • 随机 User-Agent:
      "args": ["-m", "mcp_server_requests", "--random-user-agent"]
    • 指定浏览器 (例如 Chrome):
      "args": ["-m", "mcp_server_requests", "--random-user-agent", "browser=chrome"]
    • 指定操作系统 (例如 Windows):
      "args": ["-m", "mcp_server_requests", "--random-user-agent", "os=windows"]
    • 指定浏览器和操作系统 (例如 Chrome on Windows):
      "args": ["-m", "mcp_server_requests", "--random-user-agent", "browser=chrome;os=windows"]
  • '--force-user-agent': 强制使用指定的或随机生成的 User-Agent,忽略 LLM 客户端提供的 User-Agent。

    "args": ["-m", "mcp_server_requests", "--force-user-agent"]
  • '--list-os-and-browser': 列出可用于 '--random-user-agent' 的浏览器和操作系统列表 (此选项用于查看可用列表,通常不用于服务器长期运行配置)。

注意: '--user-agent' 和 '--random-user-agent' 选项不能同时使用。

基本使用方法

配置完成后,MCP 客户端即可调用 'mcp-server-requests' 服务器提供的工具。以下是一些可用的工具及其基本用法:

  1. fetch: 获取网页内容。

    • 工具名: 'fetch'
    • 参数:
      • 'url' (必填): 目标网页 URL。
      • 'return_content' (可选): 返回内容类型,可选值包括 '"full"', '"content"', '"markdown"',默认为 '"markdown"'。
    • 示例 (MCP 请求示例,非代码):
      {
        "tool_calls": [
          {
            "id": "fetch-tool-1",
            "type": "function",
            "function": {
              "name": "fetch",
              "arguments": {
                "url": "https://example.com",
                "return_content": "markdown"
              }
            }
          }
        ]
      }
  2. http_get: 执行 HTTP GET 请求。

    • 工具名: 'http_get'
    • 参数:
      • 'url' (必填): 目标 URL。
      • 'query' (可选): 查询参数,字典形式。
      • 'headers' (可选): 自定义请求头,字典形式。
    • 示例 (MCP 请求示例,非代码):
      {
        "tool_calls": [
          {
            "id": "http-get-tool-1",
            "type": "function",
            "function": {
              "name": "http_get",
              "arguments": {
                "url": "https://api.example.com/data",
                "query": {
                  "param1": "value1",
                  "param2": 123
                },
                "headers": {
                  "X-Custom-Header": "custom-value"
                }
              }
            }
          }
        ]
      }
  3. http_post, http_put, http_patch, http_delete: 分别对应 HTTP POST, PUT, PATCH, DELETE 请求,参数类似 'http_get','http_post' 等方法还支持 'data' (文本请求体) 和 'json' (JSON 请求体) 参数。具体参数请参考仓库 README 文档中 "可用工具" 部分的详细描述。

通过以上配置和使用方法,您的 LLM 应用即可利用 'mcp-server-requests' 提供的 HTTP 请求能力,访问和处理网络数据,从而扩展应用的功能和应用场景。

信息

分类

网页与API