← Back to directory
O

Open WebSearch

Community
Multi-engine web search and content retrieval without API keys
GitHub source repository ↗
★ 1.7k Stars Category · Other Very popular Source revision ea2f0eee845f
51FMRS · D
Reliability
8/20
Security and permissions
11/20
Maintenance
10/20
Documentation
12/20
Setup experience
10/20

open-websearch is a feature-rich multi-engine search MCP server with CLI and local daemon, requiring no API keys. It supports multiple search backends and content fetching. However, it relies on scraping and may be subject to blocking, suitable for personal development and small projects, not for high-reliability production use.

Read the FMRS scoring method →

open-websearch is an MCP server, CLI, and local daemon that provides multi-engine web search and content retrieval (Bing, Baidu, DuckDuckGo, Exa, Brave, CSDN, Juejin, Startpage, Sogou) without requiring API keys. It supports HTTP proxy configuration for accessing restricted resources and returns structured results with titles, URLs, and descriptions. It also supports fetching full article content from specific platforms (CSDN, Juejin, GitHub README) and generic web/Markdown pages. The project is licensed under Apache-2.0.

Tools

search
Search the web across multiple engines and return structured results.
fetchLinuxDoArticle
Fetch the full content of a Linux.do forum article.
fetchCsdnArticle
Fetch the full content of a CSDN blog article.
fetchGithubReadme
Fetch the README content of a GitHub repository.
fetchJuejinArticle
Fetch the full content of a Juejin article.
fetchWebContent
Fetch content from public HTTP(S) pages or Markdown files.

Setup

  1. Quick start with npx: npx open-websearch@latest, optionally with environment variables (e.g., DEFAULT_SEARCH_ENGINE=duckduckgo).
  2. For local installation, clone the repo, run npm install and npm run build.
  3. Configure your MCP client (e.g., Claude Desktop, Cherry Studio, Cursor) with either stdio or streamable-http transport.
  4. Optionally configure proxy (USE_PROXY=true, PROXY_URL) and Playwright for browser fallback.
claude_desktop_config.json
{
  "mcpServers": {
    "web-search": {
      "command": "npx",
      "args": [
        "open-websearch@latest"
      ],
      "env": {
        "MODE": "stdio",
        "DEFAULT_SEARCH_ENGINE": "duckduckgo",
        "ALLOWED_SEARCH_ENGINES": "duckduckgo,bing,exa"
      }
    }
  }
}

Fit and risk

Best for

  • Developers needing keyless multi-engine search.
  • Agent workflows integrated into MCP clients (Claude Desktop, Cursor).
  • Service scenarios requiring a local daemon with HTTP API.

Not for

  • Production-grade search services requiring high reliability and compliance.
  • Applications sensitive to search engine terms of service.
  • Scenarios requiring guaranteed real-time results, as scraping may be blocked.

Required permissions

  • Network access to perform searches and fetch content.
  • Local port 3000 when running in HTTP mode (configurable via PORT).
  • No API keys or authentication required.
  • Optional: Playwright browser automation (requires installing Chromium or connecting to a remote browser).

Risks and side effects

  • Search engines may block frequent requests, causing temporary unavailability.
  • Results depend on engine HTML structure, may fail when engines update.
  • Some pages may not expose readable content (e.g., JS-heavy landing pages).
  • Network compliance when using proxies or fake-IP CIDRs.

Troubleshooting

  1. Check environment variables (e.g., `DEFAULT_SEARCH_ENGINE`, `USE_PROXY`, `PORT`) are set correctly.
  2. For streamable-http, ensure `baseUrl` points to `http://localhost:3000/mcp`.
  3. If encountering network restrictions, set `USE_PROXY=true` and `PROXY_URL`.
  4. If fetching certain sites fails, try Playwright mode (`SEARCH_MODE=auto`).

Use cases

Perform web searches across multiple engines without API keys.
Fetch articles from specific platforms (CSDN, Juejin, GitHub README) for deeper analysis.
Integrate search and fetch into automated scripts via CLI or daemon.

Supported clients

Claude DesktopFull support
Cherry StudioFull support
CursorFull support
VSCodeFull support