article
README
🚀 勇敢搜索 MCP 服务带 SSE 支持
这是一个提供勇敢搜索功能的模型上下文协议(MCP)服务器,它集成了服务器发送事件(SSE)。该服务可以部署到 Coolify 并作为实时搜索服务使用,为用户提供高效、实时的搜索体验。
✨ 主要特性
- 集成 Brave Search API 的 MCP 协议,让搜索功能更强大。
- 通过 SSE 实现实时搜索结果,让用户第一时间获取信息。
- 支持 Docker 和 Coolify 部署,方便快捷。
- 使用 TypeScript 实现,代码结构清晰、易于维护。
- 具备 Express.js SSE 端点,便于集成和使用。
📦 安装指南
先决条件
- 勇敢搜索 API 密钥
- Node.js 18+ 版本
- Docker(用于容器化部署)
- Coolify 实例
本地开发
- 克隆仓库。
- 创建一个
.env文件并添加你的 Brave API 密钥:BRAVE_API_KEY=your_api_key_here PORT=3001 - 安装依赖项:
npm install - 启动开发服务器:
npm run dev
Docker 部署
使用 docker-compose 构建并运行:
docker-compose up --build
Coolify 部署
- 在你的 Coolify 控制台中,创建一个新的服务。
- 选择“从源部署”。
- 配置如下:
- 仓库 URL:你的仓库 URL
- 分支:main
- 构建命令:
npm run build - 启动命令:
npm start - 端口:3001
- 环境变量:
- BRAVE_API_KEY=your_api_key_here
- PORT=3001
💻 使用示例
SSE 集成
SSE 端点
GET http://你的服务器:3001/sse
通过 SSE 端点提供实时搜索结果。使用 EventSource API 连接:
const eventSource = new EventSource('http://你的服务器:3001/sse');
eventSource.onmessage = (event) => {
const data = JSON.parse(event.data);
// 处理搜索结果
console.log(data);
};
eventSource.onerror = (error) => {
console.error('SSE 错误:', error);
eventSource.close();
};
消息端点
POST http://你的服务器:3001/messages
Content-Type: application/json
{
"query": "你的搜索查询",
"count": 10 // 可选, 默认值:10,最大值:20
}
使用此端点触发搜索,结果将广播到所有连接的 SSE 客户端。
MCP 使用
服务器提供以下 MCP 工具:
brave_web_search:通过 Brave Search API 执行网络搜索{ query: string; // 搜索查询 count?: number; // 结果数量(1-20, 默认值:10) }
🔧 技术细节
错误处理
- 服务器将错误广播到所有连接的 SSE 客户端。
- 错误格式如下:
{ "type": "error", "error": "错误信息" }
📄 注意事项
- SSE 连接将在客户端关闭前保持打开状态。
- 每个搜索结果都会广播给所有连接的客户端。
- 服务器自动处理断开和清理工作。
- 在生产环境中,建议为消息端点实现身份验证。
扫码联系在线客服