AgentStack
MCP verified MIT Self-run

Fetchv2 Mcp Server

mcp-praveenc-fetchv2-mcp-server · by praveenc

A robust MCP server for fetching and extracting web content using Trafilatura. Optimized for AI agents with clean markdown output.

No reviews yet
0 installs
16 views
0.0% view→install

Install

$ agentstack add mcp-praveenc-fetchv2-mcp-server

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Fetchv2 Mcp Server? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

FetchV2 MCP Server

[](https://pypi.org/project/fetchv2-mcp-server/) [](https://github.com/praveenc/fetchv2-mcp-server/actions/workflows/ci.yml) [](https://www.python.org/downloads/) [](https://opensource.org/licenses/MIT)

Model Context Protocol (MCP) server for web content fetching and extraction.

This MCP server provides tools to fetch webpages, extract clean content using Trafilatura, and discover links for batch processing.

Features

  • Fetch Webpages: Extract clean markdown content from any URL
  • Batch Fetching: Fetch up to 10 URLs in a single request
  • Link Discovery: Find and filter links on any webpage
  • llms.txt Support: Parse and fetch LLM-friendly documentation indexes
  • Smart Extraction: Trafilatura removes boilerplate (navbars, ads, footers)
  • Robots.txt Compliance: Respects robots.txt with graceful timeout handling
  • Pagination Support: Handle large pages with start_index parameter

Prerequisites

  1. Install uv from Astral
  2. Install Python 3.10 or newer using uv python install 3.10

Installation

| Cursor | VS Code | | ------ | ------- | | Install MCP Server | Install on VS Code |

Or configure manually in your MCP client:

{
  "mcpServers": {
    "fetchv2": {
      "command": "uvx",
      "args": ["fetchv2-mcp-server@latest"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

Config file locations:

  • Claude Desktop (macOS): ~/Library/Application Support/Claude/claude_desktop_config.json
  • Claude Desktop (Windows): %APPDATA%\Claude\claude_desktop_config.json
  • Windsurf: ~/.codeium/windsurf/mcp_config.json
  • Kiro: .kiro/settings/mcp.json in your project

Install from PyPI

# Using uv
uv add fetchv2-mcp-server

# Using pip
pip install fetchv2-mcp-server

Basic Usage

Example prompts to try:

  • "Fetch the documentation from ``"
  • "Find all links on `` that contain 'tutorial'"
  • "Read these three pages and summarize the differences: [url1, url2, url3]"

Available Tools

fetch

Fetches a webpage and extracts its main content as clean markdown.

fetch(url: str, max_length: int = 5000, start_index: int = 0) -> str

| Parameter | Type | Default | Description | | --------- | ---- | ------- | ----------- | | url | str | required | The webpage URL to fetch | | max_length | int | 5000 | Maximum characters to return | | start_index | int | 0 | Character offset for pagination | | get_raw_html | bool | false | Skip extraction, return raw HTML | | include_metadata | bool | true | Include title, author, date | | include_tables | bool | true | Preserve tables in markdown | | include_links | bool | false | Preserve hyperlinks | | bypass_robots_txt | bool | false | Skip robots.txt check |

fetch_batch

Fetches multiple webpages in a single request.

fetch_batch(urls: list[str], max_length_per_url: int = 2000) -> str

| Parameter | Type | Default | Description | | --------- | ---- | ------- | ----------- | | urls | list[str] | required | List of URLs (max 10) | | max_length_per_url | int | 2000 | Character limit per URL | | get_raw_html | bool | false | Skip extraction for all URLs |

discover_links

Discovers all links on a webpage with optional filtering.

discover_links(url: str, filter_pattern: str = "") -> str

| Parameter | Type | Default | Description | | --------- | ---- | ------- | ----------- | | url | str | required | The webpage URL to scan | | filter_pattern | str | "" | Regex to filter links (e.g., /docs/) |

fetchllmstxt

Fetch and parse an llms.txt file to discover LLM-friendly documentation.

fetch_llms_txt(url: str, include_content: bool = False) -> str

| Parameter | Type | Default | Description | | --------- | ---- | ------- | ----------- | | url | str | required | URL to an llms.txt file | | include_content | bool | false | Also fetch content of all linked pages | | max_length_per_url | int | 2000 | When include_content=True, max chars per page |

> ⚠️ Important: By default, only the llms.txt index is fetched — the linked markdown files are NOT downloaded to context. Set include_content=True to explicitly fetch all linked pages.

Example:

# DEFAULT: Only fetches the index (lightweight, ~1KB)
fetch_llms_txt(url="https://docs.example.com/llms.txt")
# Returns: title + list of links with descriptions

# EXPLICIT: Fetches index + all linked .md files (can be large)
fetch_llms_txt(url="https://docs.example.com/llms.txt", include_content=True)
# Returns: structure + content of all linked pages

Note: Relative URLs (e.g., /docs/guide.md) are automatically resolved to absolute URLs.

Workflow Example

Step 1: Discover relevant documentation pages

discover_links(url="https://docs.example.com/", filter_pattern="/guide/")

Step 2: Batch fetch the pages you need

fetch_batch(urls=["https://docs.example.com/guide/intro", "https://docs.example.com/guide/setup"])

Prompts

  • fetch_manual - User-initiated fetch that bypasses robots.txt
  • research_topic - Research a topic by fetching multiple relevant URLs

Development

# Clone and install
git clone https://github.com/praveenc/fetchv2-mcp-server.git
cd fetchv2-mcp-server
uv sync --dev
source .venv/bin/activate

# Run tests
uv run pytest

# Run with MCP Inspector
mcp dev src/fetchv2_mcp_server/server.py

# Linting and type checking
uv run ruff check .
uv run pyright

License

MIT - see [LICENSE](LICENSE) for details.

Contributing

Contributions welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

Support

For issues and questions, use the GitHub issue tracker.

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.