Skip to main content
Glama
DmitriyOT

MCP Web Search Server

by DmitriyOT

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 build

Configuration

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=false

MCP Tools

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:

  1. puppeteer-extra-plugin-stealth — hides automation fingerprints

  2. Dynamic fingerprint generation — random Chrome on Windows/macOS/Linux with matching timezone

  3. BrowserContext isolation — separate cookies/localStorage per request

  4. Human-like behavior — random delays, scroll, mouse events

  5. Proxy support — random proxy selection from PROXY_LIST

  6. Fallback chain — premium APIs first, falls back to DuckDuckGo

  7. Circuit breaker — temporarily disables failing providers

  8. 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 Prettier

Docker

docker build -t mcp-web-search .
docker run --rm -e SERPER_API_KEY=... mcp-web-search

License

MIT

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

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