实时搜索服务

一个基于Brave Search API和服务器发送事件(SSE)的实时搜索服务,支持Docker和Coolify部署。

  • by isaacgounton
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 isaacgounton/Brave-Search-MCP-SSE

使用说明

支持SSE的Brave Search MCP

这是一个模型上下文协议(MCP)服务器,它通过服务器发送事件(SSE)集成提供Brave搜索功能。它可以部署到Coolify并用作实时搜索服务。

特性

  • 勇敢的搜索API通过MCP集成
  • 使用SSE的实时搜索结果
  • Docker和Coolify就绪
  • TypeScript实现
  • Express.js SSE端点

先决条件

  • 勇敢搜索API密钥
  • Node.js 18+
  • Docker(用于容器化部署)
  • 冷却实例

地方发展

  1. 克隆存储库
  2. 创建一个 .env 使用Brave API密钥提交:
    BRAVE_API_KEY=your_api_key_here
    PORT=3001
    
  3. 安装依赖项:
    npm install
    
  4. 启动开发服务器:
    npm run dev
    

Docker部署

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

冷却部署

  1. 在Coolify仪表板中,创建新服务
  2. 选择“从源部署”
  3. 配置以下内容:
    • 存储库URL:您的存储库URL
    • 分支机构:主
    • 构建命令: npm run build
    • 启动命令: npm start
    • 端口:3001
    • 环境变量:
      • BRAVE_API_KEY=你的_API_KEY_here
      • 端口=3001

使用SSE集成

SSE 终端

GET http://your-server:3001/sse

SSE端点提供实时搜索结果。使用EventSource API连接到它:

const eventSource = new EventSource('http://your-server:3001/sse');

eventSource.onmessage = (event) => {
  const data = JSON.parse(event.data);
  // Handle the search results
  console.log(data);
};

eventSource.onerror = (error) => {
  console.error('SSE Error:', error);
  eventSource.close();
};

消息端点

POST http://your-server:3001/messages
Content-Type: application/json

{
  "query": "your search query",
  "count": 10  // optional, default: 10, max: 20
}

使用此端点触发将广播到所有连接的SSE客户端的搜索。

MCP使用

服务器提供以下MCP工具:

  • brave_web_search:使用Brave search API执行web搜索
    {
      query: string;    // Search query
      count?: number;   // Number of results (1-20, default: 10)
    }
    

错误处理

  • 服务器向所有连接的SSE客户端广播错误
  • 错误的格式为:
    {
      "type": "error",
      "error": "error message"
    }
    

备注

  • SSE连接将保持打开状态,直到客户端关闭它
  • 每个搜索结果都会广播给所有连接的客户端
  • 服务器自动处理断开连接和清理
  • 对于生产部署,考虑对消息端点实施身份验证