Install
$ agentstack add mcp-bennmann-local-websearch ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
local-websearch
A local DuckDuckGo web search MCP server in less than 150 lines of code. Exposes two tools via the MCP stdio protocol.
The server rate-limits search requests to approximately 30 per minute (2-second minimum interval) to be respectful to DuckDuckGo's infrastructure. Page content fetching is unthrottled but respects standard web etiquette (reasonable User-Agent, 10-second timeout, content truncation to ~15k characters).
Tools
search(query, max_results)— Searches DuckDuckGo and returns titles, URLs, and snippets.fetch_page_content(url, max_length)— Retrieves and cleans the main text content from a URL. Defaultmax_lengthis 15000 characters. (Reference: Wikipedia articles average 10k-20k chars; short articles 3k-5k; long articles 50k+.)
Installation
pip install -e .
Vibe Setup
Add to your Vibe configuration:
[[mcp_servers]]
name = "local-websearch"
transport = "stdio"
command = ["python3", "/path/to/mcp-local-websearch/server.py"]
Generic MCP Client Setup
For any MCP client using stdio transport:
{
"mcpServers": {
"local-websearch": {
"command": "python3",
"args": ["/path/to/mcp-local-websearch/server.py"]
}
}
}
Dependencies
- mcp==1.26.0
- ddgs==9.13.0
- httpx==0.28.1
- beautifulsoup4==4.14.3
License
Licensed under [Apache 2.0](LICENSE).
Dependencies use permissive licenses (MIT or BSD-3-Clause) compatible with Apache 2.0:
| Dependency | License | |------------|---------| | mcp | MIT | | ddgs | MIT | | httpx | BSD-3-Clause | | beautifulsoup4 | MIT | | lxml (transitive) | BSD-3-Clause | | primp (transitive) | MIT | | click (transitive) | BSD-3-Clause |
AI Usage Disclosure
This project was developed with assistance from AI models: Mistral Vibe and Qwen3 27B (various Unsloth quants).
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: bennmann
- Source: bennmann/local-websearch
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.