evo-scry
MCP server for internet search via direct Google and DuckDuckGo HTML scraping with AI-powered result normalization and optional summarization, requiring no API keys for search.
README
evo-scry
MCP server for internet search via direct Google and DuckDuckGo HTML scraping with AI-powered result normalization.
Python. Zero API keys required for search. Optional AI summarization via GitHub Copilot token or local Ollama model.
Features
- 4 MCP Tools:
web_search,search_google,search_duckduckgo,extract_content - Multi-engine aggregation: Parallel search across Google + DuckDuckGo with deduplication and cross-engine ranking
- AI summarization: Optional result summaries via GitHub Copilot or local Ollama models
- Production-ready: Systemd service with full environment variable configuration
- Privacy-respecting: Direct HTML scraping, no third-party search APIs
- FastMCP pattern: Same architecture as evo-mem — SSE + streamable-http dual transport
Quick Start
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install
pip install -e .
# Run (STDIO transport for local MCP clients)
python -m evoscry.mcp_server
# Run (SSE transport for remote/systemd)
python -m evoscry.mcp_server --transport sse --port 3000
Claude Desktop / VS Code Configuration
{
"mcpServers": {
"evo-scry": {
"command": "python",
"args": ["-m", "evoscry.mcp_server"]
}
}
}
SSE Transport (remote)
{
"mcpServers": {
"evo-scry": {
"url": "http://your-server:3000/sse"
}
}
}
MCP Tools
web_search
Search the internet using both Google and DuckDuckGo. Results are aggregated, deduplicated, and ranked.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| query | string | yes | — | Search query |
| engines | list | no | config | Engines to use |
| max_results | int | no | 10 | Max results per engine |
| language | string | no | "en" | Language code |
| date_range | string | no | — | "day", "week", "month", "year" |
| summarize | bool | no | false | AI-summarize results |
search_google / search_duckduckgo
Engine-specific search tools with the same parameters (minus engines and summarize).
extract_content
Fetch URLs and extract clean text or Markdown content.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| url | str | list[str] | yes | — | URL(s) to extract |
| format | string | no | "markdown" | "text" or "markdown" |
AI Summarization Setup
GitHub Copilot Token (recommended)
python -m evoscry.generate_copilot_token
Follow the prompts to authenticate via GitHub OAuth Device Flow. Add the generated token to your .env or systemd environment file.
Local Model (Ollama)
# In .env or systemd env:
EVOSCRY_LOCAL_MODEL_URL=http://localhost:11434
EVOSCRY_LOCAL_MODEL_NAME=llama3
Systemd Deployment
# Install (requires root)
sudo bash install.sh
# Configure
sudo vim /etc/evo-scry/evo-scry.env
# Start
sudo systemctl enable --now evo-scry
SSE endpoint: http://localhost:3000/sse
Health check: http://localhost:3000/health
Configuration
All options via environment variables. See .env.example for the full list.
| Variable | Default | Description |
|---|---|---|
EVOSCRY_TRANSPORT |
stdio |
stdio, sse, or streamable-http |
EVOSCRY_HOST |
0.0.0.0 |
HTTP bind address |
EVOSCRY_PORT |
3000 |
HTTP port |
EVOSCRY_SEARCH_ENGINES |
duckduckgo |
Enabled engines |
EVOSCRY_MAX_RESULTS |
10 |
Results per engine |
EVOSCRY_REQUEST_DELAY_MS |
1000 |
Rate limiting delay |
EVOSCRY_USER_AGENT |
rotate |
UA rotation |
EVOSCRY_PROXY_URL |
— | HTTP/SOCKS5 proxy |
EVOSCRY_COPILOT_TOKEN |
— | Copilot API token |
EVOSCRY_COPILOT_REFRESH_TOKEN |
— | GitHub OAuth token for auto-refresh |
EVOSCRY_LOCAL_MODEL_URL |
— | Ollama endpoint |
EVOSCRY_LOG_LEVEL |
info |
Log verbosity |
EVOSCRY_CACHE_TTL_SECONDS |
300 |
Cache TTL |
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.