README.md•3.31 kB
# MCP Server with SSE
Een eenvoudige MCP (Model Context Protocol) server met Server-Sent Events (SSE) functionaliteit, geoptimaliseerd voor deployment op Render.com.
## Features
- 🚀 **Express.js server** - Lightweight en snel
- 📡 **Server-Sent Events (SSE)** - Real-time data streaming
- ⏰ **Timestamp broadcasting** - Elke 5 seconden
- 💓 **Keep-alive pings** - Elke 30 seconden
- 🌐 **CORS enabled** - Cross-origin requests toegestaan
- 🏥 **Health checks** - Voor Render.com monitoring
- 📊 **Status endpoints** - Server informatie en statistieken
## Endpoints
- `GET /` - Server informatie en beschikbare endpoints
- `GET /health` - Health check voor monitoring
- `GET /sse` - Server-Sent Events stream
- `GET /mcp/status` - Uitgebreide server status
## Local Development
1. **Installeer dependencies:**
```bash
npm install
```
2. **Start de server:**
```bash
npm start
# of voor development:
npm run dev
```
3. **Test SSE verbinding:**
Open `http://localhost:3000/sse` in je browser of gebruik curl:
```bash
curl -N http://localhost:3000/sse
```
## Deployment op Render.com
### Automatische Deployment
1. **Connect GitHub repository** in Render dashboard
2. **Selecteer deze repository**
3. **Render detecteert automatisch** de `render.yaml` configuratie
4. **Deploy** - Render gebruikt automatisch de configuratie
### Handmatige Deployment
1. **Maak nieuwe Web Service** in Render
2. **Configuratie:**
- **Build Command:** `npm install`
- **Start Command:** `npm start`
- **Health Check Path:** `/health`
- **Environment:** Node.js
- **Plan:** Free tier
## SSE Data Format
De SSE stream stuurt JSON data in het volgende formaat:
### Connection Event
```json
{
"type": "connection",
"message": "SSE connection established",
"timestamp": "2024-01-01T12:00:00.000Z",
"server": "MCP Server"
}
```
### Timestamp Event (elke 5 seconden)
```json
{
"type": "timestamp",
"timestamp": "2024-01-01T12:00:05.000Z",
"uptime": 123.456,
"memory": {
"rss": 12345678,
"heapTotal": 8765432,
"heapUsed": 5432109,
"external": 987654
}
}
```
### Keep-alive Ping (elke 30 seconden)
```
: keep-alive 1704110400000
```
## Environment Variables
- `PORT` - Server port (default: 3000, Render sets automatically)
- `NODE_ENV` - Environment (production/development)
## CORS Configuration
De server is geconfigureerd om alle origins toe te staan voor maximale compatibiliteit:
```javascript
cors({
origin: '*',
methods: ['GET', 'POST', 'OPTIONS'],
allowedHeaders: ['Content-Type', 'Cache-Control', 'Accept'],
credentials: false
})
```
## Error Handling
- **500 errors** - Gelogd en JSON response
- **404 errors** - Friendly message met beschikbare endpoints
- **SSE disconnects** - Automatic cleanup van intervals
- **Graceful shutdown** - SIGTERM/SIGINT handling
## Monitoring
### Health Check
```bash
curl https://your-app.onrender.com/health
```
### Server Status
```bash
curl https://your-app.onrender.com/mcp/status
```
## Dependencies
- **express** - Web framework
- **cors** - Cross-origin resource sharing
## License
MIT License - Zie LICENSE bestand voor details.
## Support
Voor vragen of issues, maak een GitHub issue aan in deze repository: https://github.com/Fuglys/mcp-server