Brave-Search-MCP-SSE
0
This project is an MCP server designed to integrate with Brave Search and deliver real-time search results through Server-Sent Events (SSE). Its standout features include ease of deployment on Docker and Coolify, along with a robust TypeScript-based implementation.
Brave Search MCP with SSE Support
This is a Model Context Protocol (MCP) server that provides Brave Search capabilities with Server-Sent Events (SSE) integration. It can be deployed to Coolify and used as a real-time search service.
Features
- Brave Search API integration through MCP
- Real-time search results using SSE
- Docker and Coolify ready
- TypeScript implementation
- Express.js SSE endpoint
Prerequisites
- Brave Search API key
- Node.js 18+
- Docker (for containerized deployment)
- Coolify instance
Local Development
- Clone the repository
- Create a
.env
file with your Brave API key:BRAVE_API_KEY=your_api_key_here PORT=3001
- Install dependencies:
npm install
- Start development server:
npm run dev
Docker Deployment
- Build and run using docker-compose:
docker-compose up --build
Coolify Deployment
- In your Coolify dashboard, create a new service
- Choose "Deploy from Source"
- Configure the following:
- Repository URL: Your repository URL
- Branch: main
- Build Command:
npm run build
- Start Command:
npm start
- Port: 3001
- Environment Variables:
- BRAVE_API_KEY=your_api_key_here
- PORT=3001
Using the SSE Integration
SSE Endpoint
GET http://your-server:3001/sse
The SSE endpoint provides real-time search results. Connect to it using the 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();
};
Messages Endpoint
POST http://your-server:3001/messages
Content-Type: application/json
{
"query": "your search query",
"count": 10 // optional, default: 10, max: 20
}
Use this endpoint to trigger searches that will be broadcast to all connected SSE clients.
MCP Usage
The server provides the following MCP tool:
brave_web_search
: Performs a web search using the Brave Search API{ query: string; // Search query count?: number; // Number of results (1-20, default: 10) }
Error Handling
- The server broadcasts errors to all connected SSE clients
- Errors are formatted as:
{ "type": "error", "error": "error message" }
Notes
- The SSE connection will stay open until the client closes it
- Each search result is broadcast to all connected clients
- The server automatically handles disconnections and cleanup
- For production deployment, consider implementing authentication for the messages endpoint