A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
A Model Context Protocol (MCP) server that provides web search functionality using a headless Chrome browser to scrape G
A Model Context Protocol (MCP) server that provides web search functionality by scraping Google, DuckDuckGo, and Bing search results through a headless browser.
search_webSearch the web across multiple engines (Google → DuckDuckGo → Bing) with automatic fallback and return structured results.
Parameters:
query (string): The search query stringmax_results (int, optional): Maximum number of results to return (default: 10, max: 100)include_snippets (bool, optional): Whether to include text snippets (default: true)Returns:
title: Page titleurl: Full URL (redirect wrappers resolved to the real destination)domain: Domain namesnippet: Text snippet (if enabled)rank: Search result rankingsource_engine: Which engine produced the result (google, duckduckgo, or bing)get_webpage_contentFetch and return the text content of a webpage.
Parameters:
url (string): The URL of the webpage to fetchmax_length (int, optional): Maximum content length (default: 5000, max: 20000)Returns:
url: The requested URLtitle: Page titlecontent: Extracted text contentlength: Content length in charactersget_search_engine_statusReport the active browser backend and the availability of each search engine.
Returns:
backend key (selenium or obscura) plus each engine name mapped to available or blocked.reset_search_enginesClear the list of engines marked as blocked during the session (useful if an engine recovers).
Returns:
Install dependencies:
# Using uv (recommended)
uv sync
# Or using pip
pip install -e .
Install a browser backend (pick one):
Selenium (default) — requires Chrome:
brew install --cask google-chromesudo apt-get install google-chrome-stableChromeDriver is downloaded and managed automatically by webdriver-manager.
Obscura — no Chrome required. See the Browser Backends section below.
# Run directly
python main.py
# Or using the installed script
web-search-mcp
The server will start and listen for MCP connections.
Add this configuration to your Claude Desktop MCP settings:
{
"mcpServers": {
"web-search-mcp": {
"command": "uvx",
"args": ["git+https://github.com/pranavms13/web-search-mcp"]
}
}
}
Once connected, you can use the tools like this:
Search for "python web scraping tutorials" and show me the top 5 results.
Get the content from this webpage: https://example.com/article
The web searcher uses these Chrome options by default:
The server can render pages with one of two interchangeable backends, selected via the BROWSER_BACKEND environment variable:
| Backend | Value | Notes |
|---|---|---|
| Selenium | selenium (default) | Headless Chrome via Selenium + webdriver-manager. |
| Obscura | obscura | Obscura headless browser via its CLI. Lightweight, stealthy, no Chrome needed. |
Both backends produce fully JS-rendered HTML, which is then parsed with BeautifulSoup, so search results are identical in shape regardless of backend.
Install the Obscura binary (see its releases), e.g. on macOS:
curl -LO https://github.com/h4ckf0r0day/obscura/releases/latest/download/obscura-x86_64-macos.tar.gz
tar xzf obscura-x86_64-macos.tar.gz
Run the server with Obscura selected:
BROWSER_BACKEND=obscura web-search-mcp
If obscura is not on your PATH, point to it explicitly with OBSCURA_BIN=/full/path/to/obscura. When the binary cannot be found, the server logs a warning and falls back to the Selenium backend automatically.
The active backend is reported by the get_search_engine_status tool under the backend key.
The tool includes comprehensive error handling for:
Errors are logged and graceful fallbacks are provided.
fastmcp: MCP server frameworkselenium: Web browser automation (Selenium backend)beautifulsoup4: HTML parsingwebdriver-manager: Chrome driver management (Selenium backend)lxml: XML/HTML parserThe Obscura backend has no Python dependency — it is invoked as an external CLI binary.
To modify or extend the functionality:
uv sync or pip install -e .uv run pytest test.py -qpython main.py (or BROWSER_BACKEND=obscura OBSCURA_BIN=/path/to/obscura python main.py)This project is licensed under MIT License. You can check it out at - LICENSE
Contributions are welcome! Please feel free to submit a Pull Request.
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba
MCP server integration for DaVinci Resolve Studio
Run Claude Code as an MCP server so any agent can delegate coding tasks to it