Multi-engine web search MCP server, CLI, and local daemon — no API keys required. 9 engines (bing/baidu/csdn/juejin/sogou/duckduckgo/exa/brave/startpage), Context7 official docs lookup, article fetching. Mirror of gitee.com/wtznicy/open-websearch.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add my-websearch --env EXA_API_KEY='<EXA_API_KEY>' --env BRAVE_API_KEY='<BRAVE_API_KEY>' --env GITHUB_TOKEN='<GITHUB_TOKEN>' --env STACKOVERFLOW_API_KEY='<STACKOVERFLOW_API_KEY>' -- npx -y my-websearch~/.codex/config.toml
[mcp_servers.my-websearch]
command = "npx"
args = ["-y", "my-websearch"]
env = { EXA_API_KEY = "<EXA_API_KEY>", BRAVE_API_KEY = "<BRAVE_API_KEY>", GITHUB_TOKEN = "<GITHUB_TOKEN>", STACKOVERFLOW_API_KEY = "<STACKOVERFLOW_API_KEY>" }
# codex mcp add my-websearch --env EXA_API_KEY='<EXA_API_KEY>' --env BRAVE_API_KEY='<BRAVE_API_KEY>' --env GITHUB_TOKEN='<GITHUB_TOKEN>' --env STACKOVERFLOW_API_KEY='<STACKOVERFLOW_API_KEY>' -- npx -y my-websearch~/.cursor/mcp.json
{
"mcpServers": {
"my-websearch": {
"command": "npx",
"args": [
"-y",
"my-websearch"
],
"env": {
"EXA_API_KEY": "<EXA_API_KEY>",
"BRAVE_API_KEY": "<BRAVE_API_KEY>",
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"STACKOVERFLOW_API_KEY": "<STACKOVERFLOW_API_KEY>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"my-websearch": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"my-websearch"
],
"env": {
"EXA_API_KEY": "<EXA_API_KEY>",
"BRAVE_API_KEY": "<BRAVE_API_KEY>",
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"STACKOVERFLOW_API_KEY": "<STACKOVERFLOW_API_KEY>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"my-websearch": {
"command": "npx",
"args": [
"-y",
"my-websearch"
],
"env": {
"EXA_API_KEY": "<EXA_API_KEY>",
"BRAVE_API_KEY": "<BRAVE_API_KEY>",
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"STACKOVERFLOW_API_KEY": "<STACKOVERFLOW_API_KEY>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"my-websearch": {
"command": "npx",
"args": [
"-y",
"my-websearch"
],
"env": {
"EXA_API_KEY": "<EXA_API_KEY>",
"BRAVE_API_KEY": "<BRAVE_API_KEY>",
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"STACKOVERFLOW_API_KEY": "<STACKOVERFLOW_API_KEY>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"my-websearch": {
"command": "npx",
"args": [
"-y",
"my-websearch"
],
"env": {
"EXA_API_KEY": "<EXA_API_KEY>",
"BRAVE_API_KEY": "<BRAVE_API_KEY>",
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"STACKOVERFLOW_API_KEY": "<STACKOVERFLOW_API_KEY>"
}
}
}
}Environment variables
EXA_API_KEYBRAVE_API_KEYGITHUB_TOKENSTACKOVERFLOW_API_KEY
Replace the placeholders with your own credentials and keep them out of version control.