MCP Server Requests 工具
网页内容检索(完整网页、过滤后的内容或转换为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
- 当启用时:优先使用命令行指定的 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 方法相同
功能
可用工具
-
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 后返回
- 参数:
-
http_get - 执行 HTTP GET 请求
- 参数:
- url (必需): 目标 URL
- query (可选): 查询参数键值对
- headers (可选): 自定义请求头
- LLM 可以在 headers 中指定 User-Agent,是否使用它由
--force-user-agent控制(对其他工具同样适用)
- LLM 可以在 headers 中指定 User-Agent,是否使用它由
- 参数:
-
http_post - 执行 HTTP POST 请求
- 参数:
- url (必需): 目标 URL
- query (可选): 查询参数键值对
- headers (可选): 自定义请求头
- data (可选): 请求体数据(文本)
- json (可选): 请求体数据(JSON)
- data 和 json 不能同时使用
- 参数:
-
http_put - 执行 HTTP PUT 请求
- 参数:与 http_post 相同
-
http_patch - 执行 HTTP PATCH 请求
- 参数:与 http_post 相同
-
http_delete - 执行 HTTP DELETE 请求
- 参数:与 http_post 相同
许可证
MIT