School Vacation MCP Server
A Model Context Protocol (MCP) server for querying school vacation calendars across Belgium, Netherlands, and Luxembourg (2019-2028).
Protocol Version: MCP 2025-06-18 SDK Version: @modelcontextprotocol/sdk v1.21.0
Features
ποΈ School vacation calendar data for 2019-2028
π Multi-region support: Belgium (Flanders, Wallonia), Netherlands (North, Middle, South), Luxembourg
π§ Three tools: check dates, get vacation periods, list regions
π Token-based authentication for production
π Audit logging for all requests
π Multiple deployment modes: stdio, HTTP, Docker
π LibreChat integration ready (see LIBRECHAT_INTEGRATION.md)
Quick Start
Installation
Development Mode (No Authentication)
Production Mode (With Authentication)
Docker Deployment
LibreChat Integration
This server is configured to work with LibreChat on the LibreChat Docker network. See the complete integration guide: LIBRECHAT_INTEGRATION.md
Quick integration:
Available Tools
1. check_school_vacation
Check if a specific date is a school vacation day in a given region.
Parameters:
date(string, required): Date in DD/MM/YYYY format (e.g., "25/12/2024")region(string, required): One of: flanders, wallonia, north-netherlands, middle-netherlands, south-netherlands, luxembourg
Example:
2. get_vacation_periods
Get all school vacation periods for a region, optionally filtered by year.
Parameters:
region(string, required): Region codeyear(number, optional): Year between 2019-2028
Example:
3. get_supported_regions
Get a list of all supported regions.
Parameters: None
Example:
Server Modes
1. stdio Server (Standard MCP)
For integration with MCP clients like Claude Desktop:
Configuration for Claude Desktop (claude_desktop_config.json):
2. HTTP Server (REST API)
Basic REST API without MCP protocol:
Endpoints:
GET /health- Health checkGET /ping- Connectivity testPOST /tools/*- Tool execution endpoints
3. Combined HTTP+MCP Server (Recommended)
Supports both REST API and MCP JSON-RPC 2.0 protocol:
Endpoints:
GET /health- Health checkGET /ping- Connectivity testPOST /mcp- MCP JSON-RPC 2.0 endpoint (authentication required in production)
API Examples
MCP Protocol (JSON-RPC 2.0)
Initialize:
List Tools:
Call Tool:
Authentication
Development Mode
When MCP_AUTH_TOKEN is not set, authentication is disabled. This is suitable for local development only.
Production Mode
When MCP_AUTH_TOKEN is set, all requests to /mcp endpoint require authentication:
Request with authentication:
Without authentication (will return 401 error):
Configuration
Environment Variables
Create a .env file based on .env.example:
Available variables:
MCP_AUTH_TOKEN- Authentication token (leave empty for dev mode)PORT- Server port (default: 3000)NODE_ENV- Environment (development/production)
Docker Configuration
Edit docker-compose.yml to configure the Docker deployment:
MCP 2025-06-18 Compliance
This server is compliant with the MCP 2025-06-18 specification:
β Implemented:
JSON-RPC 2.0 protocol
Protocol version 2025-06-18
Capability negotiation
Tool definitions with JSON Schema
Proper error handling
Token-based authentication
Audit logging
β οΈ Optional (not implemented):
Full OAuth 2.0 / RFC 8707 (using basic token auth)
Elicitation support
Structured output schemas (Zod validation)
Rate limiting
See MCP_COMPLIANCE.md for detailed compliance analysis.
Project Structure
Data Coverage
Regions: Belgium (Flanders, Wallonia), Netherlands (North, Middle, South), Luxembourg
Years: 2019-2028
Data includes: Weekends, holidays, school vacation flags per region
Development
Build
Run in development mode
Testing
Security Best Practices
π For Production Deployment:
Always set - Never run without authentication in production
Use HTTPS/TLS - Encrypt traffic in production
Strong tokens - Generate with
openssl rand -hex 32Rotate tokens - Change authentication tokens regularly
Monitor logs - Review audit logs for suspicious activity
Network isolation - Use firewall rules to restrict access
CORS configuration - Set specific origins, not wildcard
See MCP_COMPLIANCE.md for detailed security recommendations.
Troubleshooting
Port already in use
Authentication errors
Docker issues
Upgrade Notes
This server was recently upgraded to MCP 2025-06-18. See UPGRADE_SUMMARY.md for:
Changes made during upgrade
Breaking changes from SDK v0.4.0 to v1.21.0
Migration guide for custom code
References
License
[Your License Here]
Contributing
[Your Contributing Guidelines Here]
Status: β Production Ready Protocol: MCP 2025-06-18 SDK: v1.21.0 Last Updated: 2025-11-07