---
slug: "brave-search-sse-mcp"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/isaacgounton/brave-search-mcp-sse@main/README.md"
repo: "https://github.com/isaacgounton/brave-search-mcp-sse"
source_file: "README.md"
branch: "main"
---
# 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

1. Clone the repository
2. Create a `.env` file with your Brave API key:
   ```
   BRAVE_API_KEY=your_api_key_here
   PORT=3001
   ```
3. Install dependencies:
   ```bash
   npm install
   ```
4. Start development server:
   ```bash
   npm run dev
   ```

## Docker Deployment

1. Build and run using docker-compose:
   ```bash
   docker-compose up --build
   ```

## Coolify Deployment

1. In your Coolify dashboard, create a new service
2. Choose "Deploy from Source"
3. 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:

```javascript
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
  ```typescript
  {
    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:
  ```json
  {
    "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
