A fully local, API-key-free Web Search MCP (Model Context Protocol) Server powered by multiple backend providers including DuckDuckGo, Wikipedia, and GitHub’s public search API. This server exposes search capabilities via FastMCP tools, making it ideal for LLM agents, automation systems, or local assistants.
-
No API keys required — uses DuckDuckGo, Wikipedia, and GitHub public endpoints.
-
Unified search API via MCP tools:
web_search– general web searchnews_search– news articlesimage_search– image searchvideo_search– video searchsearch_wikipedia– Wikipedia articlessearch_github– GitHub repositoriesget_search_suggestions– autocomplete suggestions
-
Local HTTP MCP server provided by FastMCP
-
Simple deployment via Python or Docker
├── .env.example # Example .env file
├── .gitignore # git helper
├── Dockerfile # Docker file for local deployment
├── LICENCE # Licence file
├── Makefile # Dev helpers (venv setup, Docker compose, cleanup)
├── README.md # This file
├── __init__.py # Python init file
├── docker-compose.yml # Docker compose file
├── requirements.txt # Python dependencies
├── search_backends.py # Search backend implementations (DuckDuckGo, Wikipedia, GitHub)
└── server.py # MCP server and tool definitions
- Python 3.10+
- (Optional)
make - (Optional) Docker + docker-compose
make initOr manually:
python -m venv venv
source venv/bin/activate
pip install -r requirements.txtpython server.pyBy default it runs at:
HOST: 0.0.0.0
PORT: 9393
Override with environment variables:
export HOST_ADDRESS=127.0.0.1
export HOST_PORT=8080
python server.pymake dev-composeStop the environment:
make dev-downGeneral DuckDuckGo web search.
Arguments:
| Name | Type | Description |
|---|---|---|
| query | str | Search query |
| max_results | int | 1–50 |
| region | str | e.g. us-en, wt-wt |
| safesearch | str | strict, moderate, off |
Searches recent news articles.
Extra argument:
time_range–d,w,m,y
DuckDuckGo image search.
Extra arguments:
size– Small/Medium/Large/Wallpapertype_image– photo/clipart/gif/line/transparent
DuckDuckGo video search.
Extra arguments:
duration– Short/Medium/Longresolution– High/Standard
Search Wikipedia and retrieve summaries + URLs.
Search GitHub repositories via the public API. No API key required.
Returns DuckDuckGo autocomplete suggestions.
All backend logic is implemented in
search_backends.py
Backends include:
ddgs– DuckDuckGo search/text/news/images/videos/suggestionswikipedia– Wikipedia API wrapper- GitHub public repository search (REST)
All requests include a custom User-Agent to reduce throttling.
| Variable | Default | Description |
|---|---|---|
HOST_PORT |
9393 |
Server port |
HOST_ADDRESS |
0.0.0.0 |
Bind address |
Example:
HOST_PORT=8080 HOST_ADDRESS=127.0.0.1 python server.pyInitialize local venv:
make initClean development environment:
make cleanDuckDuckGo sometimes rate-limits requests. Try:
- Slower request frequency
- Changing IP
- Avoiding rapid repeated queries
GitHub rate-limits unauthenticated requests. Wait for reset or reduce frequency.
MIT