Skip to main content
Glama
manooll

WebFetch.MCP

by manooll

MSeeP.ai Security Assessment Badge

🌐 WebFetch.MCP v0.1.8

Live Web Access for Your Local AI β€” Tunable Search & Clean Content Extraction

License: MIT Node.js 18+ LM Studio Compatible SearxNG Powered

🚨 The Problem

Local LLMs can't browse the web. Out of the box, LM Studio β€” and most MCP setups β€” leave your model stuck in 2023 or earlier. No live data. No current events. Paste a URL into chat and all you get back is:

"I can't access the web." A few third-party MCP servers exist, but they’re API-locked, incomplete, or a pain to run. That means LM Studio users are flying blind β€” unable to fetch or search live content reliably.

βœ… The Solution β€” WebFetch.MCP

WebFetch.MCP is a drop-in, self-hosted MCP server that brings your local AI:

  • πŸ•’ Fresh, Real-Time Data β€” Go beyond your model’s training cutoff.

  • 🌐 Reliable URL Fetch β€” Paste a link, get the clean content.

  • πŸŽ› Full Search Control β€” Choose engines, boost sources, filter by type/date/language.

  • πŸ”“ API-Free Freedom β€” No API keys, quotas, or tracking.

  • 🧠 AI-Ready Output β€” Structured, clean, distraction-free text your LLM can actually use.

Privacy Note: Search requests and web fetches are visible to your ISP and target sites. Use a VPN for enhanced privacy.

πŸ† Why It’s Different

Feature

WebFetch.MCP

mrkrsl-web-search

mcp-server-fetch-python

Crawl4AI

Live Web Search

βœ… Yes

βœ… Yes

❌ No

βœ… Yes

URL Content Fetch

βœ… Yes

⚠️ Limited

βœ… Yes

βœ… Yes

Search Tunability

βœ… Full Control

❌ API-limited

❌ Basic

⚠️ Limited

70+ Search Engines

βœ… Yes

❌ No

❌ No

⚠️ Few

Scientific/Technical Focus

βœ… Configurable

❌ No

❌ No

❌ No

No API Keys

βœ… Yes

❌ Required

❌ Required

βœ… Basic only

Content Quality

βœ… Mozilla Readability

⚠️ Basic

⚠️ Basic

βœ… Advanced

JS Execution

βœ… Yes (JSDOM)

❌ No

βœ… Yes

βœ… Yes

Setup Simplicity

βœ… Easy

⚠️ Medium

❌ Complex

❌ Very Complex

Cost

βœ… Free

πŸ’° API costs

πŸ’° API costs

βœ… Free

✨ Core Features

  • 70+ configurable engines β€” Google Scholar, arXiv, PubMed, IEEE, GitHub, Stack Overflow, weather.gov, and more.

  • Weighted source control β€” Boost authoritative and academic sources.

  • Data type filters β€” Papers, docs, code, or news only.

  • Freshness filters β€” Recent publications, latest docs, breaking news.

πŸ”¬ Scientific & Technical Focus

  • Academic: arXiv, PubMed, IEEE Xplore, ACM Digital Library.

  • Technical: MDN, Stack Overflow, GitHub, official docs.

  • Government: weather.gov, data.gov, NASA, NOAA.

πŸ“„ Clean Content Extraction

  • Mozilla Readability β€” industry-standard parsing.

  • JavaScript execution β€” handles SPAs & dynamic pages.

  • Removes ads, menus, widgets.

  • Optimized handling for research papers & technical docs.

βš™οΈ Complete Control

  • Enable only trusted engines.

  • Language & region targeting.

  • Domain/site restrictions.

  • Custom weighting per source.

πŸ“‹ Prerequisites

⚑ Quick Start

1️⃣ Install SearxNG (5 min)

Docker Compose (Recommended)

git clone https://github.com/searxng/searxng-docker.git
cd searxng-docker
sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml
docker compose up -d

Test SearxNG

curl "http://localhost:8080/search?q=test&format=json"

πŸ“– SearxNG Installation Guide

2️⃣ Install WebFetch.MCP

git clone https://github.com/manull/webfetch-mcp.git
cd webfetch-mcp
npm install
node server.mjs

3️⃣ Connect to LM Studio

In LM Studio β†’ Settings β†’ Developer β†’ MCP Servers:

{
  "mcpServers": {
    "webfetch": {
      "command": "node",
      "args": ["/full/path/to/webfetch-mcp/server.mjs"],
      "env": {
        "SEARXNG_BASE": "http://localhost:8080",
        "DEBUG": "false"
      }
    }
  }
}

Restart LM Studio β€” web_search and web_fetch tools will now be available.

4️⃣ Test It

In LM Studio:

πŸ” Search for recent AI research on transformer architectures
πŸ“„ Fetch content from https://example.com/article

πŸ”§ Configuration

Variable

Default

Description

SEARXNG_BASE

http://localhost:8080

SearxNG instance URL

DEBUG

false

Debug logging

DETAILED_LOG

true

Detailed log output

⏱️ Smart Rate Limiting

WebFetch.MCP uses intelligent time-based rate limiting designed for real research workflows:

πŸ“Š Rate Limits:

  • 12 calls per 5-minute window - Generous limit for research sessions

  • 8 calls per 30-second burst - Prevents LLM spam while allowing quick queries

  • Automatic reset - No need to restart LM Studio between research sessions

🎯 Why This Works Better:

  • βœ… Research-friendly - Supports extended research sessions

  • βœ… Anti-spam protection - Prevents runaway LLM tool calling

  • βœ… No restarts needed - Limits reset automatically over time

  • βœ… Clear feedback - Shows remaining calls and reset times

πŸ“ˆ Example Usage Patterns:

  • Quick research: 5-8 rapid calls, then brief pause

  • Extended research: 12 calls spread over 5 minutes

  • Continuous work: Limits reset as you work, no interruption

πŸ“Š Example Usage

Search

πŸ” Find Python asyncio docs site:python.org
πŸ” Search for recent climate data from government sources

Fetch

πŸ“„ Extract content from https://news.example.com/article
πŸ“„ Get main text from https://arxiv.org/abs/2305.12345

πŸ§ͺ Testing

curl "http://localhost:8080/search?format=json&q=test&count=5"
DEBUG=true node server.mjs

🀝 Contributing

We welcome:

  • πŸ› Bug reports β†’ Open an issue

  • πŸ”§ Code PRs

  • πŸ“– Documentation improvements

πŸ“„ License

MIT β€” see LICENSE.

πŸ™ Acknowledgments


Built for LM Studio and local LLM users who need real-time, reliable, tunable access to the web.

⭐ Star this repo if you're done with "I can't access the web" from your AI.

Available Tools

2 tools
web_fetchA

Fetch and extract readable content from a web page URL using Mozilla Readability.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesHTTP/HTTPS URL to fetch (must be a valid URL)
max_charsNoMaximum characters to return

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It mentions using Mozilla Readability, but does not disclose whether JavaScript executes, rate limits, authentication needs, error handling, or what happens with non-HTML content.

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?

Single sentence that is front-loaded with the core action. No redundant words. Every part contributes meaning.

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 tool is simple but lacks an output schema or description of the return format (e.g., plain text, markdown). Given no output schema, the description should mention the output structure. It is adequate but incomplete for an agent to fully understand the behavior.

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?

Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema: the URL parameter's description is already present, and max_chars has default/range in the schema. No additional context on why to adjust max_chars or what the extraction output looks like.

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 verb 'Fetch and extract', the resource 'readable content from a web page URL', and the method 'using Mozilla Readability'. It effectively distinguishes from the sibling 'web_search' which is for searching, not fetching specific pages.

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 the tool is for extracting content from a single URL, but lacks explicit guidance on when to use it versus alternatives. No mention of when not to use, prerequisites, or comparisons to 'web_search'.

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.

  1. 2 tool updatesv0.1.8
    • First observedweb_fetch
    • First observedweb_search

TDQS

A3.9/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: one searches the web, the other fetches a specific page. There is no overlap or ambiguity.

Naming Consistency5/5

Both tools follow the same verb_noun pattern with snake_case: web_search and web_fetch. The naming is perfectly consistent.

Tool Count4/5

With only 2 tools, the set is minimal but still appropriate for the server's focused purpose of web search and content fetching. It is not excessive or overly thin.

Completeness4/5

The tool set covers the core operations for web interaction: searching and fetching. While there could be additional tools like raw HTML fetching or link checking, the current scope is reasonably complete.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/manooll/webfetch-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server