mcp-server-fetch-rag
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-fetch-ragfetch https://en.wikipedia.org/wiki/RAG and explain the main concept"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Custom User-Agent string (overrides default MCP UA) |
| Ignore robots.txt restrictions |
| Proxy URL for HTTP requests |
Tool: fetch_rag
Fetches a URL and returns relevant content chunks.
Parameter | Type | Required | Default | Description |
| string | Yes | - | URL to fetch |
| string | No | null | Search query for relevance filtering |
| int | No | 10 | Maximum number of chunks to return |
How It Works
Fetch: Downloads content from URL (HTML via trafilatura, PDF via pypdfium2)
Split: Segments text into sentences using wtpsplit (sat-3l-sm, 85+ languages)
Embed: Generates L2-normalized embeddings (paraphrase-multilingual-MiniLM-L12-v2 via FastEmbed/ONNX)
Chunk: Groups adjacent sentences by embedding similarity into semantic chunks
Score:
With query: Late Interaction — sentence-level query similarity aggregated via Power Mean
Without query: LexRank — sentence-level graph centrality aggregated via Power Mean
Filter: Applies percentile-based dynamic threshold (P30)
Backfill: When query scoring yields insufficient chunks, supplements with high-centrality LexRank chunks (P30 filtered)
Return: Top chunks sorted in original document order
License
MIT License — See LICENSE for details.
Available Tools
1 toolfetch_ragA
Fetch URL and return relevant content. Optionally provide a query to find specific information.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to fetch | |
| query | No | Query to find relevant content | |
| max_chunks | No | Maximum number of chunks to return (default: 10) |
TDQS
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.
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.
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.
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.
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.
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 tool update
v0.3.0- First observed
fetch_rag
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion between tools. The single tool 'fetch_rag' is distinct by default.
The single tool name follows a clear verb_noun pattern ('fetch_rag'). Consistency is trivially achieved with only one name.
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.
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
Related MCP Connectors
LLM-ready web search + instant answers + URL-to-clean-text fetch for agents and RAG.
Search the web and extract clean, readable text from webpages. Process multiple URLs at once to sp…
Fetch any URL and get clean Markdown. Web scraping for AI agents.
Turns any URL into SEO metadata, contacts, tech stack, and AI-ready Markdown, in one call.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables 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.1MIT
- AlicenseNot gradedqualityFmaintenanceEnables 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
- AlicenseAqualityBmaintenanceGive your AI the ability to read the web. Fetches URLs as clean markdown with 9 fallback strategies.246 npm9MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query and retrieve topic-specific knowledge from recursively crawled and indexed web pages.340 npm11MIT