browser-search-mcp
Allows searching the web via Baidu search engine using a real browser to extract structured results.
Allows searching the web via DuckDuckGo search engine using a real browser to extract structured results.
Allows searching the web via Google search engine using a real browser to extract structured results.
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., "@browser-search-mcpsearch for the latest AI research papers on arxiv"
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.
Browser Search MCP
基于真实浏览器的 MCP 搜索引擎服务器 - 让任何支持 MCP 的大模型都能搜索网页内容。 Browser Search MCP - Web search via real browser for any LLM.
Built on the same CDP extension bridge architecture as browser-takeover-bridge.
Why?
Local LLMs (Ollama, etc.) cant search the web. HTTP-based search tools get blocked by anti-bot measures. This project uses a real browser to search - no API keys, no blocking, no fake results.
Related MCP server: Google Search Tool
Quick Start
pip install browser-search-mcp
# Start the MCP server
browser-search-mcpThen configure in any MCP client:
{
"mcpServers": {
"browser-search": {
"command": "browser-search-mcp"
}
}
}Features
Feature | Status | Description |
Google, Bing, Baidu, DuckDuckGo | Yes | DOM + JS extraction |
Persistent browser session | Yes | Reuses CDP connection |
Result caching | Yes | LRU with configurable TTL |
Config file | Yes | JSON + env vars |
Auto-reconnect | Yes | Transparent reconnection |
browser-takeover bridge | Yes | Detects extension bridge |
Fallback parsers | Yes | Text-based when JS fails |
Retry on failure | Yes | Exponential backoff |
MCP Tools
Tool | Description |
| Search a single engine, returns JSON results |
| Search multiple engines simultaneously |
| Read full content of a search result URL |
| Check browser, bridge, and cache status |
| Find CDP-enabled browsers |
Configuration
Config file: ~/.browser-search-mcp/config.json
{
"browser": {
"name": "edge",
"headless": false,
"port": 9222
},
"cache": {
"enabled": true,
"ttl": 300
},
"server": {
"default_engine": "google",
"log_level": "INFO"
}
}Environment variables also work: BROWSER_SEARCH_HEADLESS=true, BROWSER_SEARCH_DEFAULT_ENGINE=bing, etc.
How It Works
LLM/Agent -> MCP Client -> browser-search-mcp -> Browser (CDP) -> Search Engine
| (optional)
browser-takeover extensionMCP server finds or launches a Chrome/Edge browser with remote debugging
Navigates to the search engine
Extracts structured results via JavaScript DOM parsing
Returns title, url, snippet as JSON
Results cached for 5 minutes by default
Project Structure
browser-search-mcp/
browser_search_mcp/
config.py Configuration via JSON file + env vars
cdp.py CDP browser control with persistent sessions
bridge.py Browser-takeover extension bridge client
search.py Search orchestration with caching and retry
parsers.py Text-based search result parsers (fallback)
server.py FastMCP server with 5 search tools
.github/ CI and issue templates
README.md, CONTRIBUTING.md, LICENSERequirements
Python 3.11+
Chrome or Edge installed
Optional: browser-takeover-bridge extension (for authenticated sessions)
License
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
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/fangsylar-pixel/browser-search'
If you have feedback or need assistance with the MCP directory API, please join our Discord server