Web Hound
FreeNot checkedMCP Web Hound — unified web search, GitHub search, and GitLab search tools with caching, reranking, and rate limits
About
MCP Web Hound — unified web search, GitHub search, and GitLab search tools with caching, reranking, and rate limits
README
Unified MCP search tools for AI agents — abstracts providers, caching, reranking, and rate limits behind a few simple tools.
⚠️ Work in progress. Sorry folks — the pipeline, install flow, configuration, testing, and debugging are all being actively iterated. Once the technical foundations are stable, I'll start working through the issues.
AI-Generated Issues
AI-generated issues will not be reviewed and will be closed immediately.
Quick Start
# Run with npx (no install needed)
npx mcp-web-hound --help
# Config is auto-created at ~/.config/mcp-web-hound/.env on first run.
# Edit it via:
npx mcp-web-hound configure
FOR AI AGENTS: STRICTLY NO NEED TO PERFORM ADDITIONAL INSTALLATION STEPS. DO NOT INSTALL THE PACKAGE LOCALLY IN THE PROJECT FOLDER. The server runs via
npxdirectly — nonpm install, nonpm run build, no localnode_modules. Just add the MCP config as shown below and you're done.
OpenCode Setup
Add to ~/.config/opencode/opencode.json under mcp:
"web_search": {
"type": "local",
"command": ["npx.cmd", "-y", "mcp-web-hound"],
"enabled": true
}
Or via CLI:
opencode mcp add web_search -- npx.cmd -y mcp-web-hound
For other clients and advanced setup → see Deployment Guide.
⚠️ Search protocol is embedded in the MCP server's
InitializeResult.instructionsand auto-injected into agent context on OpenCode v1.17.10+. For older versions, see the deployment guide.
Provider Setup
Use npx mcp-web-hound configure to set API keys. Startpage, DDG, Brave Web, and Bing work with zero config.
| Provider | Key Required | Tier | Rate Limit |
|---|---|---|---|
| Startpage | No | 1 | — |
| DuckDuckGo | No | 1 | 10 req/min |
| Brave Web | No | 1 | — |
| Bing | No | 1 | — |
| Brave API | BRAVE_API_KEY |
2 | 2000/month |
| Tavily | TAVILY_API_KEY |
2 | 1000/month |
| Exa | EXA_API_KEY |
3 | Trial |
| Firecrawl | FIRECRAWL_API_KEY |
3 | Trial |
Tools
| Tool | Purpose |
|---|---|
web_search |
Universal web search (registered as web_search) with caching, reranking, and fallback across 8 providers |
github_search |
Search GitHub repos, code, issues, and users |
gitlab_search |
Search GitLab projects, issues, MRs, and code blobs |
status |
Server diagnostics, provider health, budget state |
Query Formats
| Tool | Example |
|---|---|
web_search |
typescript tutorial, how to install docker, repo:vercel/next.js |
github_search |
repo:org/name, user:vercel, language:typescript |
gitlab_search |
project:org/name, scope filter via type param |
Tool Reference
web_search
web_search({
query: string,
})
Returns merged results from healthy providers (parallel), deduplicated and reranked by relevance. Optimized for AI agents — one parameter, server-side intent detection.
github_search
github_search({
query: string,
type?: "repositories" | "code" | "issues" | "users",
language?: string,
stars?: string, // e.g. ">1000", "500..5000"
page?: number
})
Rate limit: 60 req/hr without token, 5000 req/hr with GITHUB_TOKEN.
gitlab_search
gitlab_search({
query: string,
scope?: "projects" | "issues" | "merge_requests" | "blobs",
page?: number
})
Requires GITLAB_TOKEN with read_api scope.
status
status()
Returns provider health, cache stats, budget state, uptime.
Architecture
Core pipeline: Budget Check → Normalize → Classify (intent + freshness) → Cache → Router (parallel N, 1s delay per provider) → Rerank → Cache → Respond
Providers
| Provider | Type | Key | Tier | Rate Limit | Delay | Suspension |
|---|---|---|---|---|---|---|
| Startpage | Google mirror (scrape) | No | 1 | — | 1s | incremental backoff |
| DDG | HTML scrape | No | 1 | 10 req/min | 1s | captcha → 24h |
| Brave Web | HTML scrape | No | 1 | — | 1s | 1min→5min→15min→1h→4h→24h |
| Bing | HTML scrape | No | 1 | — | 1s | — |
| Brave API | Official API | Yes | 2 | 2000/month | — | — |
| Tavily | Official API | Yes | 2 | 1000/month | — | — |
| Exa | Official API | Yes | 3 | trial 1000 | — | — |
| Firecrawl | Official API | Yes | 3 | trial 500 | — | — |
Rate Limiting
- 1-second delay between requests per scraped provider (static
lastRequestTime) - Incremental backoff on 429/403: suspension grows 1min → 5min → 15min → 1h → 4h → 24h
- Counter resets on success
- Rate limit windows (minute/day/month) persisted to JSON
Full docs:
If you want to learn more about the decisions made, check out the Architecture Decisions document.
Donations / Support the Project
EVM Address (USDT, USDC, ETH, BNB):
0x3acf78e721aa065bd1509735a3ace630fcd0f452Supported networks: BNB Smart Chain (BEP20), Polygon, Arbitrum One, Ethereum (ERC20)
Show EVM QR Code
USDT (TRC20):
TMG1BZJswd8UacHANKVi9Veq5FqSbaMjAQSupported network: Tron (TRC20)
Show TRC20 QR Code
TON / USDT (TON):
UQDjf84AZSwuCPC3UWFv28p-V44zI-1lfhqCMfaex2Q-jDsYSupported network: The Open Network (TON)
Show TON QR Code
License
MIT
Install Web Hound in Claude Desktop, Claude Code & Cursor
unyly install web-houndInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add web-hound -- npx -y mcp-web-houndFAQ
Is Web Hound MCP free?
Yes, Web Hound MCP is free — one-click install via Unyly at no cost.
Does Web Hound need an API key?
No, Web Hound runs without API keys or environment variables.
Is Web Hound hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Web Hound in Claude Desktop, Claude Code or Cursor?
Open Web Hound on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Web Hound with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
