Heventure Search MCP
<!-- mcp-name: io.github.HughesCuit/heventure-search-mcp -->
[**δΈζ**](./README_CN.md) | English
---
[](https://pypi.org/project/heventure-search-mcp/)
[](https://pypi.org/project/heventure-search-mcp/)
[](https://opensource.org/licenses/MIT)
[](https://pypi.org/project/heventure-search-mcp/)
[](https://glama.ai/mcp/servers/HughesCuit/heventure-search-mcp)
# π MCP Web Search Server
> **Free forever. No API key required.** A web search MCP server that works out of the box with Claude Desktop, Cursor, and any MCP-compatible AI tool.
```bash
pip install heventure-search-mcp
```
## β¨ Why?
Most MCP search servers require you to sign up for API keys (Bing, Google, SerpAPI...). This one works **immediately** β zero configuration, zero cost, zero sign-ups.
| Feature | This Server | Others |
|---------|:-----------:|:------:|
| No API key needed | β
| β |
| DuckDuckGo (free) | β
| varies |
| Bing (free) | β
| β |
| Google (free) | β
| β |
| Optional SerpAPI/Tavily | β
| β
|
| Async + caching | β
| varies |
| Install in 10 seconds | β
| varies |
## π Quick Start
### Option 1: Claude Desktop / Cursor
Add to your MCP config:
```json
{
"mcpServers": {
"web-search": {
"command": "uvx",
"args": ["heventure-search-mcp"]
}
}
}
```
### Option 2: Command Line
```bash
pip install heventure-search-mcp
heventure-search-mcp
```
### Option 3: Docker
```bash
docker run -p 8080:8080 heventure-search-mcp
```
## π§ Available Tools
### `web_search`
Search the web with multiple engines simultaneously.
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `query` | string | *required* | Search query |
| `max_results` | int | 10 | Number of results (1-20) |
| `search_engine` | string | `"both"` | `duckduckgo`, `bing`, `google`, or `both` |
### `get_page_content`
Extract readable text from any webpage.
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `url` | string | *required* | Page URL to fetch |
## π Optional: Enhanced Search
The free engines work great for most use cases. For higher quality results, you can optionally add paid API keys:
```bash
# SerpAPI β 100 free searches/month
export SERPAPI_KEY="your_key"
# Tavily β 1,000 free searches/month
export TAVILY_API_KEY="your_key"
```
## ποΈ Architecture
- **Engines**: DuckDuckGo, Bing, Google, SerpAPI, Tavily
- **Caching**: LRU cache with 300s TTL (100 entries max)
- **Protocol**: MCP (Model Context Protocol)
- **Runtime**: Python 3.10+ with asyncio
## π€ Contributing
Issues and Pull Requests are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
## π License
MIT License β use it however you want.
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one searches the web, the other retrieves content from a specific URL. There is no overlap in functionality, and their descriptions make the differentiation explicit.
Both tool names follow a consistent verb_noun pattern: 'web_search' and 'get_webpage_content'. The naming is clear, predictable, and uses underscores consistently.
With only two tools, the server is minimal but well-scoped for a search-and-retrieve workflow. While more tools could be added (e.g., for advanced filtering or caching), the current count fits the server's stated purpose without being too thin.
The tool set covers the basic search workflow: find pages via web_search, then extract content via get_webpage_content. There are no obvious gaps for the intended use case of retrieving text from web pages.