Schengen 90/180 Calculator
Schengen 90/180 rolling-window calculator MCP server: stay math, trip checks, rule explainer.
Should I use this
Quality & Safety
Findings (1)
- LOWin explain_90_180_rule
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"schengen-mcp": {
"url": "https://schengen-mcp.alickzheng618.workers.dev/mcp"
}
}
}Remote endpoints
https://schengen-mcp.alickzheng618.workers.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟢calculate_stay(trips, today)
Evaluate Schengen 90/180 rolling-window usage for a list of trips. Returns days used in the window, days remaining, must-leave-by date, latest safe entry dates and a per-trip verdict.
Input Schema
{
"type": "object",
"properties": {
"trips": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"entry": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"exit": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"entry",
"exit"
]
},
"description": "Trips with inclusive entry/exit dates, format YYYY-MM-DD"
},
"today": {
"description": "Reference day; defaults to the current UTC date",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"trips"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢check_trip(existingTrips, planned, today)
Check whether ONE planned trip is legal on top of existing Schengen stays. Returns compliant/warning/over plus practical advice.
Input Schema
{
"type": "object",
"properties": {
"existingTrips": {
"default": [],
"description": "Already planned or taken trips (inclusive dates, YYYY-MM-DD)",
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"entry": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"exit": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"entry",
"exit"
]
}
},
"planned": {
"type": "object",
"properties": {
"entry": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"exit": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"entry",
"exit"
],
"description": "The trip to check"
},
"today": {
"description": "Reference day; defaults to the current UTC date",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"planned"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢explain_90_180_rule
Explain the Schengen 90/180 rolling-window rule with the EC 610/2013 reference and links to the interactive calculator and guide.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence