MCP Web Search Server
This server provides LLM-optimized web search and content extraction with advanced anti-detection capabilities.
Search the web (
web_search): Search using DuckDuckGo (no API key required), Serper.dev, or Bing, with options to control the number of results (1–50), auto-select or specify a provider, and filter by recency (last N days).Fetch & extract page content (
fetch_url): Retrieve clean, readable markdown from any URL, with configurable content length (default 8000 chars) and optional image references — optimized for LLM consumption.Search and fetch in one step (
search_and_fetch): Perform a search and automatically fetch full content from top results (1–20) in a single call, with configurable per-page content length (default 5000 chars).Anti-detection browsing: Stealth headless browser with dynamic fingerprint generation (viewport, UA, locale, timezone), human-like behavior simulation (delays, scrolling, mouse events), BrowserContext isolation, and proxy support.
Resilient operation: Automatic retries with exponential backoff, per-provider circuit breakers, concurrency limiting, and persistent caching for robust performance.
Configurable: Extensive environment variable configuration for API keys, timeouts, cache TTL, result limits, and logging.
Provides web search capabilities using DuckDuckGo's search engine, delivering results optimized for LLM consumption without requiring an API key.
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., "@MCP Web Search Serversearch for latest developments in quantum computing with top 5 results fetched"
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 Web Search Server
MCP server for web search with results optimized for LLMs and advanced bot-detection evasion.
Features
Search: DuckDuckGo (no API key), Serper.dev, Bing Web Search
Content extraction: Headless browser with stealth injection and BrowserContext isolation
Anti-detection: Dynamic fingerprint generation (viewport, UA, locale, timezone), human-like behavior, proxy support
LLM formatting: Clean markdown via Turndown, metadata, structured data, links, images
Robustness: Retry with exponential backoff, circuit breaker per provider, concurrency limiting, persistent cache
Related MCP server: AgentWebSearch-MCP
Installation
npm install
npm run buildConfiguration
Copy .env.example to .env and configure:
# Search providers (optional — DuckDuckGo works without API keys)
SERPER_API_KEY=your_key
BING_API_KEY=your_key
# Anti-detect
STEALTH_ENABLED=true
HEADLESS=true
PROXY_LIST=http://proxy1:8080,http://proxy2:8080
USER_DATA_DIR=
# Limits
MAX_RESULTS=10
MAX_CONTENT_LENGTH=8000
MAX_RESPONSE_SIZE_BYTES=10000000
REQUEST_TIMEOUT=30000
CACHE_TTL=300
# Behavior
MIN_DELAY=500
MAX_DELAY=3000
MAX_CONCURRENT=2
# Optional persistent cache directory
CACHE_DIR=./cache
# Logging
LOG_LEVEL=info
# Debug only — weakens browser security
ALLOW_INSECURE_BROWSER_FLAGS=falseMCP Tools
web_search
Search by query.
{
"query": "latest AI developments 2025",
"num_results": 10,
"provider": "auto",
"recency_days": 7
}fetch_url
Fetch and clean a page.
{
"url": "https://example.com/article",
"max_length": 8000,
"include_images": false,
"include_links": false
}search_and_fetch
Search and automatically fetch top-N results.
{
"query": "quantum computing breakthrough",
"num_results": 5,
"fetch_content": true,
"max_content_length": 5000,
"include_images": false,
"include_links": false
}Claude Desktop Integration
{
"mcpServers": {
"web-search": {
"command": "node",
"args": ["C:\\Files\\git\\mcp-web-search\\dist\\index.js"],
"env": {
"SERPER_API_KEY": "..."
}
}
}
}Anti-Detection
The server uses a layered approach:
puppeteer-extra-plugin-stealth — hides automation fingerprints
Dynamic fingerprint generation — random Chrome on Windows/macOS/Linux with matching timezone
BrowserContext isolation — separate cookies/localStorage per request
Human-like behavior — random delays, scroll, mouse events
Proxy support — random proxy selection from
PROXY_LISTFallback chain — premium APIs first, falls back to DuckDuckGo
Circuit breaker — temporarily disables failing providers
Retry & rate limiting — exponential backoff, bounded concurrency
Development
npm run dev # watch mode
npm test # run unit tests
npm run build # compile TypeScript
npm run lint # run ESLint
npm run format # format with PrettierDocker
docker build -t mcp-web-search .
docker run --rm -e SERPER_API_KEY=... mcp-web-searchLicense
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/DmitriyOT/mcp-web-search'
If you have feedback or need assistance with the MCP directory API, please join our Discord server