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

A
Description quality
90%
Schema completeness
96%
Naming quality
97%
Poisoning risk
100%
Permission match
90%
Protocol compliance
100%

Findings (2)

  • LOWTool 'get_insurance_facts' description lacks action verbin get_insurance_facts
  • LOWTool 'fetch' suggests web access but openWorldHint=falsein fetch

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,724Tokens (tool definitions)
~2.1 KBTypical response size
Moderate attention impact (1.35% 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": {
    "ukraine-travel": {
      "url": "https://www.ukraineborder.com/api/mcp"
    }
  }
}

Remote endpoints

https://www.ukraineborder.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
verifiedversion not recorded7 tools
verifiedversion not recorded7 tools
verifiedversion not recorded7 tools
verifiedversion not recorded7 tools
verifiedversion not recorded7 tools