web-fetch-mcp
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., "@web-fetch-mcpSummarize the main points from https://example.com/article"
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.
Web Fetch MCP Server
A Model Context Protocol (MCP) server that provides web content fetching, summarization, comparison, and extraction capabilities.
Features
Three Core Tools: Provides
summarize_web,compare_web, andextract_webfor versatile web content processing.Handles Multiple URLs: Process up to 20 URLs in a single request.
Content Transformation: Converts HTML to clean, readable text and automatically resolves GitHub
/blob/URLs to their raw content equivalent.Safe & Secure: Protects against Server-Side Request Forgery (SSRF) by blocking requests to private IP addresses.
Configurable: Allows setting timeouts and content length limits to manage performance.
Related MCP server: MCP Server Fetch Python
Installation
Install the server globally from npm:
npm install -g web-fetch-mcpMCP Agent Configuration
To use this server with an AI agent that supports the Model Context Protocol, add the following configuration to your agent's settings. Once configured, your agent can call the tools provided by this service.
Important: You must provide a valid Gemini API key for the server to work.
If you installed the package globally:
{
"mcpServers": {
"web-fetch-mcp": {
"type": "stdio",
"command": "web-fetch-mcp",
"env": {
"GEMINI_API_KEY": "YOUR_GEMINI_API_KEY"
}
}
}
}Note: If you encounter network access issues (e.g., unable to connect to Gemini), you can configure the environment variables HTTPS_PROXY and HTTP_PROXY. By default, the gemini-2.5-flash model is used, consistent with Gemini-CLI.
If you are running from a local clone:
{
"mcpServers": {
"web-fetch-mcp": {
"type": "stdio",
"command": "node",
"args": ["/path/to/web-fetch-mcp/dist/index.js"],
"env": {
"GEMINI_API_KEY": "YOUR_GEMINI_API_KEY"
}
}
}
}Tool Reference
The service provides the following tools:
summarize_web: Summarizes content from one or more URLs.compare_web: Compares content across multiple URLs.extract_web: Extracts specific information from web content using natural language prompts.
Example Tool Call
To use a tool, your agent should make a callTool request specifying the tool name and a prompt:
{
"tool": "summarize_web",
"arguments": {
"prompt": "Summarize the main points from https://example.com/article"
}
}For Developers
If you wish to contribute to the development of this server:
Clone the repository:
git clone https://github.com/your-username/web-fetch-mcp.git cd web-fetch-mcpInstall dependencies:
npm installRun in development mode:
npm run devBuild for production:
npm run build
Available Tools
3 toolscompare_webB
Compare content from multiple URLs
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Natural language prompt containing URLs (up to 20) and comparison instructions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the high-level action with no details on input limits, output format, error behavior, or whether multiple URLs are required as opposed to optional.
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 with no wasted words. It is appropriately concise for a simple tool, though it could be seen as under-specified in terms of what 'compare' entails.
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?
For a tool with one parameter and no output schema, the description gives the essential purpose and the schema provides invocation details. However, it lacks usage context (e.g., what output to expect) and does not mention any constraints beyond what is in the 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?
The schema description covers the single parameter well: 'Natural language prompt containing URLs (up to 20) and comparison instructions'. The tool description adds no additional parameter context, but since schema coverage is 100%, the baseline score of 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?
The description clearly states the tool's purpose with a specific verb ('Compare') and resource ('content from multiple URLs'). It distinguishes itself from sibling tools (summarize_web, extract_web) by indicating a distinct action.
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 no guidance on when to use this tool versus alternatives. There is no mention of when comparison would be preferred over summarization or extraction, and no exclusion criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_webC
Extract specific information from web content based on natural language prompts
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Natural language prompt containing URLs (up to 20) and extraction instructions |
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 indicates the tool uses natural language prompts, but does not mention any limitations, side effects, or operational constraints. The description is merely a functional statement with no transparency beyond that.
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 with no redundant information. It is efficient and appropriately sized for a tool with one parameter, though it could have been slightly more informative without losing conciseness.
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?
There is no output schema, so the description should clarify what the tool returns, but it does not. No sibling tool context is provided, and no usage examples or limitations are mentioned. For a tool with minimal annotations and no output schema, the description is incomplete.
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 input schema fully documents the single 'prompt' parameter with a clear description (including URLs and extraction instructions), so schema coverage is 100%. The tool description itself adds no additional meaning beyond what the schema already provides, making the baseline of 3 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 verb 'Extract' and resource 'web content', indicating a specific extraction action. It distinguishes from sibling tools by the nature of the operation (extract vs summarize/compare), though it does not explicitly name alternatives.
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 is provided on when to use this tool versus alternatives like summarize_web or compare_web. The description only states what it does, without any contextual cues for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_webC
Summarize content from one or more URLs
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Natural language prompt containing URLs (up to 20) and summarization instructions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the action without explaining how URLs are processed, what the summary output looks like, or any side effects or limitations beyond the schema's mention of up to 20 URLs.
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 with no wasted words: 'Summarize content from one or more URLs.' It is appropriately brief, though the brevity does limit the contextual value it provides.
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 one parameter and no output schema, the description is minimally adequate but leaves gaps: it does not describe the output format, usage distinctions from extract_web/compare_web, or behavioral caveats. The schema compensates for URL limits and prompt structure.
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 input schema has 100% coverage for the single prompt parameter, describing it as a natural language prompt containing URLs and summarization instructions. The tool description adds no parameter-level meaning beyond this, 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?
The description clearly states the core action—summarize—and the resource—content from URLs. It is specific enough to distinguish from sibling tools like extract_web and compare_web, though it does not explicitly name those alternatives.
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?
There is no guidance on when to use this tool vs. alternatives, no prerequisites, and no exclusions. The description simply says what it does, leaving the agent to infer usage context from the tool name and schema.
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. Dates show when Glama detected each change.
3 tool updates
v0.1.1- First observed
compare_web - First observed
extract_web - First observed
summarize_web
TDQS
Each tool has a clearly distinct purpose: summarize gives an overview, compare contrasts multiple URLs, and extract pulls specific details. No ambiguity between them.
All tool names follow the same verb_web pattern (summarize_web, compare_web, extract_web), making the set predictable and easy to navigate.
Three tools is appropriately scoped for a web-content analysis server. Each tool addresses a distinct need without unnecessary bloat.
The toolset covers the core operations of summarization, comparison, and extraction. A minor gap is the absence of a raw fetch tool, but the server's purpose is focused on processed output, so this is acceptable.
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
MCP server for web extraction and rendering via AceDataCloud WebExtrator
One MCP server for 180+ live web-data APIs returning clean JSON from sites that block scrapers.
Free remote MCP server for fetching public web pages through a rotating proxy pool.
Cybersecurity MCP server for URL scanning, threat intelligence, and domain reputation.
Related MCP Servers
- AlicenseAqualityDmaintenanceA powerful MCP server for fetching and transforming web content into various formats (HTML, JSON, Markdown, Plain Text) with ease.424,26241MIT
- AlicenseAqualityCmaintenanceAn MCP server for fetching and transforming web content into various formats.48MIT
- AlicenseAqualityCmaintenanceMCP server for web crawling, searching, and AI-powered content extraction, supporting single-page, batch, and full-site crawling along with text, news, image, book, and video search.82MIT
- AlicenseAqualityCmaintenanceAn MCP server that enables AI assistants to fetch web content in multiple formats (HTML, JSON, text, Markdown) with intelligent content extraction, chunk management, and browser automation support.55215MIT
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/KylinMountain/web-fetch-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server