home / mcp / open-websearch mcp server

Open-WebSearch MCP Server

WebSearchMCP using free multi-engine search (NO API KEYS REQUIRED) — Supports Bing, Baidu, DuckDuckGo, Brave, Exa, Github, Juejin and CSDN.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "aas-ee-open-websearch": {
      "url": "http://localhost:3000/mcp",
      "headers": {
        "MODE": "stdio",
        "PORT": "3000",
        "PROXY_URL": "http://127.0.0.1:7890",
        "USE_PROXY": "true",
        "CORS_ORIGIN": "*",
        "ENABLE_CORS": "true",
        "MCP_TOOL_SEARCH_NAME": "search",
        "DEFAULT_SEARCH_ENGINE": "duckduckgo",
        "ALLOWED_SEARCH_ENGINES": "duckduckgo,bing,exa",
        "MCP_TOOL_FETCH_CSDN_NAME": "fetchCsdnArticle",
        "MCP_TOOL_FETCH_GITHUB_NAME": "fetchGithubReadme",
        "MCP_TOOL_FETCH_JUEJIN_NAME": "fetchJuejinArticle",
        "MCP_TOOL_FETCH_LINUXDO_NAME": "fetchLinuxDoArticle"
      }
    }
  }
}

You can run the Open-WebSearch MCP Server to perform multi-engine web searches and fetch article content without API keys. It exposes an MCP interface you can connect to from compatible clients, enabling you to search across engines, fetch article bodies, and tailor which engines you want to use.

How to use

Connect with your MCP client to the Web Search MCP Server using either the HTTP endpoint or the local STDIO configuration. The HTTP option exposes a standard MCP HTTP path you can call from any MCP client. The STDIO option lets you run the server locally and communicate via standard input/output streams.

How to install

Prerequisites: ensure you have Node.js and npm installed on your system.

1) Install dependencies and build the server locally.

2) Start the server using one of the supported configurations shown below.

HTTP configuration (remote MCP URL)

{
  "mcpServers": {
    "web-search": {
      "name": "Web Search MCP",
      "type": "streamableHttp",
      "description": "Multi-engine web search with article fetching",
      "isActive": true,
      "baseUrl": "http://localhost:3000/mcp"
    }
  }
}

NPX STDIO configuration (local run)

{
  "mcpServers": {
    "web-search": {
      "args": [
        "open-websearch@latest"
      ],
      "command": "npx",
      "env": {
        "MODE": "stdio",
        "DEFAULT_SEARCH_ENGINE": "duckduckgo",
        "ALLOWED_SEARCH_ENGINES": "duckduckgo,bing,exa"
      }
    }
  }
}

Local STDIO configuration for Windows (example)

{
  "mcpServers": {
    "open_websearch_local": {
      "command": "node",
      "args": ["C:/path/to/your/project/build/index.js"],
      "env": {
        "MODE": "stdio",
        "DEFAULT_SEARCH_ENGINE": "duckduckgo",
        "ALLOWED_SEARCH_ENGINES": "duckduckgo,bing,exa"
      }
    }
  }
}

Environment variables you can configure

Enable CORS and select engines to tailor the server behavior. The following variables appear in typical setups and are described here for reference.

Security and usage notes

- This tool performs web search by aggregating results from multiple engines. Respect the terms of service of each engine and implement reasonable rate limiting to avoid being blocked.

- If you need to access resources behind a proxy, enable the HTTP proxy feature and provide a proxy URL.

Troubleshooting

- If searches are not returning results, verify that the selected engines are allowed by your configuration and that the server is reachable at the configured URL or port.

Available tools

search

Search using multiple engines and return structured results with title, URL, and description.

fetchLinuxDoArticle

Fetch complete content of Linux.do forum articles from a given URL.

fetchCsdnArticle

Fetch complete content of CSDN blog articles from a given URL.

fetchGithubReadme

Fetch README content from a GitHub repository URL.

fetchJuejinArticle

Fetch complete content of Juejin articles from a given URL.