Meridian Dispatch

Reported travel guides: countries, towns, sights, trails, events, ski resorts. Cited.

Should I use this

Quality & Safety

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

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~8,534Tokens (tool definitions)
~5.6 KBTypical response size
Significant attention impact (6.67% 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": {
    "travel-guides": {
      "url": "https://www.meridiandispatch.com/api/mcp"
    }
  }
}

Remote endpoints

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

What it can do

Tool inventory

Tools (12)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒search_guides(region, query, type, country, limit)

Search every Meridian Dispatch travel guide by keyword: long-form dispatches, multi-day itineraries, country and town guides, venues (sights, museums, beaches, parks), trails and scenic drives, events and ski resorts. Use it first when you do not know the exact page. Once you know the place, read it in full with get_destination (a country or town), get_place (one sight, trail, event or ski resort) or get_dispatch (a dispatch or itinerary); for ranked top-ten lists use list_best_places, for a month use get_best_time. Returns up to `limit` pages ranked by relevance, each with its type, title, country, town, a one-line summary, a citable URL and when it was last updated. Ranking is keyword-based with travel synonyms; a country or month named in the query is honoured. Read-only. When nothing matches it returns an error message; retry with a broader query or a place name.

Input Schema

{
  "type": "object",
  "properties": {
    "region": {
      "type": "string",
      "enum": [
        "Europe",
        "Asia",
        "Middle East",
        "Africa",
        "North America",
        "Central America and the Caribbean",
        "South America",
        "Oceania"
      ],
      "description": "Only this part of the world. Use it for asks like \"festivals in Europe\"; country is more precise when the traveller names one."
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "What the traveller wants, in plain words: a place name (\"Kotor\"), an activity and a place (\"glacier hike Iceland\") or a theme (\"festivals in Japan\")."
    },
    "type": {
      "type": "string",
      "enum": [
        "dispatch",
        "itinerary",
        "country",
        "town",
        "venue",
        "trail",
        "event",
        "ski_resort",
        "museum"
      ],
      "description": "Return only one kind of page: dispatch (a reported long-form piece), itinerary (a multi-day country route), country or town (destination guides), venue (one sight), trail (a hike or scenic drive), event (a festival), ski_resort or museum (must-see works with their rooms and floors). Omit to search all kinds."
    },
    "country": {
      "type": "string",
      "description": "Return only pages in this country, by English name, e.g. \"Iceland\". Omit to search worldwide."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 8,
      "description": "Most results to return, 1 to 20. Defaults to 8."
    }
  },
  "required": [
    "query"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "dispatch",
              "itinerary",
              "country",
              "town",
              "venue",
              "trail",
              "event",
              "ski_resort",
              "museum"
            ]
          },
          "title": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "town": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "photo": {
            "type": "string"
          },
          "last_updated": {
            "type": "string"
          }
        }
      },
      "description": "Matching pages, best first."
    },
    "attribution": {
      "type": "string",
      "description": "The terms for quoting these pages."
    }
  }
}
🟒get_destination(detail, name, country)

Read the Meridian Dispatch guide to one country or one town, for planning a stay there. Returns: why go, how long to stay, the best months, getting there and around, practical FAQ answers, a structured fact sheet where one exists (nights, months, travel times in minutes, areas to stay, ranked top things, day trips, watch-outs), up to 15 ranked places worth your time with their own guide links, recommended hotels, the town guides of a country, related dispatches and a citation. Use it for "what to do in X", "how many days in X" or "where to stay in X". For a single sight, trail, event or ski resort use get_place; for a long-form dispatch use get_dispatch; to find a destination by theme use search_guides; for towns within reach use list_nearby. Two sizes: detail "summary" (the default) returns a short overview, nights, months, airports, areas to stay and the top 8 places, each with an id to pass to get_place as url; detail "full" returns everything above, as versions before 2.4.0 did. Ask for "full" only when the summary lacks what the traveller needs. Matching tries a country first, then a town. A country with town guides but no country guide returns its town guides and dispatches instead. Read-only. An unknown name returns an error message.

Input Schema

{
  "type": "object",
  "properties": {
    "detail": {
      "type": "string",
      "enum": [
        "summary",
        "full"
      ],
      "default": "summary",
      "description": "\"summary\" (default): a compact answer of a few thousand characters with place ids to drill into. \"full\": the whole guide (FAQ answers, full fact sheet, every ranked place, hotels), often over 15,000 characters."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "One country or town, by English name, e.g. \"Slovenia\" or \"Bled\". Case and accents are ignored. Not a sight or region: use get_place or search_guides for those."
    },
    "country": {
      "type": "string",
      "description": "The country of the town, by English name, to tell apart towns that share a name (Granada, Valencia, MΓ©rida). Omit when name is a country or a unique town."
    }
  },
  "required": [
    "name"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "country",
        "town"
      ]
    },
    "name": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "lat": {
      "type": [
        "number",
        "null"
      ]
    },
    "lng": {
      "type": [
        "number",
        "null"
      ]
    },
    "coords_note": {
      "type": "string"
    },
    "detail": {
      "type": "string",
      "enum": [
        "summary",
        "full"
      ]
    },
    "verdict": {
      "type": "string"
    },
    "summary": {
      "type": "string"
    },
    "fact_sheet": {
      "type": "object",
      "description": "Structured planning data: nights, months, getting_there, where_to_stay, top_things, day_trips, watch-outs."
    },
    "overview": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Opening paragraphs of the guide."
    },
    "planning": {
      "type": "object",
      "description": "Short answers: days needed, best time, getting there, getting around, language, money."
    },
    "best_months": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "practical": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string"
          },
          "a": {
            "type": "string"
          }
        }
      },
      "description": "Practical questions and answers not already covered by planning."
    },
    "photo": {
      "type": [
        "object",
        "null"
      ],
      "description": "Lead photograph: url, alt text and credit."
    },
    "places": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "id": {
            "type": "string",
            "description": "The place page, to pass to get_place as url."
          },
          "why": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "lat": {
            "type": [
              "number",
              "null"
            ]
          },
          "lng": {
            "type": [
              "number",
              "null"
            ]
          }
        }
      },
      "description": "The places worth your time, ranked."
    },
    "stays": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "why": {
            "type": "string"
          },
          "lat": {
            "type": [
              "number",
              "null"
            ]
          },
          "lng": {
            "type": [
              "number",
              "null"
            ]
          }
        }
      },
      "description": "Hotels the guide recommends."
    },
    "places_total": {
      "type": "integer"
    },
    "places_note": {
      "type": "string"
    },
    "town_guides": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "For a country: its town guides."
    },
    "dispatches": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "dispatch",
              "itinerary",
              "country",
              "town",
              "venue",
              "trail",
              "event",
              "ski_resort",
              "museum"
            ]
          },
          "title": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "town": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "photo": {
            "type": "string"
          },
          "last_updated": {
            "type": "string"
          }
        }
      },
      "description": "Related long-form dispatches."
    },
    "country_guide": {
      "type": "string",
      "description": "meridiandispatch.com URL."
    },
    "note": {
      "type": "string"
    },
    "source": {
      "type": "object",
      "properties": {
        "publisher": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "description": "Link for the reader (carries referral tags)."
        },
        "canonical_url": {
          "type": "string"
        },
        "last_updated": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "terms": {
          "type": "string"
        },
        "cite_as": {
          "type": "string",
          "description": "A ready-made citation line: title, publisher, date and URL."
        },
        "corrections": {
          "type": "string",
          "description": "How to report an error on this page (suggest_edit)."
        }
      },
      "description": "How to credit this answer: show cite_as, or link url."
    }
  }
}
🟒get_place(url, name, town, country)

Read the Meridian Dispatch field record for one place: a sight, museum, beach or park, a trail or scenic drive, an event, or a ski resort. Returns the best time to go, how long it takes, effort, season, access, how to get there and what goes wrong, plus the best months, practical answers, a photo, the town guide link and a citation; an event adds its dates and schedule, a trail its route facts. Use it once you know the place. For a whole country or town use get_destination; for a dispatch use get_dispatch; to find a place you cannot name exactly use search_guides; for what else is close use list_nearby. Give url, or name (at least one). A place mentioned on a town guide with no page of its own returns its short write-up and that guide. A URL of a town, country or dispatch page returns that guide instead. Read-only. No match returns an error message.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The place's meridiandispatch.com page URL, from a search_guides or get_destination result. Takes priority over name."
    },
    "name": {
      "type": "string",
      "description": "The place's name, e.g. \"Kotor Old Town\" or \"Grunas Waterfall\". Exact names match first, then names that contain it."
    },
    "town": {
      "type": "string",
      "description": "The town the place is in or visited from, e.g. \"Kotor\", to narrow a name shared by several places."
    },
    "country": {
      "type": "string",
      "description": "The place's country, by English name, to narrow a name shared by several places."
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "town": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "lat": {
      "type": [
        "number",
        "null"
      ]
    },
    "lng": {
      "type": [
        "number",
        "null"
      ]
    },
    "summary": {
      "type": "string"
    },
    "overview": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "why": {
      "type": "string"
    },
    "at_a_glance": {
      "type": "object",
      "description": "Best time, time needed, effort, season, access."
    },
    "event": {
      "type": "object",
      "description": "For an event: dates, best day, when to book, where to stay, schedule."
    },
    "best_months": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "practical": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Questions travellers ask about the place, each {q, a}, as the page answers them. Where the page can open at its FAQ, each also has a url: cite that link when the answer came from it."
    },
    "official_tickets": {
      "type": "string",
      "description": "The place's own online ticket shop, when it has one. Never a reseller."
    },
    "photo": {
      "type": [
        "object",
        "null"
      ],
      "description": "Lead photograph: url, alt text and credit."
    },
    "town_guide": {
      "type": "string",
      "description": "meridiandispatch.com URL."
    },
    "source": {
      "type": "object",
      "properties": {
        "publisher": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "description": "Link for the reader (carries referral tags)."
        },
        "canonical_url": {
          "type": "string"
        },
        "last_updated": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "terms": {
          "type": "string"
        },
        "cite_as": {
          "type": "string",
          "description": "A ready-made citation line: title, publisher, date and URL."
        },
        "corrections": {
          "type": "string",
          "description": "How to report an error on this page (suggest_edit)."
        }
      },
      "description": "How to credit this answer: show cite_as, or link url."
    }
  }
}
🟒get_dispatch(query)

Read one Meridian Dispatch long-form dispatch or multi-day itinerary. A dispatch is a reported piece on one place: returns its headline, standfirst, opening excerpt, themes, publish date, photo and links to its town and country guides (the full text stays on the page). An itinerary is a country route over several days: returns the bases in order, nights in each, where to stay and every day's activities by part of the day, each linked to its guide. Use it only for these two kinds of page. For a country or town guide use get_destination; for one sight, trail, event or ski resort use get_place; to list dispatches on a theme use search_guides with type "dispatch" or "itinerary". Lookup order: an exact URL, then an exact slug, then the single best keyword match, so a place name returns the one most relevant dispatch. Read-only. No match returns an error message.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "A dispatch or itinerary URL, its slug (e.g. \"hallstatt\", \"montenegro-beach-six-days\"), or the place it covers (e.g. \"Hallstatt\")."
    }
  },
  "required": [
    "query"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "dispatch",
        "itinerary"
      ]
    },
    "headline": {
      "type": "string"
    },
    "route": {
      "type": "object",
      "description": "For an itinerary: bases, nights and day_by_day activities."
    },
    "place": {
      "type": "string"
    },
    "lat": {
      "type": [
        "number",
        "null"
      ]
    },
    "lng": {
      "type": [
        "number",
        "null"
      ]
    },
    "standfirst": {
      "type": "string"
    },
    "excerpt": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "themes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "photo": {
      "type": [
        "object",
        "null"
      ],
      "description": "Lead photograph: url, alt text and credit."
    },
    "published": {
      "type": "string"
    },
    "town_guide": {
      "type": "string",
      "description": "meridiandispatch.com URL."
    },
    "country_guide": {
      "type": "string",
      "description": "meridiandispatch.com URL."
    },
    "note": {
      "type": "string"
    },
    "source": {
      "type": "object",
      "properties": {
        "publisher": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "description": "Link for the reader (carries referral tags)."
        },
        "canonical_url": {
          "type": "string"
        },
        "last_updated": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "terms": {
          "type": "string"
        },
        "cite_as": {
          "type": "string",
          "description": "A ready-made citation line: title, publisher, date and URL."
        },
        "corrections": {
          "type": "string",
          "description": "How to report an error on this page (suggest_edit)."
        }
      },
      "description": "How to credit this answer: show cite_as, or link url."
    }
  }
}
🟒list_events(region, month, country)

List the festivals and events worth planning a trip around, from the Meridian Dispatch events guide. Returns each event's name, kind, where it is, the current edition's dates (a label plus ISO start and end), the best day to go, when to book, the next edition where announced, a citable URL and a citation line, sorted by start date. With no filter it returns every event; month keeps events with any day in that month; country keeps one country. Use get_place with an event's URL for its full record (schedule, where to stay, tips). For every kind of destination in a month, not just events, use get_best_time. Read-only. Dates are for one edition, so check the page before booking. An invalid month or no match returns an error message.

Input Schema

{
  "type": "object",
  "properties": {
    "region": {
      "type": "string",
      "enum": [
        "Europe",
        "Asia",
        "Middle East",
        "Africa",
        "North America",
        "Central America and the Caribbean",
        "South America",
        "Oceania"
      ],
      "description": "Only this part of the world. Use it for asks like \"festivals in Europe\"; country is more precise when the traveller names one."
    },
    "month": {
      "type": "string",
      "description": "An English month name (\"October\", or \"oct\") or its number, 1 to 12 (\"10\"). Keeps events with any day in that month. Omit for the whole year."
    },
    "country": {
      "type": "string",
      "description": "Keep events in this country, by English name, e.g. \"Mexico\". Omit for every country."
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "where": {
            "type": "string"
          },
          "dates": {
            "type": "string"
          },
          "start": {
            "type": "string",
            "description": "YYYY-MM-DD"
          },
          "end": {
            "type": "string",
            "description": "YYYY-MM-DD"
          },
          "best_day": {
            "type": "string"
          },
          "book": {
            "type": "string"
          },
          "next_edition": {},
          "url": {
            "type": "string"
          },
          "cite_as": {
            "type": "string"
          }
        }
      },
      "description": "Events, soonest first."
    },
    "note": {
      "type": "string"
    }
  }
}
🟒list_best_places(country, category)

List Meridian Dispatch's ranked World's Best places: the 20 best in the world or the 10 best in one country, overall or within one category. Use it for "top things to do in X" or "best beaches in X". For one town's highlights use get_destination; for places near a point use list_nearby; for any other search use search_guides. Returns the list's title, the places in rank order (rank, name, where, a one-line summary, the place's own guide URL where one exists, and a coordinate), the other categories available for that scope, and a citation. Read-only. A country or category with no list returns an error that names the ones that exist.

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "description": "The country to rank, by English name, e.g. \"Italy\". Omit for the world list."
    },
    "category": {
      "type": "string",
      "description": "One kind of place: landmarks, museums, towns, wilderness, hiking trails, scenic drives, parks, viewpoints, beaches, shopping, wildlife, wellness or ski resorts. Singular and plural both work. Omit for the overall list."
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "list": {
      "type": "string"
    },
    "ranked": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "rank": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "where": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "lat": {
            "type": [
              "number",
              "null"
            ]
          },
          "lng": {
            "type": [
              "number",
              "null"
            ]
          }
        }
      },
      "description": "Best first."
    },
    "other_categories": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "source": {
      "type": "object",
      "properties": {
        "publisher": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "description": "Link for the reader (carries referral tags)."
        },
        "canonical_url": {
          "type": "string"
        },
        "last_updated": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "terms": {
          "type": "string"
        },
        "cite_as": {
          "type": "string",
          "description": "A ready-made citation line: title, publisher, date and URL."
        },
        "corrections": {
          "type": "string",
          "description": "How to report an error on this page (suggest_edit)."
        }
      },
      "description": "How to credit this answer: show cite_as, or link url."
    }
  }
}
🟒get_best_time(region, destination, month)

Get the best time to visit from the Meridian Dispatch guides, in one of two modes. Give destination (a country, town, trail or ski resort) for its best months, good and avoid months, closures and crowds where known, the guide's own best-time line, and the events held there. Or give month for "where to go in March": up to 40 countries, towns, trails, ski resorts and festivals the guides recommend that month, each with its reason, events first. If both are given, destination wins. For festival dates alone use list_events; for a full planning guide use get_destination. Read-only. An unknown destination, an invalid month or neither parameter returns an error message.

Input Schema

{
  "type": "object",
  "properties": {
    "region": {
      "type": "string",
      "enum": [
        "Europe",
        "Asia",
        "Middle East",
        "Africa",
        "North America",
        "Central America and the Caribbean",
        "South America",
        "Oceania"
      ],
      "description": "With month: only this part of the world (\"where in Asia in February\"). Ignored with destination."
    },
    "destination": {
      "type": "string",
      "description": "A country, town, trail or ski resort, by name, e.g. \"Kotor\" or \"Niseko\". Use this or month."
    },
    "month": {
      "type": "string",
      "description": "An English month name (\"October\", or \"oct\") or its number, 1 to 12 (\"10\"). Use this or destination."
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "destination": {
      "type": "string"
    },
    "best_months": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "good_months": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "avoid_months": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "closures": {},
    "crowds": {
      "type": "object"
    },
    "in_their_words": {
      "type": "string"
    },
    "events_there": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "dates": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        }
      }
    },
    "month": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "recommended": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "why_now": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        }
      },
      "description": "For a month: destinations recommended then."
    },
    "source": {
      "type": "object",
      "properties": {
        "publisher": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "description": "Link for the reader (carries referral tags)."
        },
        "canonical_url": {
          "type": "string"
        },
        "last_updated": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "terms": {
          "type": "string"
        },
        "cite_as": {
          "type": "string",
          "description": "A ready-made citation line: title, publisher, date and URL."
        },
        "corrections": {
          "type": "string",
          "description": "How to report an error on this page (suggest_edit)."
        }
      },
      "description": "How to credit this answer: show cite_as, or link url."
    }
  }
}
🟒list_nearby(place, lat, lng, radius_km, type)

List the places Meridian Dispatch covers near a place or a coordinate, nearest first, for day trips from a base or what else to see near a sight. From a town with a researched guide, it leads with day_trips: the guide's own picks, with travel mode and how long. Without type it answers a day-trip question: up to 15 towns, each once at its nearest point, with its distance, summary, guide link, best few places and dispatches; a town's own sights are left out (get_destination has them). With type it returns a flat list of up to 20 places of that kind with distances. Distances are straight-line kilometres, not by road. Give place, or lat and lng together. For the sights inside one town use get_destination; to search by theme use search_guides. Read-only. An unknown place or nothing within the radius returns an error message.

Input Schema

{
  "type": "object",
  "properties": {
    "place": {
      "type": "string",
      "description": "The starting point: a place name or meridiandispatch.com URL, e.g. \"Kotor\". Use this, or lat and lng."
    },
    "lat": {
      "type": "number",
      "minimum": -90,
      "maximum": 90,
      "description": "Latitude of the starting point in decimal degrees, e.g. 42.42. Give with lng, instead of place."
    },
    "lng": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Longitude of the starting point in decimal degrees, e.g. 18.77. Give with lat, instead of place."
    },
    "radius_km": {
      "type": "number",
      "minimum": 1,
      "maximum": 200,
      "default": 40,
      "description": "How far to look, in straight-line kilometres, 1 to 200. Defaults to 40; use 60 to 100 for a day trip by car."
    },
    "type": {
      "type": "string",
      "enum": [
        "dispatch",
        "itinerary",
        "country",
        "town",
        "venue",
        "trail",
        "event",
        "ski_resort",
        "museum"
      ],
      "description": "Return a flat list of only this kind of place, e.g. \"trail\" or \"event\". Omit for the day-trip view grouped by town."
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "from": {
      "description": "The starting place's name, or the coordinate given."
    },
    "radius_km": {
      "type": "number"
    },
    "towns": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "town": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "km": {
            "type": "number"
          },
          "summary": {
            "type": "string"
          },
          "town_guide": {
            "type": "string"
          },
          "highlights": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "more_places": {
            "type": "integer"
          },
          "dispatches": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "description": "Without type: towns, nearest first."
    },
    "places": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "town": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "km": {
            "type": "number"
          },
          "url": {
            "type": "string"
          }
        }
      },
      "description": "With type: places, nearest first."
    },
    "same_town": {
      "type": "string"
    },
    "note": {
      "type": "string"
    }
  }
}
🟑create_itinerary_link(title, summary, country_code, days, stays)

Generate an itinerary import link: turn a day-by-day travel itinerary into a shareable "Add Itinerary to Meridian Dispatch" link. Use it when the traveller has a day-by-day plan and wants it in the Meridian Dispatch app, or asks for a link to their trip. It is the only tool that creates anything for the traveller; the others read, apart from suggest_edit, which sends the desk a correction. To draft the plan itself, use get_destination, get_dispatch and get_place first and link places with their meridiandispatch.com URLs. Opening the link on an iPhone with the Meridian Dispatch app shows the trip and adds it to the Plan tab as a new plan, after the traveller picks the first day; anywhere else it opens a web preview of the days. Days are numbered (day 1, 2, 3) or dated, and every day needs a hotel stay. A place given with its meridiandispatch.com page URL arrives with that page's field record. Each call creates a new, public, permanent link (not idempotent): booking references, emails and phone numbers are removed. Returns the link, ready-made markdown, counts of days and items, and the places matched and not matched to the guides. An invalid itinerary returns an error listing every problem; too many links in an hour returns a rate-limit error.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "description": "The trip, e.g. \"Six days on the Montenegro coast\"."
    },
    "summary": {
      "type": "string",
      "maxLength": 400,
      "description": "One short paragraph shown under the title: what the trip is and why it works."
    },
    "country_code": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "ISO 3166 alpha-2 code of the main country, e.g. \"ME\"."
    },
    "days": {
      "type": "array",
      "minItems": 1,
      "maxItems": 30,
      "description": "The days in order, each with what to do. Number every day or date every day, not a mix.",
      "items": {
        "type": "object",
        "properties": {
          "day": {
            "type": "integer",
            "minimum": 1,
            "maximum": 30,
            "description": "Day number, from 1. Use this or date on every day."
          },
          "date": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "YYYY-MM-DD. Use this or day on every day."
          },
          "city": {
            "type": "string",
            "description": "Where the traveller is that day, e.g. \"Kotor\"."
          },
          "country_code": {
            "type": "string",
            "pattern": "^[A-Za-z]{2}$",
            "description": "ISO alpha-2, when this day is in a different country."
          },
          "summary": {
            "type": "string",
            "maxLength": 300,
            "description": "One line about the day."
          },
          "items": {
            "type": "array",
            "maxItems": 15,
            "description": "The day's places and activities, in order.",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "description": "The place or activity, e.g. \"Kotor Old Town\"."
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "activity",
                    "restaurant",
                    "note"
                  ],
                  "default": "activity",
                  "description": "activity (a place or thing to do), restaurant (somewhere to eat) or note (a reminder with no place)."
                },
                "time": {
                  "type": "string",
                  "pattern": "^\\d{2}:\\d{2}$",
                  "description": "HH:MM, 24-hour."
                },
                "part_of_day": {
                  "type": "string",
                  "enum": [
                    "morning",
                    "afternoon",
                    "evening"
                  ],
                  "description": "When in the day, if there is no exact time."
                },
                "meridian_url": {
                  "type": "string",
                  "description": "The meridiandispatch.com page for this place, when there is one (from search_guides or get_destination). The place then arrives with its location and record."
                },
                "category": {
                  "type": "string",
                  "description": "The kind of place, e.g. \"Museum\" or \"Beach\"."
                },
                "note": {
                  "type": "string",
                  "maxLength": 500,
                  "description": "A tip for this stop."
                },
                "lat": {
                  "type": "number",
                  "minimum": -90,
                  "maximum": 90,
                  "description": "Latitude, when there is no meridian_url."
                },
                "lng": {
                  "type": "number",
                  "minimum": -180,
                  "maximum": 180,
                  "description": "Longitude, when there is no meridian_url."
                }
              },
              "required": [
                "title"
              ]
            }
          }
        },
        "required": [
          "items"
        ]
      }
    },
    "stays": {
      "type": "array",
      "minItems": 1,
      "maxItems": 30,
      "description": "Where the traveller sleeps, by hotel name. Required: every day must fall between a stay's check-in and check-out (inclusive), or the app shows that day without its places. check_in_day and check_out_day on a numbered itinerary, check_in and check_out (YYYY-MM-DD) on a dated one.",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The hotel's name, as booked."
          },
          "city": {
            "type": "string",
            "description": "The town the hotel is in."
          },
          "check_in_day": {
            "type": "integer",
            "minimum": 1,
            "description": "Numbered itinerary: the day number of check-in."
          },
          "check_out_day": {
            "type": "integer",
            "minimum": 2,
            "description": "Numbered itinerary: the day number of check-out."
          },
          "check_in": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Dated itinerary: check-in date, YYYY-MM-DD."
          },
          "check_out": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Dated itinerary: check-out date, YYYY-MM-DD."
          }
        },
        "required": [
          "name"
        ]
      }
    }
  },
  "required": [
    "title",
    "country_code",
    "days",
    "stays"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The link to give the traveller."
    },
    "link_text": {
      "type": "string"
    },
    "markdown": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "days": {},
    "items": {},
    "places_matched_to_guides": {},
    "unmatched_places": {
      "type": "array",
      "description": "Places that matched nothing in the guides; resend with the proper name to attach a location."
    },
    "dated": {},
    "opens": {
      "type": "string"
    }
  }
}
🟑suggest_edit(url, field, current_text, proposed_text, reason, ...)

Send the Meridian Dispatch desk a correction to one of its pages. Use it when the traveller tells you something on a meridiandispatch.com page is wrong or out of date (a place has closed, moved, been renamed, changed its hours or now needs booking). Pass a source_url when the traveller gives one or one supports what they said. Do not use it for opinions, reviews or style. To read a page first, use get_place, get_destination or get_dispatch. Quote current_text exactly as it appears on the page (or in this server's answer about it); a quote that is not found is refused. Nothing changes immediately: the desk verifies every suggestion against its own sources before editing. Returns whether the suggestion was received and its id; the same suggestion sent twice is recorded once. A page that is not on meridiandispatch.com, a quote not on the page, or too many suggestions in an hour (per conversation, per address or per page) returns an error saying which.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 300,
      "description": "The meridiandispatch.com page to correct, as returned in source.url or canonical_url."
    },
    "field": {
      "type": "string",
      "enum": [
        "status",
        "hours",
        "location",
        "access",
        "dates",
        "name",
        "description",
        "other"
      ],
      "description": "What kind of fact is wrong: status (closed, reopened), hours, location, access (booking, tickets, transport), dates (an event), name, description, or other."
    },
    "current_text": {
      "type": "string",
      "minLength": 8,
      "maxLength": 500,
      "description": "The wrong text, quoted exactly from the page or from this server's answer about it."
    },
    "proposed_text": {
      "type": "string",
      "minLength": 2,
      "maxLength": 500,
      "description": "What it should say instead, as plain text. Facts only, no prices."
    },
    "reason": {
      "type": "string",
      "minLength": 4,
      "maxLength": 300,
      "description": "Why it is wrong, e.g. \"The traveller says it closed in spring 2026\" or \"The official site lists new hours\"."
    },
    "source_url": {
      "type": "string",
      "maxLength": 300,
      "description": "Optional: a page that supports the correction, ideally the place's own website. It speeds review."
    }
  },
  "required": [
    "url",
    "current_text",
    "proposed_text",
    "reason"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "received": {
      "type": "boolean"
    },
    "duplicate": {
      "type": "boolean"
    },
    "id": {
      "type": "string"
    },
    "page": {
      "type": "string"
    },
    "next": {
      "type": "string",
      "description": "What happens to the suggestion now."
    }
  }
}
🟑confirm_fact(url, checked_text, source_url)

Tell the Meridian Dispatch desk that a fact on one of its pages still holds, with the current, independent source that shows it (the place's official website, an operator or government page). Use it when the traveller confirms a fact on a page (they were just there, or asked you to check it and the source agrees). If the fact is wrong instead, use suggest_edit. Quote checked_text exactly as the page (or this server's answer) gives it and pass the source; a quote not on the page, or a source on meridiandispatch.com, is refused. A confirmation is recorded as a signal for the desk to review and counted per page; it does not mark the page verified, change its date or reorder any list, and the page itself does not change. The same confirmation sent twice is recorded once. Returns whether it was recorded.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 300,
      "description": "The meridiandispatch.com page, as returned in source.url."
    },
    "checked_text": {
      "type": "string",
      "minLength": 4,
      "maxLength": 500,
      "description": "The fact you checked, quoted from the page, e.g. a facts_to_check text."
    },
    "source_url": {
      "type": "string",
      "maxLength": 300,
      "description": "Where you checked it: a current, authoritative page that is not on meridiandispatch.com."
    }
  },
  "required": [
    "url",
    "checked_text",
    "source_url"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "received": {
      "type": "boolean"
    },
    "duplicate": {
      "type": "boolean"
    },
    "page": {
      "type": "string"
    },
    "next": {
      "type": "string"
    }
  }
}
🟑suggest_place(name, country, town, kind, why, ...)

Suggest a town, sight, walk, museum, event, ski resort, food area or hotel that Meridian Dispatch has no page for, so the desk can research and add it to this free, shared travel reference. Use it when the traveller asks about, or tells you about, somewhere the guides do not cover (search_guides or get_destination found nothing) and it is real and open. Single restaurants, bars and shops are not listed; a food street, market or bar district is. source_url is required: the place's official website or another current page showing it exists. A place already covered returns its page instead of a suggestion. Nothing is published straight away: the desk researches every suggestion first. The same place suggested twice is recorded once. Returns whether it was received.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120,
      "description": "The place's proper name, e.g. \"Lake Bohinj\"."
    },
    "country": {
      "type": "string",
      "maxLength": 60,
      "description": "English country name, e.g. \"Slovenia\"."
    },
    "town": {
      "type": "string",
      "maxLength": 80,
      "description": "The nearest town, when the place is not a town itself."
    },
    "kind": {
      "type": "string",
      "enum": [
        "town",
        "sight",
        "nature",
        "trail",
        "museum",
        "event",
        "ski_resort",
        "food_area",
        "stay"
      ],
      "description": "What it is. stay is a hotel worth the trip in itself."
    },
    "why": {
      "type": "string",
      "minLength": 10,
      "maxLength": 400,
      "description": "One or two sentences: what it is and why a traveller would go. Facts only, no prices."
    },
    "source_url": {
      "type": "string",
      "maxLength": 300,
      "description": "The place's official website, or another current page showing it exists and is open."
    },
    "lat": {
      "type": "number",
      "minimum": -90,
      "maximum": 90,
      "description": "Latitude, if known."
    },
    "lng": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Longitude, if known."
    }
  },
  "required": [
    "name",
    "country",
    "why",
    "source_url"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "received": {
      "type": "boolean"
    },
    "duplicate": {
      "type": "boolean"
    },
    "id": {
      "type": "string"
    },
    "already_covered": {
      "type": "string"
    },
    "next": {
      "type": "string"
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools