Free multi-engine web search MCP server — no API keys required
Project description
Universal VibeT Search MCP
Free multi-engine web search MCP server — no API keys required.
Acknowledgment: The multi-engine search logic is based on the
web_searchtool from Vibe-Trading (MIT License) — an open-source AI trading research workspace by HKUDS.
Features
- Zero API keys — queries DuckDuckGo, Google, Bing, Brave, Mojeek, Yahoo directly
- Retry with backoff — 3 attempts with exponential backoff for transient failures
- News search — dedicated tool for recent news results
- Lightweight — single file, minimal dependencies
Quick Start
Install
From GitHub:
pip install git+https://github.com/hdworker/universal-vibet-search-mcp.git
From source:
git clone https://github.com/hdworker/universal-vibet-search-mcp.git
cd universal-vibet-search-mcp
pip install -e .
Run as MCP Server
universal-vibet-search-mcp
Or directly:
python -m src.server
Add to Claude Desktop / OpenCode / Cursor
Add to your MCP config:
{
"mcpServers": {
"web-search": {
"command": "universal-vibet-search-mcp",
"transport": "stdio"
}
}
}
Or with Python module:
{
"mcpServers": {
"web-search": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "/path/to/universal-vibet-search-mcp",
"transport": "stdio"
}
}
}
Tools
web_search
Search the web across free engines.
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
query |
string | required | Search query |
max_results |
int | 5 | Max results (1-10) |
Returns: JSON with status, query, and results array.
web_search_news
Search recent news across free engines.
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
query |
string | required | News search query |
max_results |
int | 5 | Max results (1-10) |
Returns: JSON with status, query, and results array (includes date and source).
Example Output
User query
│
▼
┌─────────────────────────────────────────┐
│ ddgs (DuckDuckGo Search library) │
│ │
│ Queries multiple search engines │
│ (DuckDuckGo, Google, Bing, etc.) │
│ │
│ If rate-limited → retry (3x) │
│ If transient error → exponential backoff
└─────────────────────────────────────────┘
│
▼
JSON results
The ddgs library is a metasearch aggregator that queries multiple search engines without requiring API keys. It works by scraping public search results pages.
Example Output
{
"status": "ok",
"query": "Python MCP server tutorial",
"results": [
{
"title": "Building an MCP Server with FastMCP",
"url": "https://example.com/fastmcp-tutorial",
"snippet": "Learn how to build a Model Context Protocol server..."
}
]
}
Limitations
- Rate limits — Free engines rate-limit aggressively from cloud/shared IPs (~100 req/hour per engine). The multi-engine fallback mitigates this.
- No guaranteed uptime — Engines may change their scraping targets.
- CAPTCHA — Occasionally engines may present CAPTCHAs; the retry logic handles most transient cases.
Credits
- Vibe-Trading (MIT License) — Original multi-engine search implementation by HKUDS at HKU
- ddgs — DuckDuckGo Search library
- FastMCP — FastMCP framework for building MCP servers
License
MIT License — see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file universal_vibet_search_mcp-0.1.0.tar.gz.
File metadata
- Download URL: universal_vibet_search_mcp-0.1.0.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ae4915d68bc34d14b51c33524bc5c938263189eef6bf5e8577f7d38e7ce107f
|
|
| MD5 |
8d6bc0c649e766034354b68360221a11
|
|
| BLAKE2b-256 |
4552edd6d84c74b7b9675a5496f5d3813cb3ad6059cf43a28eefd2b3bf396641
|
File details
Details for the file universal_vibet_search_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: universal_vibet_search_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9a9e7f321ca8c907bfe1b56e6e7c391f40c23531d7fb03b1a70f3295b0844c9
|
|
| MD5 |
604aa7532f8d98e553adf480cb4e0497
|
|
| BLAKE2b-256 |
7ecff1b315474342372271a939158321c9540df8891574b04779484883ca90e8
|