Back to catalog
Web Search MCP Server
TypeScript MCP server that provides comprehensive web search capabilities through direct connections (no API keys required) with multiple search engines, including Bing, Brave, and DuckDuckGo, as well as full page content extraction.
Get this MCP server
TypeScript MCP server that provides comprehensive web search capabilities through direct connections (no API keys required) with multiple search engines, including Bing, Brave, and DuckDuckGo, as well as full page content extraction.
Installation
From Release
# Download latest release zip from GitHub
# Extract to desired location
npm install
npx playwright install
npm run build
From Source Code
git clone https://github.com/mrkrsl/web-search-mcp.git
cd web-search-mcp
npm install
npx playwright install
npm run build
Configuration
Basic Configuration
{
"mcpServers": {
"web-search": {
"command": "node",
"args": ["/path/to/extracted/web-search-mcp/dist/index.js"]
}
}
}
With Environment Variables
{
"mcpServers": {
"web-search": {
"command": "node",
"args": ["/path/to/web-search-mcp/dist/index.js"],
"env": {
"MAX_CONTENT_LENGTH": "10000",
"BROWSER_HEADLESS": "true",
"MAX_BROWSERS": "3",
"BROWSER_FALLBACK_THRESHOLD": "3"
}
}
}
}
LibreChat Configuration
mcpServers:
web-search:
type: stdio
command: node
args:
- /app/mcp/web-search-mcp/dist/index.js
serverInstructions: true
Available Tools
| Tool | Description |
|---|---|
full-web-search |
Comprehensive web search that performs searches across multiple engines and extracts full page content from re... |
get-web-search-summaries |
Lightweight search that returns only search result snippets without full content extraction... |
get-single-web-page-content |
Extracts main content from a specific web page by URL, removing navigation, ads, and other non-content elements... |
Features
- Multi-engine search with priority Bing > Brave > DuckDuckGo
- Full page content extraction from search results
- Smart request strategy with switching between Playwright browsers and axios requests
- Parallel processing of multiple pages simultaneously
- Dedicated browser isolation with automatic cleanup
- Recovery from HTTP/2 errors with automatic fallback to HTTP/1.1
- Search result quality validation and relevance checking
Environment Variables
Optional
MAX_CONTENT_LENGTH- Maximum content length in characters (default: 500000)DEFAULT_TIMEOUT- Default timeout for requests in milliseconds (default: 6000)MAX_BROWSERS- Maximum number of browser instances to maintain (default: 3)BROWSER_TYPES- Comma-separated list of browser types (default: 'chromium,firefox')BROWSER_FALLBACK_THRESHOLD- Number of axios failures before using browser as fallback (default: 3)ENABLE_RELEVANCE_CHECKING- Enable/disable search result quality validation (default: true)RELEVANCE_THRESHOLD- Minimum quality score for search results (0.0-1.0, default: 0.3)FORCE_MULTI_ENGINE_SEARCH- Try all search engines and return best results (default: false)
Usage Examples
Search 'TypeScript MCP server' and get full content from top-3 results
Get quick summaries for 'latest AI developments' without full page extraction
Extract main content from a specific web page by URL
Notes
Tested with LM Studio and LibreChat. Works best with modern models like Qwen3 and Gemma 3. Requires Node.js 18.0.0+ and npm 8.0.0+. May have compatibility issues with older Llama and Deepseek models.
