mcpField
H
HTTPX_MCP

HTTPX_MCP

github.com/zhefox框架与 SDK019 周前更新

关于 HTTPX_MCP

HTTPX MCP 使用 httpx 库,让 AI 客户端测试 HTTP 接口。它支持常见请求方法和原始请求重放,并显示响应详情,默认限制对非公网地址的访问。

主要功能

  1. 01支持 7 种 HTTP 方法
  2. 02支持 JSON、表单和纯文本正文
  3. 03自定义请求头与查询参数
  4. 04重放捕获的原始请求
  5. 05显示状态码、响应头、正文和耗时
  6. 06默认阻止访问非公网地址

适用场景

  1. 01测试 REST API 端点
  2. 02调试时检查 HTTP 响应
  3. 03发送自定义请求进行安全测试
  4. 04重放 Burp Suite 捕获的请求

MCP 相关

它通过 `http_request` 和 `http_raw` 两个 MCP 工具发送 HTTP 请求并重放原始请求文本。服务默认阻止向非公网地址发起请求。

详细介绍

HTTPX MCP

一个基于 httpx 库构建、面向 AI 的 HTTP 接口测试 MCP 工具。

功能

  • 🚀 全面支持 HTTP 方法:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS
  • 📝 支持多种请求格式:JSON、表单数据、原始文本
  • 🔧 自定义请求头:支持任意 HTTP 请求头
  • 📋 解析原始请求:直接粘贴 Burp Suite 捕获的请求
  • ⏱️ 响应详情:状态码、响应头、响应正文、耗时统计
  • 🔒 SSL 控制:可选择验证 SSL 证书

安装

cd httpx-mcp
pip install -e .

或

pip install httpx-mcp

MCP 配置

添加到 MCP 配置文件中:

{
  "mcpServers": {
    "httpx-mcp": {
      "command": "python",
      "args": ["-m", "httpx_mcp.server"],
      "cwd": "c:/Users/ZHEFOX/Desktop/mcptools/httpx-mcp"
    }
  }
}

或在安装后直接使用:

{
  "mcpServers": {
    "httpx-mcp": {
      "command": "httpx-mcp"
    }
  }
}

安全

httpx-mcp 可以从 MCP 服务运行所在的机器发起出站 HTTP 请求。为降低工具调用受大模型输出或提示词注入影响时的 SSRF 风险,默认会阻止向非公共网络地址发送请求。这包括 localhost/loopback、RFC1918 私有地址范围、云元数据端点等链路本地地址、IPv6 唯一本地地址,以及其他无法通过全球路由访问的目标。每次重定向前都会验证重定向目标。

对于有意需要访问内部网络的可信隔离安全测试环境,可在 MCP 服务环境中设置 HTTPX_MCP_ALLOW_PRIVATE_NETWORK=true:

{
  "mcpServers": {
    "httpx-mcp": {
      "command": "httpx-mcp",
      "env": {
        "HTTPX_MCP_ALLOW_PRIVATE_NETWORK": "true"
      }
    }
  }
}

只有在了解启用此选项后,该工具便可访问 MCP 服务进程能够访问的任意 HTTP(S) 端点时,才启用此选项。

可用工具

1. http_request - 通用 HTTP 请求

发送任意 HTTP 请求,通过 method 参数切换请求方法。

参数:

参数类型必填默认值说明
urlstring✅-完整 URL
methodstring-GETHTTP 方法:GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS
paramsstring--URL 查询参数,支持 JSON 或 key=value 格式
headersstring--请求头,JSON 格式
bodystring--请求正文
content_typestring-application/jsonContent-Type
timeoutnumber-30超时时间,单位为秒
follow_redirectsboolean-true是否跟随重定向
verify_sslboolean-true是否验证 SSL
include_headersboolean-true是否在响应中包含请求头

示例:

# GET request
method="GET", url="https://httpbin.org/get"

# GET with query parameters
method="GET", url="https://httpbin.org/get", params='{"page": "1", "size": "10"}'

# POST JSON
method="POST", url="https://httpbin.org/post", body='{"name": "test", "value": 123}'

# PUT update
method="PUT", url="https://httpbin.org/put", body='{"id": 1, "name": "updated"}'

# DELETE
method="DELETE", url="https://httpbin.org/delete"

# With authentication header
method="GET", url="https://api.example.com/users", headers='{"Authorization": "Bearer token123"}'

# POST form
method="POST", url="https://httpbin.org/post", body="username=admin&password=123", content_type="application/x-www-form-urlencoded"

# Disable SSL verification
method="GET", url="https://self-signed.example.com", verify_ssl=false
2. http_raw - 原始 HTTP 请求

直接解析由 Burp Suite 等工具捕获的原始 HTTP 请求。

参数:

参数类型必填默认值说明
raw_requeststring✅-原始 HTTP 请求文本
base_urlstring--基础 URL(如果请求中不包含完整 URL)
verify_sslboolean-true是否验证 SSL

示例:

raw_request="""
POST /api/login HTTP/1.1
Host: example.com
Content-Type: application/json
Cookie: session=abc123

{"username":"admin","password":"123456"}
"""
base_url="https://example.com"

响应格式

该工具会返回格式化的响应信息:

HTTP/1.1 200 OK

=== Response Headers ===
content-type: application/json
date: Mon, 01 Jan 2024 00:00:00 GMT
...

=== Response Body ===
{
  "result": "success",
  "data": {...}
}

=== Request Info ===
Time: 0.234s
Size: 1024 bytes

使用场景

  1. API 测试:快速测试 REST API 端点
  2. 安全测试:发送自定义载荷进行安全测试
  3. 接口调试:查看详细的请求/响应信息
  4. 请求重放:直接使用 Burp 捕获的内容重放请求

许可证

MIT

致谢

Syed Anas Mohiuddin 私下报告了 SSRF 加固问题。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。