UkraineBorder — travel guidance and war-risk insurance
Ukraine entry rules, border crossings, customs, safety and war-risk travel insurance. 10 languages.
Should I use this
Quality & Safety
Findings (2)
- LOWin get_insurance_facts
- LOWin fetch
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": {
"ukraine-travel": {
"url": "https://www.ukraineborder.com/api/mcp"
}
}
}Remote endpoints
https://www.ukraineborder.com/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
🟢search(query)
Search UkraineBorder's guides for foreign travellers to Ukraine (border crossings, customs, safety, visas and war-risk travel insurance) across 10 languages. Returns matching documents with ids to fetch.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query."
}
},
"required": [
"query"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"id",
"title",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"results"
],
"additionalProperties": false
}🟢fetch(id)
Retrieve the full text of a UkraineBorder document by the id returned from search.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Document id from a prior search result."
}
},
"required": [
"id"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"text": {
"type": "string"
},
"url": {
"type": "string"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"id",
"title",
"text",
"url"
],
"additionalProperties": false
}🟢search_content(query, locale, limit)
Search UkraineBorder articles in a specific language; returns top relevant chunks with links.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"locale": {
"type": "string",
"enum": [
"uk",
"en",
"es",
"de",
"fr",
"ar",
"ja",
"pl",
"hu",
"cs"
],
"description": "BCP-47 short code; one of the 10 supported locales."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 5
}
},
"required": [
"query",
"locale"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
},
"snippet": {
"type": "string"
},
"cluster": {
"type": "string"
}
},
"required": [
"id",
"title",
"url",
"snippet",
"cluster"
],
"additionalProperties": false
}
}
},
"required": [
"results"
],
"additionalProperties": false
}🟢get_cluster_summary(segment, locale)
Structured summary of a topic cluster (border-crossings, customs, safety, insurance, essentials) in the requested language, with its guide list.
Input Schema
{
"type": "object",
"properties": {
"segment": {
"type": "string",
"enum": [
"border-crossings",
"customs",
"safety",
"insurance",
"essentials"
],
"description": "Topic cluster segment."
},
"locale": {
"type": "string",
"enum": [
"uk",
"en",
"es",
"de",
"fr",
"ar",
"ja",
"pl",
"hu",
"cs"
],
"description": "BCP-47 short code; one of the 10 supported locales."
}
},
"required": [
"segment",
"locale"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"cluster": {
"type": "string"
},
"segment": {
"type": "string"
},
"title": {
"type": "string"
},
"lead": {
"type": "string"
},
"groups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"spokes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"slug": {
"type": "string"
},
"url": {
"type": "string"
},
"readTimeMinutes": {
"type": "number"
}
},
"required": [
"title",
"slug",
"url",
"readTimeMinutes"
],
"additionalProperties": false
}
}
},
"required": [
"key",
"title",
"description",
"spokes"
],
"additionalProperties": false
}
}
},
"required": [
"cluster",
"segment",
"title",
"lead",
"groups"
],
"additionalProperties": false
}🟢get_insurance_facts(locale)
Regulatory facts about the war-risk + radiation-risk travel insurance product and the licensed entities behind it (insurer, agent, regulator, registry).
Input Schema
{
"type": "object",
"properties": {
"locale": {
"type": "string",
"enum": [
"uk",
"en",
"es",
"de",
"fr",
"ar",
"ja",
"pl",
"hu",
"cs"
],
"description": "BCP-47 short code; one of the 10 supported locales."
}
},
"required": [
"locale"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"product": {
"type": "object"
},
"insurer": {
"type": "object"
},
"agent": {
"type": "object"
},
"parentGroup": {
"type": "object"
},
"registry": {
"type": "string"
},
"marketRangeEurPerDay": {
"type": "string"
},
"territorialCoverageNote": {
"type": "string"
}
},
"required": [
"product",
"insurer",
"agent",
"parentGroup",
"registry",
"marketRangeEurPerDay",
"territorialCoverageNote"
],
"additionalProperties": false
}🟢estimate_quote(locale, coverageTier, insuranceLengthDays, travellerCount)
Approximate price for a war-risk travel policy, computed locally from published rates; not a partner quote and not a binding offer. The exact amount is calculated and charged during checkout on ukraineborder.com.
Input Schema
{
"type": "object",
"properties": {
"locale": {
"type": "string",
"enum": [
"uk",
"en",
"es",
"de",
"fr",
"ar",
"ja",
"pl",
"hu",
"cs"
],
"description": "BCP-47 short code; one of the 10 supported locales."
},
"coverageTier": {
"type": "string",
"enum": [
"minimum",
"standard",
"maximum"
],
"description": "minimum (UAH 100,000 ≈ EUR 1,900) | standard (UAH 1,575,000 ≈ EUR 30,000) | maximum (same sum + radiation cover). War-risk cover is included in all three tiers."
},
"insuranceLengthDays": {
"type": "integer",
"minimum": 1,
"maximum": 180
},
"travellerCount": {
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"required": [
"locale",
"coverageTier",
"insuranceLengthDays",
"travellerCount"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"indicativeTotalEur": {
"type": "number"
},
"perPersonEur": {
"type": "number"
},
"days": {
"type": "integer"
},
"travellerCount": {
"type": "integer"
},
"coverageTier": {
"type": "string"
},
"radiationIncluded": {
"type": "boolean"
},
"disclaimer": {
"type": "string"
},
"quoteUrl": {
"type": "string"
}
},
"required": [
"indicativeTotalEur",
"perPersonEur",
"days",
"travellerCount",
"coverageTier",
"radiationIncluded",
"disclaimer",
"quoteUrl"
],
"additionalProperties": false
}🟢create_draft(locale, coverageTier, enteringDate, exitDate)
Build a checkout link to ukraineborder.com with the trip parameters pre-filled, so the traveller completes identity, email verification and payment there. Carries no personal data: only non-personal trip parameters in the URL.
Input Schema
{
"type": "object",
"properties": {
"locale": {
"type": "string",
"enum": [
"uk",
"en",
"es",
"de",
"fr",
"ar",
"ja",
"pl",
"hu",
"cs"
],
"description": "BCP-47 short code; one of the 10 supported locales."
},
"coverageTier": {
"type": "string",
"enum": [
"minimum",
"standard",
"maximum"
]
},
"enteringDate": {
"type": "string",
"description": "DD.MM.YYYY (optional)."
},
"exitDate": {
"type": "string",
"description": "DD.MM.YYYY (optional)."
}
},
"required": [
"locale",
"coverageTier"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"magicLink": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"magicLink",
"note"
],
"additionalProperties": false
}Community
Evidence