项目简介
本项目 '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 数据作为请求体。
安装步骤
-
克隆仓库
git clone https://github.com/coucya/mcp-server-requests.git cd mcp-server-requests -
安装 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"]
- 随机 User-Agent:
-
'--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' 服务器提供的工具。以下是一些可用的工具及其基本用法:
-
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" } } } ] }
-
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" } } } } ] }
-
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