Skip to main content

中文


mcp-server-requests

An MCP server that provides HTTP request capabilities, enabling LLMs to fetch and process web content.

Features

  • fetch: Web content fetching tool
    • Supports converting web content to Markdown format
    • Supports filtering web content (non-visual elements like script, style, meta)
    • Feeds into LLM context, reducing token consumption through Markdown conversion or filtering non-visual elements
  • fetch_to_file: Web content saving tool
    • Web content is not fed into LLM context, avoiding excessive token consumption
  • http_request: Generic HTTP request tool
    • Full HTTP method support (GET, POST, PUT, PATCH, DELETE)
    • Supports custom request headers
    • Supports text and JSON request bodies
    • Returns complete HTTP response information (status, headers, body) for LLMs
  • Supports custom User-Agent
  • Supports random User-Agent generation
  • Supports using MCP Root capability, controlled by --use-root, usable with MCP Clients that have root capability

Installation

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

Usage

MCP Server Configuration

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

Command Line

0. Start MCP Server

Start the MCP server directly:

python -m mcp_server_requests

Options

  • --user-agent TEXT: Specify custom User-Agent string
  • --random-user-agent [browser=xxx;os=xxx]: Use randomly generated User-Agent
  • --force-user-agent: Force using command line specified User-Agent, ignoring LLM provided UA
  • --list-os-and-browser: List available browsers and OS for random User-Agent generation
  • --use-root: Enable workspace root support for file operations (requires MCP Client with root capability support)
  • --allow-external-file-access: Allow file operations outside workspace (only with --use-root)

Option Details

  • --user-agent and --random-user-agent are mutually exclusive and cannot be used together

  • User-Agent setup methods:

    • Custom string: --user-agent "Mozilla/5.0 (...)"
    • Fully random: --random-user-agent
    • Conditional random generation:
      • Specify browser type: --random-user-agent browser=chrome
      • Specify OS: --random-user-agent os=windows
      • Both browser and OS: --random-user-agent browser=chrome;os=windows
      • Note: Browser and OS parameters are case insensitive
  • Use --list-os-and-browser to view available browsers and OS for --random-user-agent.

  • --force-user-agent option controls User-Agent priority:

    • When --force-user-agent is enabled: Force using command-line specified User-Agent (via --user-agent or --random-user-agent)
    • When --force-user-agent is disabled:
      • If LLM provides User-Agent in headers, use the LLM-provided one
      • Otherwise use command-line specified User-Agent
    • If none specified, use default User-Agent: Mozilla/5.0 (compatible; mcp-server-requests/{version})
  • --use-root enables file operations relative to workspace root:

    • Prerequisite: Requires MCP Client with root capability support
    • When enabled: fetch_to_file allows absolute paths or relative paths, relative paths are relative to workspace root
    • When disabled: fetch_to_file must use absolute paths, files are saved to specified absolute path locations
  • --allow-external-file-access: Controls whether file operations outside workspace are allowed (only usable with --use-root)

    • Prerequisite: Requires --use-root to be enabled, this option has no effect if --use-root is not enabled
    • When enabled: fetch_to_file can operate on files outside the workspace directory
    • When disabled: fetch_to_file can only operate on files within the workspace directory, even if absolute paths are provided, files outside the workspace cannot be operated on

1. fetch - Fetch Web Content

The fetch subcommand is equivalent to the MCP fetch tool functionality, used to demonstrate fetch capabilities.

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

Options:

  • --return-content: Return content type (default: markdown)
    • raw: Return raw unprocessed HTML content (includes response headers)
    • basic_clean: Basic cleanup, removing non-display tags (script, style, meta, etc.) while preserving structure
    • strict_clean: Strict cleanup, removing non-display tags and most HTML attributes, keeping only essential structure
    • markdown: Convert HTML to clean Markdown format

Functionality

MCP Tool Details

1. fetch - Fetch Web Content

Fetch content from the specified URL and return it in the specified format.

Parameters:

  • url (required, string): Target URL, supports HTTP/HTTPS protocols
  • return_content (optional, enum): Content processing format, defaults to "markdown"
    • "raw": Return raw HTML content with complete HTTP response headers
    • "basic_clean": Basic cleanup, removing non-display tags (script, style, meta, etc.) while preserving HTML structure
    • "strict_clean": Strict cleanup, removing non-display tags and most HTML attributes, keeping only essential structure
    • "markdown": Convert HTML content to clean Markdown format

Returns: Content processed according to the specified format


2. fetch_to_file - Fetch Web Content and Save to File

Fetch content from the specified URL and save it to a file.

Parameters:

  • url (required, string): Target URL
  • file_path (required, string): File save path
    • When --use-root is enabled: Must be a relative path (relative to workspace root)
    • When --use-root is disabled: Must be an absolute path
  • return_content (optional, enum): Content processing format, defaults to "markdown", same options as fetch tool

Features:

  • Automatically creates parent directories for nested paths
  • All files saved with UTF-8 encoding
  • When --use-root is enabled, can work with --allow-external-file-access to control file access scope

Returns: Operation result or error message


3. http_request - Generic HTTP Request Tool

Send HTTP requests using any method and get complete responses.

Parameters:

  • url (required, string): Target URL
  • method (optional, enum): HTTP method, defaults to "GET"
    • "GET", "POST", "PUT", "PATCH", "DELETE"
  • query (optional, object): URL query parameters as key-value pairs, automatically URL-encoded
  • headers (optional, object): Custom HTTP request headers
  • data (optional, string): Text format request body data, mutually exclusive with json parameter
  • json (optional, any type): JSON format request body data, mutually exclusive with data parameter

Parameter Constraints:

  • data and json parameters cannot be used together
  • When using json parameter, Content-Type: application/json is automatically set
  • When using data parameter, it's recommended to manually set appropriate Content-Type

Returns: Complete HTTP response (status line, response headers, and response body)


Note: Individual HTTP method tools (http_get, http_post, http_put, http_patch, http_delete) have been removed and replaced by the unified http_request tool.

License

MIT

Metadata

Release files for iflow-mcp_coucya-mcp-server-requests 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_coucya-mcp-server-requests 0.3.0
File Size Uploaded
iflow_mcp_coucya_mcp_server_requests-0.3.0.tar.gz 21.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_coucya-mcp-server-requests 0.3.0
File Interpreter ABI Platform
iflow_mcp_coucya_mcp_server_requests-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 47.0 kB

Release files / iflow_mcp_coucya_mcp_server_requests-0.3.0.tar.gz

Download URL iflow_mcp_coucya_mcp_server_requests-0.3.0.tar.gz
Size 21.6 kB
Tags Source
SHA-256 checksum
How to use checksums
8c4df70a63af1f8f56fce0f8eb104e59556a4b3a40eb71085a5297f8a8150dd0
BLAKE2b-256 checksum
How to use checksums
f44c5841c72efe7873702be97009fd888995894d5d047f96d0074b0dea910139
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_coucya_mcp_server_requests-0.3.0-py3-none-any.whl

Download URL iflow_mcp_coucya_mcp_server_requests-0.3.0-py3-none-any.whl
Size 25.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d0e6d30c7be232de27903c9d9c1c85a871562906309f54049af34d03048a6277
BLAKE2b-256 checksum
How to use checksums
1247af75790db2f08cd562f2523215f2f5f27bc7fdfa7c5e861537bc0d9b60f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page