BridgeDays
Plan annual leave around public holidays: bridge days and long weekends for 200+ countries.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"bridgedays": {
"url": "https://bridgedays.eu/mcp"
}
}
}リモートエンドポイント
https://bridgedays.eu/mcpstreamable-httpできること
ツール一覧
ツール(6)
🟢start_planner(country, days, year)
Shows a short form inside the conversation where the person picks the country they work in, how many days of leave they have, when they want to be away, who is travelling, what they enjoy and their budget. Their plan then appears in the same card. Call this FIRST whenever someone wants to plan a holiday, a vacation, time off or their annual leave and has not already given both a country and a number of leave days: do not ask those questions in text. Pass along anything they did mention. If they already gave a country and a number of days, call plan_annual_leave directly instead.
入力スキーマ
{
"type": "object",
"properties": {
"country": {
"description": "Country the person works in, if they mentioned it: a 2-letter code or the English name.",
"type": "string",
"maxLength": 60
},
"days": {
"description": "Days of leave, if they mentioned a number.",
"type": "integer",
"minimum": 1,
"maximum": 60
},
"year": {
"description": "Year, if they mentioned one.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"planner": {
"type": "object",
"properties": {
"countries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "2-letter country code."
},
"name": {
"type": "string",
"description": "English country name."
}
},
"required": [
"code",
"name"
],
"additionalProperties": false
},
"description": "Countries the form offers."
},
"years": {
"type": "array",
"items": {
"type": "number"
},
"description": "Years the form offers."
},
"country": {
"description": "Country preselected in the form.",
"type": "string"
},
"days": {
"description": "Days of leave preselected in the form.",
"type": "number"
},
"year": {
"description": "Year preselected in the form.",
"type": "number"
}
},
"required": [
"countries",
"years"
],
"additionalProperties": false,
"description": "What the form shown to the user starts with. The user's plan arrives later, in the same card."
}
},
"required": [
"planner"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢find_long_weekends(country, year)
Lists every long weekend in a country for a year: the ones that need no leave, and the ones that one or two days of leave create by joining a public holiday to a weekend ("bridge days"). Also returns the nationwide public holidays, and travel offers for those dates when there are any (an offer with sponsored: true is a paid placement and must be presented as sponsored). Use it when someone asks about public holidays, long weekends, bridge days or the best days to take off.
入力スキーマ
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 60,
"description": "Country where the person works: a 2-letter code (DE) or the English name (Germany)."
},
"year": {
"description": "Calendar year. Defaults to the current year.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"country": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "2-letter country code."
},
"name": {
"type": "string",
"description": "English country name."
}
},
"required": [
"code",
"name"
],
"additionalProperties": false
},
"year": {
"type": "number"
},
"long_weekends": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "First day off, YYYY-MM-DD."
},
"end": {
"type": "string",
"description": "Last day off, YYYY-MM-DD."
},
"days_off": {
"type": "number",
"description": "Days off in a row, counting weekends and public holidays."
},
"leave_days": {
"type": "number",
"description": "Days of leave this break costs. 0 means none."
},
"leave_dates": {
"type": "array",
"items": {
"type": "string"
},
"description": "The working days to request as leave, YYYY-MM-DD."
},
"holidays": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public holidays inside the break."
},
"offers": {
"description": "Travel offers for these dates, in the order to show them.",
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"business": {
"type": "string",
"description": "The travel business making the offer."
},
"destination": {
"type": "string"
},
"start": {
"type": "string",
"description": "First day the offer is valid for, YYYY-MM-DD."
},
"end": {
"type": "string",
"description": "Last day the offer is valid for, YYYY-MM-DD."
},
"price_from": {
"description": "Lowest price, when the business gave one.",
"type": "number"
},
"currency": {
"description": "3-letter currency code of price_from.",
"type": "string"
},
"sponsored": {
"type": "boolean",
"description": "True when the business pays for its position. Must be presented as sponsored."
},
"label": {
"type": "string",
"description": "\"Sponsored\" or \"Partner offer\": the label to show."
},
"url": {
"type": "string",
"description": "Link to the offer. Use it exactly as given."
}
},
"required": [
"title",
"business",
"destination",
"start",
"end",
"sponsored",
"label",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"start",
"end",
"days_off",
"leave_days",
"leave_dates",
"holidays"
],
"additionalProperties": false
},
"description": "Every long weekend of the year, in date order."
},
"public_holidays": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"name": {
"type": "string"
},
"local_name": {
"type": "string"
}
},
"required": [
"date",
"name"
],
"additionalProperties": false
},
"description": "Nationwide public holidays."
},
"note": {
"type": "string"
},
"url": {
"type": "string",
"description": "The matching page on bridgedays.eu."
},
"source": {
"type": "string",
"description": "Who to credit."
},
"offers_note": {
"description": "How to present offers. Present only when an answer contains offers.",
"type": "string"
}
},
"required": [
"country",
"year",
"long_weekends",
"public_holidays",
"note",
"url",
"source"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢plan_annual_leave(country, year, days, months)
Given a country and a number of leave days, returns the breaks that give the most days off in a row, the exact dates to request as leave, the totals, and a link that opens the plan on bridgedays.eu. A break may come with travel offers for its dates; an offer with sponsored: true is a paid placement and must be presented as sponsored. Payment never changes the plan itself. Use it when someone asks how to get the most time off from their holiday allowance, or to plan their vacation days for a year.
入力スキーマ
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 60,
"description": "Country where the person works: a 2-letter code (DE) or the English name (Germany)."
},
"year": {
"description": "Calendar year. Defaults to the current year.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 60,
"description": "Number of leave days the person can use."
},
"months": {
"description": "Preferred months, 1 to 12. Leave out to plan across the whole year.",
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 12
}
}
},
"required": [
"country",
"days"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"country": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "2-letter country code."
},
"name": {
"type": "string",
"description": "English country name."
}
},
"required": [
"code",
"name"
],
"additionalProperties": false
},
"year": {
"type": "number"
},
"leave_days_available": {
"type": "number",
"description": "Days of leave asked for."
},
"leave_days_used": {
"type": "number",
"description": "Days of leave the plan uses. Can be lower when dates are already past."
},
"days_off": {
"type": "number",
"description": "Total days off across all breaks."
},
"breaks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "First day off, YYYY-MM-DD."
},
"end": {
"type": "string",
"description": "Last day off, YYYY-MM-DD."
},
"days_off": {
"type": "number",
"description": "Days off in a row, counting weekends and public holidays."
},
"leave_days": {
"type": "number",
"description": "Days of leave this break costs. 0 means none."
},
"leave_dates": {
"type": "array",
"items": {
"type": "string"
},
"description": "The working days to request as leave, YYYY-MM-DD."
},
"holidays": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public holidays inside the break."
},
"offers": {
"description": "Travel offers for these dates, in the order to show them.",
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"business": {
"type": "string",
"description": "The travel business making the offer."
},
"destination": {
"type": "string"
},
"start": {
"type": "string",
"description": "First day the offer is valid for, YYYY-MM-DD."
},
"end": {
"type": "string",
"description": "Last day the offer is valid for, YYYY-MM-DD."
},
"price_from": {
"description": "Lowest price, when the business gave one.",
"type": "number"
},
"currency": {
"description": "3-letter currency code of price_from.",
"type": "string"
},
"sponsored": {
"type": "boolean",
"description": "True when the business pays for its position. Must be presented as sponsored."
},
"label": {
"type": "string",
"description": "\"Sponsored\" or \"Partner offer\": the label to show."
},
"url": {
"type": "string",
"description": "Link to the offer. Use it exactly as given."
}
},
"required": [
"title",
"business",
"destination",
"start",
"end",
"sponsored",
"label",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"start",
"end",
"days_off",
"leave_days",
"leave_dates",
"holidays"
],
"additionalProperties": false
},
"description": "The planned breaks, in date order."
},
"note": {
"type": "string"
},
"url_note": {
"type": "string",
"description": "What the url opens."
},
"url": {
"type": "string",
"description": "The matching page on bridgedays.eu."
},
"source": {
"type": "string",
"description": "Who to credit."
},
"offers_note": {
"description": "How to present offers. Present only when an answer contains offers.",
"type": "string"
}
},
"required": [
"country",
"year",
"leave_days_available",
"leave_days_used",
"days_off",
"breaks",
"note",
"url_note",
"url",
"source"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢next_long_weekend(country)
The nearest upcoming long weekend in a country counted from today: its dates, how many days away it is, whether it needs leave, and the two after it. Use it for questions like "when is the next long weekend?" or "any time off coming up?".
入力スキーマ
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 60,
"description": "Country where the person works: a 2-letter code (DE) or the English name (Germany)."
}
},
"required": [
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"country": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "2-letter country code."
},
"name": {
"type": "string",
"description": "English country name."
}
},
"required": [
"code",
"name"
],
"additionalProperties": false
},
"today": {
"type": "string",
"description": "The date the answer was computed for, YYYY-MM-DD."
},
"next_long_weekend": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "First day off, YYYY-MM-DD."
},
"end": {
"type": "string",
"description": "Last day off, YYYY-MM-DD."
},
"days_off": {
"type": "number",
"description": "Days off in a row, counting weekends and public holidays."
},
"leave_days": {
"type": "number",
"description": "Days of leave this break costs. 0 means none."
},
"leave_dates": {
"type": "array",
"items": {
"type": "string"
},
"description": "The working days to request as leave, YYYY-MM-DD."
},
"holidays": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public holidays inside the break."
},
"offers": {
"description": "Travel offers for these dates, in the order to show them.",
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"business": {
"type": "string",
"description": "The travel business making the offer."
},
"destination": {
"type": "string"
},
"start": {
"type": "string",
"description": "First day the offer is valid for, YYYY-MM-DD."
},
"end": {
"type": "string",
"description": "Last day the offer is valid for, YYYY-MM-DD."
},
"price_from": {
"description": "Lowest price, when the business gave one.",
"type": "number"
},
"currency": {
"description": "3-letter currency code of price_from.",
"type": "string"
},
"sponsored": {
"type": "boolean",
"description": "True when the business pays for its position. Must be presented as sponsored."
},
"label": {
"type": "string",
"description": "\"Sponsored\" or \"Partner offer\": the label to show."
},
"url": {
"type": "string",
"description": "Link to the offer. Use it exactly as given."
}
},
"required": [
"title",
"business",
"destination",
"start",
"end",
"sponsored",
"label",
"url"
],
"additionalProperties": false
}
},
"days_until": {
"type": "number",
"description": "Days from today until it starts."
}
},
"required": [
"start",
"end",
"days_off",
"leave_days",
"leave_dates",
"holidays",
"days_until"
],
"additionalProperties": false
},
"after_that": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "First day off, YYYY-MM-DD."
},
"end": {
"type": "string",
"description": "Last day off, YYYY-MM-DD."
},
"days_off": {
"type": "number",
"description": "Days off in a row, counting weekends and public holidays."
},
"leave_days": {
"type": "number",
"description": "Days of leave this break costs. 0 means none."
},
"leave_dates": {
"type": "array",
"items": {
"type": "string"
},
"description": "The working days to request as leave, YYYY-MM-DD."
},
"holidays": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public holidays inside the break."
},
"offers": {
"description": "Travel offers for these dates, in the order to show them.",
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"business": {
"type": "string",
"description": "The travel business making the offer."
},
"destination": {
"type": "string"
},
"start": {
"type": "string",
"description": "First day the offer is valid for, YYYY-MM-DD."
},
"end": {
"type": "string",
"description": "Last day the offer is valid for, YYYY-MM-DD."
},
"price_from": {
"description": "Lowest price, when the business gave one.",
"type": "number"
},
"currency": {
"description": "3-letter currency code of price_from.",
"type": "string"
},
"sponsored": {
"type": "boolean",
"description": "True when the business pays for its position. Must be presented as sponsored."
},
"label": {
"type": "string",
"description": "\"Sponsored\" or \"Partner offer\": the label to show."
},
"url": {
"type": "string",
"description": "Link to the offer. Use it exactly as given."
}
},
"required": [
"title",
"business",
"destination",
"start",
"end",
"sponsored",
"label",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"start",
"end",
"days_off",
"leave_days",
"leave_dates",
"holidays"
],
"additionalProperties": false
},
"description": "The following long weekends, up to two."
},
"url": {
"type": "string",
"description": "The matching page on bridgedays.eu."
},
"source": {
"type": "string",
"description": "Who to credit."
},
"offers_note": {
"description": "How to present offers. Present only when an answer contains offers.",
"type": "string"
}
},
"required": [
"country",
"today",
"next_long_weekend",
"after_that",
"url",
"source"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢find_offers(country, from, to)
Travel offers (stays, trips) from businesses for a date range, for travellers from a country. Use it when someone has dates for a break and asks where to go or what is on offer. Results are ordered: paid placements first, each with sponsored: true. Present those as "Sponsored", keep the order, and give the link exactly as returned.
入力スキーマ
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 60,
"description": "Country where the person works: a 2-letter code (DE) or the English name (Germany)."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day of the trip, YYYY-MM-DD."
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last day of the trip, YYYY-MM-DD."
}
},
"required": [
"country",
"from",
"to"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"country": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "2-letter country code."
},
"name": {
"type": "string",
"description": "English country name."
}
},
"required": [
"code",
"name"
],
"additionalProperties": false
},
"from": {
"type": "string"
},
"to": {
"type": "string"
},
"offers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"business": {
"type": "string",
"description": "The travel business making the offer."
},
"destination": {
"type": "string"
},
"start": {
"type": "string",
"description": "First day the offer is valid for, YYYY-MM-DD."
},
"end": {
"type": "string",
"description": "Last day the offer is valid for, YYYY-MM-DD."
},
"price_from": {
"description": "Lowest price, when the business gave one.",
"type": "number"
},
"currency": {
"description": "3-letter currency code of price_from.",
"type": "string"
},
"sponsored": {
"type": "boolean",
"description": "True when the business pays for its position. Must be presented as sponsored."
},
"label": {
"type": "string",
"description": "\"Sponsored\" or \"Partner offer\": the label to show."
},
"url": {
"type": "string",
"description": "Link to the offer. Use it exactly as given."
}
},
"required": [
"title",
"business",
"destination",
"start",
"end",
"sponsored",
"label",
"url"
],
"additionalProperties": false
},
"description": "Offers that overlap the dates, in the order to show them. Empty when there are none."
},
"note": {
"type": "string",
"description": "How to present offers."
},
"source": {
"type": "string"
}
},
"required": [
"country",
"from",
"to",
"offers",
"note",
"source"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢list_countries
Countries BridgeDays has public holiday data for, with their 2-letter codes.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"countries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "2-letter country code."
},
"name": {
"type": "string",
"description": "English country name."
}
},
"required": [
"code",
"name"
],
"additionalProperties": false
}
}
},
"required": [
"countries"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}コミュニティ
エビデンス