I Built an Open-Source Web Search Plugin for AI Agents — No API Key Needed
Bring real-time internet access to your Claude, ChatGPT, or local LLM — for free.
As someone who builds AI assistants and tools, I’ve always hit the same wall:
Language models are smart — but blind to the current internet.
Sure, Claude has a browsing plugin, and GPT-4 can use tools… but:
- They're paid features (Bing/GCS API isn’t cheap),
- You often can’t customize the results or search logic,
- And some platforms don’t allow plugin access at all (especially for local or self-hosted models).
So I built an open-source alternative — Open-WebSearch MCP — a lightweight, multi-engine search tool that speaks the MCP protocol (used by Claude, LangChain, etc).
What It Does
✅ Multi-engine search with no API keys
Currently supports:
Bing, Baidu, CSDN, DuckDuckGo, Exa, Brave
(And more like Reddit, GitHub, Google are coming.)
✅ Structured output for RAG
Each result includes title, url, snippet, engine, and source. Easy to parse for chat agents and document systems.
✅ Article content extraction
Want to fetch full blog posts from CSDN or Linux.do for summarization or RAG pipelines? Built-in support.
✅ Supports Claude, Cherry Studio, LangChain, and more
Implements both streamableHttp and SSE MCP transports.
✅ Free & self-hosted
No rate-limited APIs. No account needed. Fully local control over what and how you search.
How to Use
Install locally:
git clone https://github.com/Aas-ee/open-webSearch
cd open-webSearch
npm install
npm run build
node build/index.js
Or use Docker:
docker run -d --name web-search \
-p 3000:3000 \
-e ENABLE_CORS=true \
ghcr.io/aas-ee/open-web-search:latest
Example: Claude Plugin Config (Cherry Studio)
{
"mcpServers": {
"web-search": {
"name": "Web Search MCP",
"type": "streamableHttp",
"baseUrl": "http://localhost:3000/mcp"
},
"web-search-sse": {
"name": "Web Search SSE",
"type": "sse",
"url": "http://localhost:3000/sse"
}
}
}
search → perform multi-engine search
use_mcp_tool({
server_name: "web-search",
tool_name: "search",
arguments: {
query: "how to build a Claude plugin",
engines: ["bing", "csdn"],
limit: 5
}
})
fetchCsdnArticle → fetch full blog text
fetchLinuxDoArticle → (experimental) get Linux.do article content
⚙️ Dev Features
- Supports HTTP proxies (
USE_PROXY, PROXY_URL env vars)
- Configurable default engine
- Auto builds Docker images via GitHub Actions
- Easy to fork + customize for your own toolchains
⭐ Try It, Fork It, Improve It
GitHub: https://github.com/Aas-ee/open-webSearch
Docker: ghcr.io/aas-ee/open-web-search:latest
If you’re building an LLM agent, this gives your assistant eyes on the internet. No API keys. No paywalls.
Let me know what engines or features you’d like next!
Happy hacking — and let your LLMs browse freely!