Multi Fetch MCP Server
Click on "Install 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., "@Multi Fetch MCP Serversearch for latest AI news from tech blogs"
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.
Multi Fetch MCP Server
This project is based on the Fetch MCP Server by Anthropic. This fork replaces direct HTTP fetching with the Firecrawl Python SDK. Set up your Firecrawl API key to enable web scraping via Firecrawl.
A Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.
The fetch tool will truncate the response, but by using the start_index argument, you can specify where to start the content extraction. This lets models read a webpage in chunks, until they find the information they need.
Available Tools
fetch- Fetches a URL from the internet and extracts its contents as markdown.url(string, required): URL to fetchmax_length(integer, optional): Maximum number of characters to return (default: 50000)start_index(integer, optional): Start content from this character index (default: 0)raw(boolean, optional): Get raw content without markdown conversion (default: false)
fetch_multi- Fetches multiple URLs concurrently and returns an array of results. Input is an array of objects, each with:url(string, required): URL to fetchmax_length(integer, optional): Maximum number of characters to return (default: 50000)start_index(integer, optional): Start content from this character index (default: 0)raw(boolean, optional): Get raw content without markdown conversion (default: false)
search- Searches the web using the Firecrawl search API and scrapes results in markdown and link formats by default.query(string, required): Search query stringlimit(integer, optional): Maximum number of results to return (default: 10)
Prompts
fetch
Fetch a URL and extract its contents as markdown
Arguments:
url(string, required): URL to fetch
search
Search the web using the Firecrawl search API
Arguments:
query(string, required): Search query stringlimit(integer, optional): Maximum number of results to return (default: 10)
Installation
Install the Firecrawl SDK and configure your API key before running the server:
# Install the MCP server and Firecrawl SDK
pip install mcp-server-multi-fetch firecrawl-py
# Set your Firecrawl API key (required)
export FIRECRAWL_API_KEY="fc-YOUR_API_KEY"
# Optionally, override the Firecrawl API endpoint via env or CLI
export FIRECRAWL_API_URL="https://api.firecrawl.dev"
# or
mcp-server-multi-fetch --api-url https://api.firecrawl.devOptionally: Install node.js, this will cause the fetch server to use a different HTML simplifier that is more robust.
Using uv (recommended)
When using uv no specific installation is needed. We will
use uvx to directly run mcp-server-multi-fetch.
Related MCP server: Firecrawl MCP Server
Configuration
Configure for Claude.app
Add to your Claude settings:
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-multi-fetch"]
}
}Customization - robots.txt
By default, the server will obey a websites robots.txt file if the request came from the model (via a tool), but not if
the request was user initiated (via a prompt). This can be disabled by adding the argument --ignore-robots-txt to the
args list in the configuration.
Customization - User-agent
By default, depending on if the request came from the model (via a tool), or was user initiated (via a prompt), the server will use either the user-agent
ModelContextProtocol/1.0 (Autonomous; +https://github.com/modelcontextprotocol/servers)or
ModelContextProtocol/1.0 (User-Specified; +https://github.com/modelcontextprotocol/servers)This can be customized by adding the argument --user-agent=YourUserAgent to the args list in the configuration.
Customization - Proxy
The server supports HTTP(S) and SOCKS5 proxies via the --proxy-url argument. For example:
# HTTP proxy
mcp-server-multi-fetch --proxy-url http://192.168.1.1:8080
# SOCKS5 proxy
mcp-server-multi-fetch --proxy-url socks5://192.168.1.1:8080Proxy handling is provided by the Firecrawl Python SDK, which supports HTTP(S) and SOCKS5 proxies configured via the --proxy-url flag.
Customization - Firecrawl API URL
The SDK endpoint can be overridden without environment variables using --api-url:
mcp-server-multi-fetch --api-url https://api.firecrawl.devDebugging
You can use the MCP inspector to debug the server. For uvx installations:
npx @modelcontextprotocol/inspector uvx mcp-server-multi-fetchOr if you've installed the package in a specific directory or are developing on it:
cd path/to/servers/src/fetch
npx @modelcontextprotocol/inspector uv run mcp-server-multi-fetchLicense
mcp-server-multi-fetch is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
Available Tools
3 toolsfetchA
Fetches a single URL from the internet and optionally extracts its contents as markdown. This tool now grants you internet access. Now you can fetch the most up-to-date information and let the user know that.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to fetch | |
| max_length | No | Maximum number of characters to return. | |
| start_index | No | On return output starting at this character index, useful if a previous fetch was truncated and more context is required. | |
| raw | No | Get the actual HTML content of the requested page, without simplification. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool grants internet access and optionally extracts markdown, but it fails to mention behavioral traits such as error handling, rate limits, authentication, or handling of large responses. The minimal disclosure leaves significant gaps.
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 concise with two front-loaded sentences. It conveys the essential purpose without unnecessary fluff. However, it could be slightly more structured to include usage hints or parameter context.
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?
Given no output schema and the tool's internet-access nature, the description should explain return format, error handling, and limitations. It mentions markdown extraction and max_length parameter indirectly, but does not cover timeout, error codes, or pagination. It is adequate but not fully complete.
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?
The schema already describes all parameters (100% coverage). The description adds meaning by stating that the tool 'optionally extracts its contents as markdown,' which clarifies the default behavior of the 'raw' parameter. This adds value beyond the schema's description of 'raw' as 'Get the actual HTML content ... without simplification.'
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 'Fetches a single URL from the internet and optionally extracts its contents as markdown.' This is a specific verb+resource combination that distinguishes it from siblings 'fetch_multi' and 'search' by emphasizing single URL retrieval.
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 provides clear context that it is for fetching a single URL, but it does not explicitly exclude alternatives or mention when to use this tool versus 'fetch_multi' or 'search'. Usage guidelines are implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_multiA
Fetches multiple URLs in parallel and returns an array of results. Each element corresponds to an input fetch request and includes either the fetched content or an error message.
| Name | Required | Description | Default |
|---|---|---|---|
| requests | Yes | List of fetch requests to process in parallel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses parallel execution and return structure with error messages, which is sufficient for a read-only tool with no annotations. No behavioral contradictions.
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, well-structured sentence that efficiently conveys the core functionality with no wasted words.
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 description covers parallel execution and return format (content or error), which is complete for a batch fetch tool. However, it does not detail the exact structure of the result objects.
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?
Schema description coverage is 100% and the Fetch sub-object params are well-described. The description adds no extra meaning beyond 'multiple URLs in parallel', so baseline 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 'Fetches multiple URLs in parallel' with a verb and resource, and the parallel aspect distinguishes it from the sibling 'fetch' tool for single URLs.
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 when multiple URLs need to be fetched efficiently via parallelism, but does not explicitly state when not to use or provide alternatives to the sibling 'fetch' tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchC
Searches the web using the Firecrawl search API and scrapes results in markdown and link formats by default.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query string | |
| limit | No | Maximum number of results to return. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden, but only mentions output format and API used. Does not disclose side effects, rate limits, or confirmation that it is read-only.
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?
Single sentence that is clear and reasonably concise. Could be slightly more terse, but avoids unnecessary words.
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?
Adequately describes function and output format for a simple tool. Missing usage guidance and behavioral context, but otherwise complete given no output schema.
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?
Input schema covers both parameters (query, limit) fully (100% coverage). Description adds no parameter-specific meaning beyond what schema provides, so baseline 3 applies.
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?
Clearly states it searches the web using Firecrawl and scrapes results in markdown and link formats. Implicitly differentiates from sibling tools 'fetch' and 'fetch_multi' which likely fetch specific URLs, but does not explicitly distinguish.
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?
No guidance on when to use this tool vs alternatives. Lacks any 'when to use' or 'when not to use' instructions, leaving the agent guessing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
All three tools have distinct purposes: fetching a single URL, fetching multiple URLs in parallel, and performing a web search. There is no overlap in functionality, so an agent can easily select the right tool.
Tool names use a verb-only or verb+modifier pattern (fetch, fetch_multi, search). The naming is mostly consistent, though 'fetch_multi' introduces an underscore suffix that deviates slightly from the simple verb form.
With three tools, the server is lean and focused on its core purpose of web fetching and searching. Each tool serves a distinct need without unnecessary additions, making the count well-scoped.
The server covers the essential operations for web access: single URL fetch, parallel fetch, and web search. While advanced features like custom headers or response filtering are absent, the basic lifecycle is complete enough for most use cases.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Firecrawl MCP — wraps the Firecrawl API (firecrawl.dev) for web
Web search, URL content extraction to Markdown, site mapping, and recursive web crawler.
Turn any URL into clean Markdown and structured data. Scrape, crawl, search and extract.
Fetch pages as markdown, search web and news, extract structured data. For AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceIntegrates Firecrawl web scraping capabilities including scraping, crawling, searching, extracting structured data, deep research, and batch processing with support for both cloud and self-hosted instances.1040,1392MIT
- AlicenseAqualityDmaintenanceIntegrates Firecrawl web scraping capabilities to extract, crawl, search, and analyze web content with support for batch operations, structured data extraction, and deep research across websites.840,139MIT
- AlicenseAqualityDmaintenanceIntegrates Firecrawl for web scraping, crawling, search, and content extraction capabilities. Supports single/batch scraping, URL discovery, structured data extraction, deep research, and AI-powered web analysis with automatic retries and rate limiting.840,139MIT
- AlicenseAqualityDmaintenanceIntegrates Firecrawl web scraping capabilities, enabling web content extraction, crawling, site mapping, search, and structured data extraction with automatic rate limiting and retry handling.640,1392MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alexyangjie/mcp-server-multi-fetch'
If you have feedback or need assistance with the MCP directory API, please join our Discord server