This project implements a secure URL fetching tool using FastMCP.
- Python 3.7+
- uv (Python package installer and environment manager)
- Install uv if you haven't already:
pip install uv
- Create a new virtual environment and install dependencies:
uv venv
source .venv/bin/activate
uv pip install fastmcp requests
- Set the allowlist environment variable (optional):
export SECURE_FETCH_ALLOWLIST="example.com,trusted-domain.org"
- Run the script:
uv run main.py
- Fetches URLs securely
- Resolves domains to IPs
- Checks for private/internal IPs
- Handles redirects (up to 3)
- Supports custom HTTP methods and headers
- Uses an allowlist for trusted domains/IPs
- The tool prevents access to private/internal IPs unless explicitly allowed
- Only HTTP and HTTPS schemes are permitted
- SNI is set to match the hostname for HTTPS connections
Once the script is running, you can use the fetch_url
function to securely fetch URLs. The function will return a dictionary containing the status code, response body, and content length.
This tool is designed for secure URL fetching. Always review and understand the code before using it in your environment.