Skip to main content
Glama

MCP Web Search

npm version npm downloads license

MCP server: web search and URL content extraction. No API keys required.

Features

  • search_web - Multi-provider web search with automatic fallback (DuckDuckGo, Bing, SearXNG)

  • fetch_url - Extract content from URLs with semantic truncation

Providers

Provider

API Key Required

Description

DuckDuckGo

No

HTML scraping, fast and simple

Bing

No

Puppeteer-based search (requires Chrome)

SearXNG

No

Self-hosted meta-search, unlimited usage

Requirements

  • Node.js 18+

  • Chrome/Chromium (for Bing provider)

MCP Configuration

Claude Code

{ "mcpServers": { "web-search": { "command": "npx", "args": ["-y", "@zhafron/mcp-web-search"] } } }

OpenCode

{ "mcp": { "web-search": { "type": "local", "command": ["npx", "@zhafron/mcp-web-search"] } } }

With Custom Configuration

{ "mcpServers": { "web-search": { "command": "npx", "args": ["-y", "@zhafron/mcp-web-search"], "env": { "DEFAULT_SEARCH_PROVIDER": "duckduckgo", "SEARXNG_URL": "http://localhost:8099" } } } }

Environment Variables

Variable

Default

Description

DEFAULT_SEARCH_PROVIDER

duckduckgo

Default search provider (duckduckgo, bing, searxng)

SEARXNG_URL

http://localhost:8099

SearXNG instance URL

HTTP_TIMEOUT

15000

Request timeout (ms)

Anti-Bot Detection

This package uses realistic, rotating user agents to minimize bot detection:

  • Random user agents from real browsers (Chrome, Firefox, Safari, Edge)

  • Always up-to-date browser versions

  • Desktop device category for consistency

  • Different user agent per request

Chrome Setup (for Bing Provider)

OS

Command

Ubuntu/Debian

sudo apt install chromium-browser

Fedora

sudo dnf install chromium

Arch

sudo pacman -S chromium

macOS

brew install --cask google-chrome

Custom path: export CHROME_PATH=/path/to/chrome

Tools

search_web

Input: { q: string, limit?: number, lang?: string, provider?: "duckduckgo"|"bing"|"searxng" }

Output: { items: Array<{ title, url, snippet?, source }>, providerUsed, fallbackUsed, triedProviders }

Automatic Fallback:

  • If default provider fails, automatically tries other providers

  • Fallback order: DuckDuckGo → SearXNG → Bing (or vice versa based on default)

fetch_url

Input: { url: string, mode?: "compact"|"standard"|"full", max_length?: number, format?: "markdown"|"text"|"html" }

Mode

Characters

Tokens

compact

~3000

~750

standard

~8000

~2000

full

unlimited

-

Output: { markdown?, text?, format, url, title?, truncated?, original_length? }

SearXNG Setup

SearXNG is a free, self-hosted meta-search engine. Quick setup with Docker:

mkdir -p ~/docker/searxng && echo 'use_default_settings: true search: safe_search: 0 formats: - html - json server: secret_key: "your_secret_key_here" limiter: false image_proxy: true outgoing: request_timeout: 10.0 max_request_timeout: 15.0' > ~/docker/searxng/settings.yml && docker run -d --name searxng -p 8099:8080 -v ~/docker/searxng/settings.yml:/etc/searxng/settings.yml:ro searxng/searxng:latest

SSRF Protection

Blocks localhost, 127.0.0.1, ::1, .local domains.

Troubleshooting

Issue

Solution

Chrome not found

Install Chrome or set CHROME_PATH

SearXNG 403

Enable JSON API in settings.yml

Timeout

Increase HTTP_TIMEOUT

License

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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/tickernelz/mcp-web-search'

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