π Open-WebSearch MCP: Give Your AI Plugin Real-Time Web Access β for Free
π§ "Let your AI plugin really access the web β no API key, no rate limits, fully self-hosted and multi-engine."
π€ Why I Built This
If you've ever worked with tools like Claude, LangChain, or built your own RAG pipeline, youβve probably hit this wall:
π βThe AI doesnβt know what's on the internet. And adding web access usually means paying for Bing or Google Search APIs.β
That didnβt sit right with me.
So I built Open-WebSearch MCP β an open-source, multi-engine web search server that speaks Claude-compatible MCP protocol.
It works with Claude Dev Plugin, Cherry Studio, LangChain MCP clients β and it doesnβt need any API key.
π§ What It Does
β
Multi-Engine Web Search
Supports Bing
, Baidu
, DuckDuckGo
, CSDN
, Exa
, and Brave
. More coming soon.
You can even combine them in a single query.
β
Structured Output
Search results are returned as JSON:
{
"title": "Result title",
"url": "https://...",
"description": "...",
"source": "engine.com",
"engine": "bing"
}
β
Article Fetching
It includes tools to extract full blog content (e.g., CSDN
, Linux.do
).
β
Fully Free, Self-Hosted
No Bing/Google API keys, no scraping limits (you host it), no cloud vendor lock-in.
β
Streamable + SSE Support
Integrates with Claude, Cherry Studio, and LangChain clients out of the box using the MCP protocol with streamableHttp
or SSE
.
β
Docker Ready
Run with a single command via Docker or deploy manually with Node.js.
π Quickstart
Option 1: Run Locally
git clone https://github.com/Aas-ee/open-webSearch
cd open-webSearch
npm install
npm run build
node build/index.js
Option 2: Docker (recommended)
docker run -d \
--name web-search \
-p 3000:3000 \
-e ENABLE_CORS=true \
-e CORS_ORIGIN=* \
ghcr.io/aas-ee/open-web-search:latest
You can configure:
- Proxy support (
USE_PROXY
) - Default search engine (
DEFAULT_SEARCH_ENGINE
) - CORS settings, etc.
π§© Example: Using in a Claude Plugin
You can plug it directly into Claudeβs Dev Extension, Desktop client, or Cherry Studio like this:
{
"mcpServers": {
"web-search": {
"type": "streamableHttp",
"url": "http://localhost:3000/mcp"
},
"web-search-sse": {
"type": "sse",
"url": "http://localhost:3000/sse"
}
}
}
Then call the search
tool like this:
use_mcp_tool({
server_name: "web-search",
tool_name: "search",
arguments: {
query: "LangChain vs Claude",
limit: 5,
engines: ["bing", "csdn", "duckduckgo"]
}
})
Or fetch full articles:
use_mcp_tool({
server_name: "web-search",
tool_name: "fetchCsdnArticle",
arguments: {
url: "https://blog.csdn.net/xxx/article/details/xxx"
}
})
π οΈ Dev-Friendly Features
- βοΈ Auto CI/CD build to Docker Hub & GitHub Container Registry
- π§± Easily extend search engine support (just add a new engine handler)
- π Runs fully offline in LAN/internal AI labs
- π§ͺ Great for RAG, LangChain agents, or plugin testing
π Links
- GitHub: https://github.com/Aas-ee/open-webSearch
-
Docker:
ghcr.io/aas-ee/open-web-search:latest
β€οΈ Want to Contribute?
Pull requests and issues welcome! Feel free to:
- Fork it for your own plugin setup
- Add new search engines or article extractors
- Help improve stability (esp. HTML selectors!)
π Summary
If you're building AI tools and want real-time web access β but donβt want to pay for search APIs β this project is for you.
"Open-WebSearch MCP: Let your AI agents actually browse the web β for free, forever."
Give it a β if you find it useful!
Top comments (0)