websearch
Allows performing web searches using Brave as a search source, with failover across multiple providers and the ability to list available sources via the MCP server.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@websearchsearch for the latest news on OpenAI"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
webSearch 多源聚合搜索引擎
一个前后端一体、单端口部署的多源搜索引擎:内置多个搜索源(Tavily / 豆包 / Brave / Exa / Browserbase), 按优先级故障转移,谁先成功返回谁。对外提供 REST API 与 MCP server,均用生成的访问密钥鉴权。
后端:NestJS(Node),failover 搜索引擎 + API/MCP
前端:Vue 3 + Element Plus 管理页
单进程单端口:由后端直接托管前端构建产物,
前端 + API + MCP都在一个端口上
快速部署(供人复制即跑)
要求:Node.js ≥ 18。推荐在项目根目录用一条命令装依赖:
git clone <你的仓库地址> && cd websearch
npm install # 自动安装 backend + frontend 依赖(通过 postinstall)
cp backend/.env.example backend/.env # 复制配置文件,按需修改(见下)
npm run build # 构建前端 + 后端
npm start # 启动,单端口提供整个服务打开浏览器访问 http://localhost:3000(端口在 backend/.env 的 PORT 改)。
部署到服务器时:
npm start默认监听0.0.0.0,改.env的PORT即可换端口; 建议用 pm2 / systemd 守护进程(如pm2 start "npm start" --name websearch)。
Related MCP server: codex-search-mcp
配置文件 backend/.env
所有部署相关的配置都在这一个文件里(复制自 .env.example):
变量 | 作用 |
| 整个服务(前端+后端)的访问端口,默认 |
| 可选。设置后,管理接口(/api/providers 等)需带该 Key 才能访问;留空则放开 |
| 各搜索源 Key(也可在后端「搜索源管理」页面里填) |
⚠️
.env已被.gitignore忽略,不会提交;要共享模板请改.env.example。
使用:生成访问密钥,接入 API / MCP
打开管理页 → 顶部「访问密钥」→ 点「生成访问密钥」,选作用域(api / mcp / 都要), 一次显示出明文并以 REST / MCP 两段示例一键复制(地址自动按当前访问的域名生成)。
REST API:
curl -X POST http://localhost:3000/api/v1/search \
-H "Authorization: Bearer <你的KEY>" \
-H "Content-Type: application/json" \
-d '{"query":"claude"}'MCP server(streamable HTTP): 端点 http://localhost:3000/mcp,带上 Authorization: Bearer 请求头。
支持 Claude Desktop / Cursor 等可配置 HTTP 头的客户端,示例(claude_desktop_config.json 的 mcpServers):
{
"mcpServers": {
"websearch": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": { "Authorization": "Bearer <你的KEY>" }
}
}
}密钥安全:明文只在生成时显示一次,backend/data/keys.json 只存 SHA-256 哈希;可随时启用/停用/吊销。
常用 API
方法 / 路径 | 说明 | 鉴权 |
| 对外搜索 REST(后端逻辑同 /api/search) | 访问密钥(scope=api) |
| 管理端搜索(failover) | ADMIN_KEY(未设则放开) |
| MCP server(工具: | 访问密钥(scope=mcp) |
| 生成 / 列表 / 吊销访问密钥 | ADMIN_KEY(未设则放开) |
| 源 / 代理管理 | ADMIN_KEY(未设则放开) |
| 健康检查 | 无 |
开发模式
npm run dev:web # 前端 Vite dev(http://localhost:5173,/api 已代理到 3000)
# 另开一个终端:
npm run dev:api # 后端热重载(http://localhost:3000)运行时数据
backend/data/sources.json— 搜索源配置(页面里也能改)backend/data/proxies.json— 代理配置backend/data/keys.json— 访问密钥(仅哈希)
backend/data/ 已被 .gitignore 忽略,部署时建议挂到持久化目录(docker volume / 软链)。
This server cannot be deployed
Maintenance
Related MCP Connectors
Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.
Free web search for AI agents. No API key required. Hosted MCP in active development.
Search the agentic web. 4,100+ sites, 11 tools incl. check_url + verify_mcp for probe-before-use.
Agent-driven search: build, import, tune, search, and score result quality — all over MCP.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to perform web search, extraction, and research across multiple provider backends with persistent multi-key rotation and auditable routing. Supports MCP, CLI, and Agent Skill entry points.MIT
- AlicenseBqualityBmaintenanceEnables MCP clients to run live web searches, fetch and navigate readable web pages, search images, capture PDF screenshots, and retrieve finance, weather, sports, and world-time data through a zero-configuration authenticated backend.1110 npmMIT
- AlicenseAqualityAmaintenanceEnables MCP-capable agents to perform reliable web search and content fetching through a single server that automatically fails over across multiple providers. It handles keyed or keyless authentication automatically and returns clean Markdown or text results.31MIT
- FlicenseNot gradedqualityAmaintenanceEnables MCP clients to run local web searches with automatic failover across multiple search providers and to extract public web pages as titles and Markdown content, using circuit breaking and key-redacted logging.-