Scour
FreeNot checkedLightning-fast web search API in Rust — scrapes Brave and Yahoo concurrently, returns normalized JSON. No API keys required. Runs as HTTP or MCP server for AI a
About
Lightning-fast web search API in Rust — scrapes Brave and Yahoo concurrently, returns normalized JSON. No API keys required. Runs as HTTP or MCP server for AI agents.
README
A lightning-fast search API in Rust that scrapes Brave and Yahoo (Bing) concurrently and returns normalized JSON. Runs as an HTTP server or MCP server for AI agents. No API keys required.
How It Works
HTTP/MCP request → concurrent scrapers → Brave + Yahoo + DuckDuckGo* → deduped results as JSON
Each engine runs with an independent timeout (DuckDuckGo: 2s, Brave/Yahoo: 5s) so a single hung engine doesn't block results. Duplicate URLs across engines are merged into one result listing all contributing engines.
DuckDuckGo is network-blocked from the production server (Azure IP
20.204.244.192hangs on TCP connect). It always times out but never blocks other engines.
Quick Start
cargo build --release
./target/release/scour
curl "http://localhost:10080/search?q=hello+world"
HTTP API
GET /search?q=<query>
Response:
{
"query": "rust tokio",
"results": [
{
"title": "Tokio - An asynchronous Rust runtime",
"url": "https://tokio.rs/",
"snippet": "Tokio is a library for writing fast...",
"engine": "Brave"
},
{
"title": "Tokio - The Tokio Guide",
"url": "https://tokio.rs/docs",
"snippet": "A practical guide...",
"engine": "Brave, Yahoo"
}
]
}
The engine field may contain comma-separated names when the same URL is returned by multiple engines.
MCP Server Mode
For AI agents (Claude Desktop, Gemini CLI, Cursor):
./scour --mcp
Configure:
{
"mcpServers": {
"scour": {
"command": "/path/to/scour",
"args": ["--mcp"]
}
}
}
Exposes one tool web_search that takes a query string and returns aggregated results.
Engines
| Engine | Status |
|---|---|
| Brave | ✅ Working |
| Yahoo (Bing) | ✅ Working |
| DuckDuckGo | ❌ Network blocked (production) — always times out |
Performance
Tested against live API (api.ahur.ir/search):
| Metric | Result |
|---|---|
| Avg latency (5 samples) | ~1.2s |
| Max concurrent users | 10 at 100% success |
| Batch throughput | 30 req / ~4s |
Build
cargo build --release
Requires: Rust toolchain.
License
CC BY-NC 4.0
Installing Scour
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/alikhaleghi/scourFAQ
Is Scour MCP free?
Yes, Scour MCP is free — one-click install via Unyly at no cost.
Does Scour need an API key?
No, Scour runs without API keys or environment variables.
Is Scour hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Scour in Claude Desktop, Claude Code or Cursor?
Open Scour 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
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Scour with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
