{"name":"eu.departi/travel-compliance","slug":"departi-travel-compliance","title":"Departi – Travel Compliance & Curated Booking","description":"Travel-compliance intelligence and curated booking for digital nomads and long-stay travellers.","url":"https://mcp.market/server/departi-travel-compliance","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"maps","tags":["maps"],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-10T11:02:14.000Z","license":"MIT"},"uptime":{"percent":100,"checks":20,"ok":20,"last_checked_at":"2026-09-24T07:10:54.884Z","last_ok_at":"2026-09-24T07:10:54.884Z","latency_ms":357},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/Departi/mcp-server","website":"https://departi.eu/developers/mcp","version":"3.2.0","remotes":[{"type":"streamable-http","url":"https://mcp.departi.eu/v3"}],"packages":[],"tools":[{"name":"departi_check_tax","description":"Assesses tax-residency risk and double-tax-treaty position for a traveller in a destination. Returns: whether the stay risks triggering destination tax residency (the day threshold and the country's day-counting method), the relevant treaty provisions between the traveller's tax-residence country and the destination (employment income, tie-breaker, social security, withholding), any special or digital-nomad tax regime, and — for US citizens — FEIE / Physical-Presence-Test context. Advisory only, not tax advice. Use for \"will staying here make me tax resident / what does the treaty say / how are my days counted\". Note: any US citizenship triggers worldwide/citizenship-based obligations regardless of residence or other passports.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"nationality":{"type":"string","description":"Citizenship / passport, ISO alpha-2. Drives citizenship-based obligations (e.g. US — taxed worldwide regardless of residence). May differ from tax residence."},"taxResidence":{"type":"string","description":"The traveller's current country of tax residence, ISO alpha-2. This selects the treaty \"resident state\" and can differ from nationality."},"destination":{"type":"string","description":"Country being visited, ISO alpha-2."},"duration":{"type":"integer","description":"Stay in days."},"purpose":{"type":"string","description":"tourism | remote_work | business … Default tourism.","default":"tourism"},"employmentType":{"type":"string","description":"employed | self_employed | company_director | retired. Affects PE / treaty analysis."},"yearToDateDays":{"type":"integer","description":"Days already spent in the destination this tax year. Default 0.","default":0},"locale":{"type":"string","description":"Default en.","default":"en"},"currency":{"type":"string","description":"Default EUR.","default":"EUR"}},"required":["nationality","taxResidence","destination","duration"]}},{"name":"departi_check_visa","description":"Returns the entry/visa options for a traveller of a given nationality (passport) going to a destination for a stated purpose and length of stay. Each option includes: visa/permit type, whether a visa is required, maximum stay, whether remote/on-site work is allowed, cost, processing time, and application/renewal notes — sourced from official immigration authorities. Use this for \"what visa do I need / can I stay N days / can I work remotely here\". To count days already spent against the 90/180 limit use departi_track_schengen; for the tax consequences of staying use departi_check_tax. Tip: nationality should be the traveller's most favorable passport — multi-nationals may have better entry on one passport.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"nationality":{"type":"string","description":"Traveller's citizenship / passport, ISO alpha-2, e.g. \"BE\". This is the passport country, not tax residence."},"destination":{"type":"string","description":"Destination country, ISO alpha-2, e.g. \"PT\"."},"purpose":{"type":"string","description":"One of tourism | remote_work | business | study | retirement. Default tourism.","default":"tourism"},"duration":{"type":"integer","description":"Intended stay in days, integer > 0."},"locale":{"type":"string","description":"Output language. Default en.","default":"en"},"currency":{"type":"string","description":"Currency for costs. Default EUR.","default":"EUR"}},"required":["nationality","destination","duration"]}},{"name":"departi_get_profile","description":"Returns the authenticated user's Departi profile: nationality, tax residence, subscription tier, traveller persona, and preferences. No PII (name, email, date of birth) is returned — only the fields the other tools need for personalisation. Requires authentication (OAuth). Use to personalise the other tools' answers, or to answer \"where do I stand right now\". Read-only; takes no parameters.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[]}},{"name":"departi_search_accommodation","description":"Searches bookable accommodation in a destination for given dates and returns a ranked list of stays, each with: name, property type, nightly price (in the requested currency), star rating, guest rating, key facilities (e.g. wifi, kitchen), a persona/traveler-type fit score, and a booking deep-link. Curated and scored for the traveller's persona and trip type — e.g. long-stay nomad apartments with kitchen + fast wifi vs weekend hotels. Use when the user needs a place to stay; for getting there use departi_search_transport, for things to do use departi_search_experiences. Returns an empty list if no inventory matches.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"destination":{"type":"string","description":"Destination as ISO-2 country or city/slug, e.g. \"PT\" or \"lisbon\"."},"checkin":{"type":"string","format":"date","description":"ISO date, checkout must be strictly after checkin."},"checkout":{"type":"string","format":"date","description":"ISO date, strictly after checkin."},"guests":{"type":"integer","description":"Default 1.","default":1},"rooms":{"type":"integer","description":"Default 1.","default":1},"maxPrice":{"type":"number","description":"Max per-night price in currency."},"currency":{"type":"string","description":"Default EUR.","default":"EUR"},"locale":{"type":"string","description":"Default en.","default":"en"},"persona":{"type":"string","description":"e.g. 'culture_explorer', 'foodie', 'adventure' — biases scoring."},"traveler_type":{"type":"string","description":"e.g. 'digital_nomad', 'slow_traveler', 'weekend_breaker' — biases inventory (long-stay vs short)."}},"required":["destination","checkin","checkout"]}},{"name":"departi_search_experiences","description":"Searches bookable tours, activities and local experiences in a destination and returns a ranked list, each with: title, category (cultural / culinary / adventure / wellness / nature), duration, price (in requested currency), a persona-fit score, and a booking deep-link. Matched to the traveller's persona/personality. Use for \"what can I do in X\". For a place to stay use departi_search_accommodation; to get there use departi_search_transport. Returns an empty list if nothing matches the filters.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"destination":{"type":"string","description":"ISO-2 country or city/slug, e.g. \"lisbon\"."},"categories":{"type":"array","items":{"type":"string"},"description":"Optional array from cultural | culinary | adventure | wellness | nature."},"persona":{"type":"string","description":"e.g. 'culture_explorer', 'foodie', 'adventure'."},"traveler_type":{"type":"string","description":"e.g. 'digital_nomad', 'slow_traveler'."},"limit":{"type":"integer","description":"Max results. Default 10.","default":10}},"required":["destination"]}},{"name":"departi_search_transport","description":"Searches flights between two places and returns a ranked list of options, each with: carrier, price (in requested currency), cabin class, total duration, number of stops, departure & arrival times, and a booking deep-link. Flights are sourced across providers (Duffel + Travelpayouts) for broad full-service and low-cost coverage. Use for \"how do I get from A to B by air\". For where to stay use departi_search_accommodation; for things to do use departi_search_experiences. Prices are indicative — book via the returned link. Returns an empty list if no route is found. Ground/rail/bus is not offered through this tool.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"origin":{"type":"string","description":"Departure IATA code or city, e.g. \"BRU\" or \"Brussels\"."},"destination":{"type":"string","description":"Arrival IATA code or city, e.g. \"LIS\" or \"Lisbon\"."},"departure_date":{"type":"string","format":"date","description":"ISO date, today or future."},"return_date":{"type":"string","format":"date","description":"Optional ISO date after departure_date for a round trip."},"passengers":{"type":"integer","description":"Default 1.","default":1},"cabin_class":{"type":"string","enum":["economy","premium_economy","business","first"],"default":"economy","description":"Cabin class for the search. Default economy."},"traveler_type":{"type":"string","description":"Optional persona hint."}},"required":["origin","destination","departure_date"]}},{"name":"departi_track_schengen","description":"Calculates Schengen 90/180 short-stay status from a list of stays. Returns: days used and days remaining in the rolling 180-day window, a status (safe | warning | critical | exceeded), the projected date the limit would be reached at the current pace, and — for residence/digital-nomad-permit holders — a count that excludes days in the permit-issuing country while still counting every other Schengen state (with a note of which country is excluded). Use for non-EU travellers tracking the 90-days-in-180 limit. Note: EU/EEA nationals have free movement (not counted); a residence permit exempts only its issuing country, not the rest of Schengen.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"entries":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string","description":"ISO alpha-2 country code."},"entryDate":{"type":"string","format":"date","description":"YYYY-MM-DD."},"exitDate":{"type":"string","format":"date","description":"YYYY-MM-DD."}},"required":["country","entryDate","exitDate"]},"description":"Array of Schengen zone stays."},"referenceDate":{"type":"string","format":"date","description":"ISO date to evaluate the window at. Default: today."},"nationality":{"type":"string","description":"Citizenship, ISO alpha-2. EU/EEA nationals are exempt from counting."},"residencePermit":{"type":"object","properties":{"issuingCountry":{"type":"string","description":"ISO alpha-2 country that issued the permit."},"validFrom":{"type":"string","format":"date","description":"YYYY-MM-DD."},"validUntil":{"type":"string","format":"date","description":"YYYY-MM-DD."}},"required":["issuingCountry","validFrom","validUntil"],"description":"Residence or digital-nomad permit. When present and active on the reference date, days in the issuing country are excluded from the 90/180 count; all other Schengen days still count."},"locale":{"type":"string","description":"Default en.","default":"en"},"currency":{"type":"string","description":"Default EUR.","default":"EUR"}},"required":["entries"]}}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-23T21:41:10.963Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T21:41:10.932Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 682ms"]},"poisoning":{"score":15,"max":15,"notes":["7 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 13 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://mcp.departi.eu/v3","reachable":true,"authRequired":false,"latencyMs":682,"serverInfo":{"name":"Departi","version":"3.2.0"}}],"packages":[],"repo":{"found":true,"owner":"Departi","repo":"mcp-server","archived":false,"pushedAt":"2026-09-10T11:02:14Z","stars":0,"forks":0,"openIssues":1,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/270870843?v=4","ownerCreatedAt":"2026-03-25T07:03:26Z","license":"MIT"},"icon":{"url":"https://departi.eu/favicon.svg","source":"site"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-10T11:02:14.000Z","score":23}}}},"grade_history":[],"reviews":[]}