saiganeshreddy7/web-search-enrichment-mcp
3.1
If you are the rightful owner of web-search-enrichment-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Web Search Enrichment MCP is a Model Context Protocol server designed to enhance web search results by integrating Google search data with web scraping and content parsing.
🚀 file structure & naming
.
├── config.py
├── google_search_client.py
├── html_text_parser.py
├── search_enrich_workflow.py
├── web_content_fetcher.py
│
├── servers/
│ ├── mcp_server_stdio.py # MCP server using STDIO transport
│ ├── mcp_server_http.py # MCP server using HTTP transport (FastMCP)
│
├── clients/
│ ├── client_stdio_test.py # Test client for STDIO server
│ ├── client_http_test.py # Test client for HTTP server
│
├── requirements.txt
├── .env
├── README.md
# Web Search Enrichment MCP
A **Model Context Protocol (MCP) server** that provides web search enrichment
by combining Google search results with web scraping and content parsing.
---
## File Structure
### Core Components
- **`search_enrich_workflow.py`** – Core workflow: search → scrape → parse → enrich
- **`google_search_client.py`** – Google search API client (Serper API)
- **`web_content_fetcher.py`** – Multi-tier fetcher (aiohttp → cloudscraper → Playwright)
- **`html_text_parser.py`** – Clean text extraction with BeautifulSoup4
- **`config.py`** – Env/config management
### MCP Servers
- **`servers/mcp_server_stdio.py`** – Runs the MCP server with **STDIO transport**
- **`servers/mcp_server_http.py`** – Runs the MCP server with **HTTP transport** (via FastMCP)
### Clients
- **`clients/client_stdio_test.py`** – Test client for STDIO server
- **`clients/client_http_test.py`** – Client for HTTP server (can be used from another repo)
---
## Workflow
1. **Search** → query Google via Serper API
2. **Fetch** → retrieve HTML content with resilient fallbacks
3. **Parse** → clean text extraction
4. **Enrich** → combine search + scraped context
---
## Usage
### Run with STDIO
```bash
python servers/mcp_server_stdio.py
Test with:
python clients/client_stdio_test.py
Run with HTTP (FastMCP)
python servers/mcp_server_http.py
Call the tool:
python clients/client_http_test.py
Features
- Multi-tier fetching: aiohttp → cloudscraper → Playwright
- Async: concurrent search & scraping
- Clean text: strips scripts, styles, boilerplate
- Error resilience: gracefully handles failures
---
This way:
- `mcp_server_stdio.py` is **local-friendly** (plugin-style).
- `mcp_server_http.py` is **remote-friendly** (service-style).
- Clients are clearly named and sit in `clients/`.