Skip to main content
Glama
attamari

mcp-server-fetch-rag

by attamari

MCP Server Fetch RAG

A Model Context Protocol (MCP) server that fetches web content and returns relevant chunks using RAG (Retrieval-Augmented Generation).

GitHub: https://github.com/attamari/mcp-server-fetch-rag

Features

  • Semantic Chunking: Groups sentences into coherent chunks based on embedding similarity

  • Query-based Scoring: Late Interaction with Power Mean aggregation for precise relevance scoring

  • LexRank Scoring: Graph-based centrality scoring when no query is provided

  • LexRank Backfill: Supplements query results with high-centrality chunks when needed

  • Percentile Filtering: Dynamic threshold based on score distribution

  • Multilingual Support: Uses paraphrase-multilingual-MiniLM-L12-v2 (50+ languages)

  • PDF Support: Extracts text from PDF documents

  • GPU Acceleration: Auto-detects CUDA, DirectML, ROCm, OpenVINO providers

  • Context Efficient: Filters out irrelevant content to reduce token usage

Related MCP server: Advanced Web Fetching MCP Server

Usage

MCP Client Configuration

Add to your MCP client configuration (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "fetch-rag": {
      "command": "uvx",
      "args": [
        "--from", "git+https://github.com/attamari/mcp-server-fetch-rag",
        "mcp-server-fetch-rag"
      ]
    }
  }
}

With CLI options:

{
  "mcpServers": {
    "fetch-rag": {
      "command": "uvx",
      "args": [
        "--from", "git+https://github.com/attamari/mcp-server-fetch-rag",
        "mcp-server-fetch-rag",
        "--ignore-robots-txt",
        "--user-agent", "your-custom-user-agent"
      ]
    }
  }
}

CLI Options

Option

Description

--user-agent

Custom User-Agent string (overrides default MCP UA)

--ignore-robots-txt

Ignore robots.txt restrictions

--proxy-url

Proxy URL for HTTP requests

Tool: fetch_rag

Fetches a URL and returns relevant content chunks.

Parameter

Type

Required

Default

Description

url

string

Yes

-

URL to fetch

query

string

No

null

Search query for relevance filtering

max_chunks

int

No

10

Maximum number of chunks to return

How It Works

  1. Fetch: Downloads content from URL (HTML via trafilatura, PDF via pypdfium2)

  2. Split: Segments text into sentences using wtpsplit (sat-3l-sm, 85+ languages)

  3. Embed: Generates L2-normalized embeddings (paraphrase-multilingual-MiniLM-L12-v2 via FastEmbed/ONNX)

  4. Chunk: Groups adjacent sentences by embedding similarity into semantic chunks

  5. Score:

    • With query: Late Interaction — sentence-level query similarity aggregated via Power Mean

    • Without query: LexRank — sentence-level graph centrality aggregated via Power Mean

  6. Filter: Applies percentile-based dynamic threshold (P30)

  7. Backfill: When query scoring yields insufficient chunks, supplements with high-centrality LexRank chunks (P30 filtered)

  8. Return: Top chunks sorted in original document order

License

MIT License — See LICENSE for details.

Available Tools

1 tool
fetch_ragA

Fetch URL and return relevant content. Optionally provide a query to find specific information.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to fetch
queryNoQuery to find relevant content
max_chunksNoMaximum number of chunks to return (default: 10)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions returning relevant content but does not disclose how the tool handles redirects, authentication, errors, or the chunking behavior hinted at by the max_chunks parameter. This is a significant gap for a web-fetching tool, leaving the agent with limited insight into side effects or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that directly states the tool's purpose and the optional refinement. It contains no filler or redundant wording, making it highly concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema covers all parameters and defaults, but the description does not specify the return format or any behavioral constraints such as timeouts or size limits. Since there is no output schema, a bit more detail about what 'relevant content' means (e.g., chunks, snippets) would improve completeness. However, for an agent invoking the tool, the schema and current description provide enough to proceed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have schema descriptions with 100% coverage, clearly explaining 'URL to fetch', 'Query to find relevant content', and 'Maximum number of chunks to return'. The description itself adds little beyond the schema, merely restating the existence of an optional query. Since the schema carries the semantic weight, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Fetch URL') and expected output ('return relevant content'), with an optional query to refine results. This is a specific verb+resource pair, and the description is unambiguous about what the tool does, even without sibling tools for differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use cases by stating it fetches URLs and optionally filters by query, but it does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. Since no sibling tools are listed, some implicit usage guidance is acceptable, but it remains at the implied level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.3.0
    • First observedfetch_rag

TDQS

A3.6/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion between tools. The single tool 'fetch_rag' is distinct by default.

Naming Consistency5/5

The single tool name follows a clear verb_noun pattern ('fetch_rag'). Consistency is trivially achieved with only one name.

Tool Count3/5

The server contains only one tool, which falls into the borderline category for scope. While a single-purpose fetch/retrieve tool might be acceptable, it feels thin for a typical MCP server.

Completeness3/5

The tool covers a single operation: fetching a URL and optionally querying for specific information. There are potential gaps such as batch fetching or handling stateful RAG workflows, but for a basic use case it may suffice.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables LLMs to retrieve and process web content by fetching URLs and converting HTML to markdown format. Supports chunked reading of large pages and can access both public websites and local networks.
    1
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables fetching and processing web content with advanced features including batch processing of up to 20 URLs, streaming support, metadata extraction, and multiple output formats (HTML, Markdown, plain text) with enterprise-grade security and global edge performance.
    MIT