Schengen 90/180 Calculator

Schengen 90/180 rolling-window calculator MCP server: stay math, trip checks, rule explainer.

Should I use this

Quality & Safety

A
Description quality
90%
Schema completeness
77%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'explain_90_180_rule' description lacks action verbin explain_90_180_rule

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~584Tokens (tool definitions)
~1.4 KBTypical response size
Minimal attention impact (0.46% of 128k context)

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-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools