Brave Search MCP with SSE Support

Brave Search MCP with SSE Support

site icon
2025.03.20 0
TypeScript实时搜索Brave Search API 集成SSE 支持搜索工具
Brave Search MCP with SSE Support 是一个基于 Model Context Protocol (MCP) 的服务,集成了 Brave Search API 并通过 Server-Sent Events (SSE) 提供实时搜索功能。该服务支持 Docker 和 Coolify 部署,采用 TypeScript 实现,并提供了一个 Express.js 的 SSE 端点。
View on GitHub

Overview

基本能力

产品定位

Brave Search MCP with SSE Support 是一个实时搜索服务,通过 MCP 协议集成 Brave Search API,并提供 SSE 支持以实现实时搜索结果的推送。

核心功能

  • Brave Search API 集成
  • 通过 SSE 提供实时搜索结果
  • 支持 Docker 和 Coolify 部署
  • TypeScript 实现
  • Express.js SSE 端点

适用场景

  • 需要实时搜索功能的应用程序
  • 需要集成 Brave Search API 的项目
  • 使用 SSE 进行实时数据推送的场景

工具列表

  • brave_web_search: 使用 Brave Search API 执行网页搜索 typescript { query: string; // 搜索查询 count?: number; // 结果数量 (1-20, 默认: 10) }

常见问题解答

  • 错误处理: 服务器会将错误广播给所有连接的 SSE 客户端,错误格式为: json { "type": "error", "error": "error message" }
  • 连接管理: SSE 连接将保持打开状态,直到客户端关闭它。
  • 生产部署: 建议为消息端点实现身份验证。

使用教程

使用依赖

  • Brave Search API key
  • Node.js 18+
  • Docker (用于容器化部署)
  • Coolify 实例

安装教程

  1. 克隆仓库
  2. 创建 .env 文件并填入 Brave API key: BRAVE_API_KEY=your_api_key_here PORT=3001
  3. 安装依赖: bash npm install
  4. 启动开发服务器: bash npm run dev

Docker 部署

  1. 使用 docker-compose 构建并运行: bash docker-compose up --build

Coolify 部署

  1. 在 Coolify 仪表板中创建新服务
  2. 选择 "Deploy from Source"
  3. 配置以下内容:
  4. Repository URL: 你的仓库 URL
  5. Branch: main
  6. Build Command: npm run build
  7. Start Command: npm start
  8. Port: 3001
  9. Environment Variables:
    • BRAVE_API_KEY=your_api_key_here
    • PORT=3001

调试方式

  1. 使用 SSE 端点: GET http://your-server:3001/sse 使用 EventSource API 连接: ```javascript const eventSource = new EventSource('http://your-server:3001/sse');

eventSource.onmessage = (event) => { const data = JSON.parse(event.data); console.log(data); };

eventSource.onerror = (error) => { console.error('SSE Error:', error); eventSource.close(); }; 2. 使用消息端点: POST http://your-server:3001/messages Content-Type: application/json

{ "query": "your search query", "count": 10 // 可选, 默认: 10, 最大: 20 } ```

许可证

None