MCP 服务器

Salsa Vida

com.salsavida/mcp
旅行与酒店 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Finds and retrieves Salsa and Bachata events, locations, and destination guides worldwide.

get_event
Read public event facts and dated occurrences within a requested window (default UTC today through 13 days later; pass user-local dates for today/tonight). Unknown timezones remain null. Inactive/private events are unavailable.
只读 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['event_id'], 'properties': {'date_to': {'type': 'string'}, 'event_id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'language': {'enum': ['en', 'es', 'ja', 'de', 'fr', 'fr-fr', 'it', 'nl', 'pt', 'ka', 'pl', 'tr'], 'type': 'string'}, 'date_from': {'type': 'string'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['calendar_basis', 'default_window_basis', 'source', 'coverage', 'source_checked_at', 'changes_checked_at', 'dates_are_local', 'freshness', 'freshness_warning', 'date_verification', 'event_id', 'title', 'summary', 'canonical_url', 'visit_url', 'returned_language', 'locale_fallback', 'event_types', 'dances', 'salsa_styles', 'venue', 'address', 'price', 'time_mode', 'start_time', 'end_time', 'timezone', 'source_modified_at', 'date_from', 'date_to', 'occurrences'], 'properties': {'price': {'type': 'string'}, 'title': {'type': 'string'}, 'venue': {'type': 'string'}, 'dances': {'type': 'array', 'items': {'enum': ['salsa', 'bachata'], 'type': 'string'}}, 'source': {'type': 'string', 'const': 'Salsa Vida'}, 'address': {'type': 'string'}, 'date_to': {'type': 'string'}, 'summary': {'type': 'string'}, 'coverage': {'type': 'object', 'required': ['from', 'through'], 'properties': {'from': {'type': ['string', 'null']}, 'through': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'end_time': {'type': ['string', 'null']}, 'event_id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'timezone': {'type': ['string', 'null']}, 'date_from': {'type': 'string'}, 'freshness': {'enum': ['unknown', 'fresh', 'delayed', 'degraded'], 'type': 'string'}, 'time_mode': {'enum': ['fixed', 'varies', 'tba'], 'type': 'string'}, 'visit_url': {'type': 'string', 'format': 'uri'}, 'start_time': {'type': ['string', 'null']}, 'event_types': {'type': 'array', 'items': {'enum': ['social', 'lesson', 'festival'], 'type': 'string'}}, 'occurrences': {'type': 'array', 'items': {'type': 'object', 'required': ['occurrence_id', 'start_date', 'end_date'], 'properties': {'end_date': {'type': 'string'}, 'start_date': {'type': 'string'}, 'occurrence_id': {'type': 'string'}}, 'additionalProperties': False}}, 'salsa_styles': {'type': 'array', 'items': {'type': 'string'}}, 'canonical_url': {'type': 'string', 'format': 'uri'}, 'calendar_basis': {'type': 'string', 'const': 'event_local_calendar_dates'}, 'dates_are_local': {'type': 'boolean', 'const': True}, 'locale_fallback': {'type': 'boolean'}, 'date_verification': {'type': 'string', 'const': 'scheduled_from_recorded_data_not_organizer_confirmed'}, 'freshness_warning': {'type': ['string', 'null']}, 'returned_language': {'type': 'string'}, 'source_checked_at': {'type': ['string', 'null']}, 'changes_checked_at': {'type': ['string', 'null']}, 'source_modified_at': {'type': ['string', 'null']}, 'default_window_basis': {'type': 'string', 'const': 'UTC today through UTC today plus 13 calendar dates; pass explicit user-local dates for today or tonight.'}}, 'additionalProperties': False}
get_guide
Read a public Salsa Vida city, region or country guide summary and its canonical link. Uses only existing published language versions, with English fallback.
只读 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['location'], 'properties': {'language': {'enum': ['en', 'es', 'ja', 'de', 'fr', 'fr-fr', 'it', 'nl', 'pt', 'ka', 'pl', 'tr'], 'type': 'string'}, 'location': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Salsa Vida source location ID, slug, or location name. Use search_locations to disambiguate.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['calendar_basis', 'default_window_basis', 'source', 'coverage', 'source_checked_at', 'changes_checked_at', 'dates_are_local', 'freshness', 'freshness_warning', 'location_id', 'slug', 'name', 'summary', 'canonical_url', 'visit_url', 'returned_language', 'locale_fallback'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'source': {'type': 'string', 'const': 'Salsa Vida'}, 'summary': {'type': 'string'}, 'coverage': {'type': 'object', 'required': ['from', 'through'], 'properties': {'from': {'type': ['string', 'null']}, 'through': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'freshness': {'enum': ['unknown', 'fresh', 'delayed', 'degraded'], 'type': 'string'}, 'visit_url': {'type': 'string', 'format': 'uri'}, 'location_id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'canonical_url': {'type': 'string', 'format': 'uri'}, 'calendar_basis': {'type': 'string', 'const': 'event_local_calendar_dates'}, 'dates_are_local': {'type': 'boolean', 'const': True}, 'locale_fallback': {'type': 'boolean'}, 'freshness_warning': {'type': ['string', 'null']}, 'returned_language': {'type': 'string'}, 'source_checked_at': {'type': ['string', 'null']}, 'changes_checked_at': {'type': ['string', 'null']}, 'default_window_basis': {'type': 'string', 'const': 'UTC today through UTC today plus 13 calendar dates; pass explicit user-local dates for today or tonight.'}}, 'additionalProperties': False}
search_events
Find published salsa/bachata events for a location and dates. Defaults to UTC today through 13 days later; for today/tonight pass the user-local date. Supports up to one year, 50 results/page and 10 pages. response_size_limited means the page was shortened to fit; follow next_cursor. Narrow filters when pagination_limit_reached is true.
只读 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['location'], 'properties': {'dance': {'enum': ['salsa', 'bachata'], 'type': 'string'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'cursor': {'type': 'string', 'maxLength': 2000}, 'date_to': {'type': 'string'}, 'language': {'enum': ['en', 'es', 'ja', 'de', 'fr', 'fr-fr', 'it', 'nl', 'pt', 'ka', 'pl', 'tr'], 'type': 'string'}, 'location': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Salsa Vida source location ID, slug, or location name. Use search_locations to disambiguate.'}, 'date_from': {'type': 'string'}, 'event_type': {'enum': ['social', 'lesson', 'festival'], 'type': 'string'}, 'salsa_style': {'enum': ['linear-salsa', 'salsa-on1', 'salsa-on2', 'cuban-salsa', 'salsa-rueda', 'salsa-calena', 'afro-cuban'], 'type': 'string', 'description': 'Filter recorded Salsa style tags. Many events have no recorded style, so an empty result does not prove the style is absent. linear-salsa includes salsa-on1/salsa-on2; cuban-salsa includes salsa-rueda.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['calendar_basis', 'default_window_basis', 'source', 'coverage', 'source_checked_at', 'changes_checked_at', 'dates_are_local', 'freshness', 'freshness_warning', 'location', 'date_from', 'date_to', 'results', 'next_cursor', 'pagination_limit_reached', 'response_size_limited'], 'properties': {'source': {'type': 'string', 'const': 'Salsa Vida'}, 'date_to': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['date_verification', 'event_id', 'title', 'summary', 'canonical_url', 'visit_url', 'returned_language', 'locale_fallback', 'event_types', 'dances', 'salsa_styles', 'venue', 'address', 'price', 'time_mode', 'start_time', 'end_time', 'timezone', 'source_modified_at', 'occurrence_id', 'start_date', 'end_date'], 'properties': {'price': {'type': 'string'}, 'title': {'type': 'string'}, 'venue': {'type': 'string'}, 'dances': {'type': 'array', 'items': {'enum': ['salsa', 'bachata'], 'type': 'string'}}, 'address': {'type': 'string'}, 'summary': {'type': 'string'}, 'end_date': {'type': 'string'}, 'end_time': {'type': ['string', 'null']}, 'event_id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'timezone': {'type': ['string', 'null']}, 'time_mode': {'enum': ['fixed', 'varies', 'tba'], 'type': 'string'}, 'visit_url': {'type': 'string', 'format': 'uri'}, 'start_date': {'type': 'string'}, 'start_time': {'type': ['string', 'null']}, 'event_types': {'type': 'array', 'items': {'enum': ['social', 'lesson', 'festival'], 'type': 'string'}}, 'salsa_styles': {'type': 'array', 'items': {'type': 'string'}}, 'canonical_url': {'type': 'string', 'format': 'uri'}, 'occurrence_id': {'type': 'string'}, 'locale_fallback': {'type': 'boolean'}, 'date_verification': {'type': 'string', 'const': 'scheduled_from_recorded_data_not_organizer_confirmed'}, 'returned_language': {'type': 'string'}, 'source_modified_at': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'coverage': {'type': 'object', 'required': ['from', 'through'], 'properties': {'from': {'type': ['string', 'null']}, 'through': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'location': {'type': 'object', 'required': ['id', 'slug', 'name'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}}, 'additionalProperties': False}, 'date_from': {'type': 'string'}, 'freshness': {'enum': ['unknown', 'fresh', 'delayed', 'degraded'], 'type': 'string'}, 'next_cursor': {'type': ['string', 'null']}, 'calendar_basis': {'type': 'string', 'const': 'event_local_calendar_dates'}, 'dates_are_local': {'type': 'boolean', 'const': True}, 'freshness_warning': {'type': ['string', 'null']}, 'source_checked_at': {'type': ['string', 'null']}, 'changes_checked_at': {'type': ['string', 'null']}, 'default_window_basis': {'type': 'string', 'const': 'UTC today through UTC today plus 13 calendar dates; pass explicit user-local dates for today or tonight.'}, 'response_size_limited': {'type': 'boolean'}, 'pagination_limit_reached': {'type': 'boolean'}}, 'additionalProperties': False}
search_locations
Find Salsa Vida cities, regions and countries by name, ignoring case and diacritics. Use the returned source location ID to resolve ambiguous names. Localized guides fall back to English where available. response_size_limited means the page was shortened to fit; follow next_cursor.
只读 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'cursor': {'type': 'string', 'maxLength': 2000}, 'language': {'enum': ['en', 'es', 'ja', 'de', 'fr', 'fr-fr', 'it', 'nl', 'pt', 'ka', 'pl', 'tr'], 'type': 'string'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['calendar_basis', 'default_window_basis', 'source', 'coverage', 'source_checked_at', 'changes_checked_at', 'dates_are_local', 'freshness', 'freshness_warning', 'results', 'next_cursor', 'pagination_limit_reached', 'response_size_limited'], 'properties': {'source': {'type': 'string', 'const': 'Salsa Vida'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'source_location_id', 'parent_id', 'slug', 'name', 'ancestors', 'canonical_url', 'visit_url', 'returned_language', 'locale_fallback'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'ancestors': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'slug', 'name'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}}, 'additionalProperties': False}}, 'parent_id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'visit_url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'canonical_url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'locale_fallback': {'type': 'boolean'}, 'returned_language': {'type': ['string', 'null']}, 'source_location_id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}}, 'coverage': {'type': 'object', 'required': ['from', 'through'], 'properties': {'from': {'type': ['string', 'null']}, 'through': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'freshness': {'enum': ['unknown', 'fresh', 'delayed', 'degraded'], 'type': 'string'}, 'next_cursor': {'type': ['string', 'null']}, 'calendar_basis': {'type': 'string', 'const': 'event_local_calendar_dates'}, 'dates_are_local': {'type': 'boolean', 'const': True}, 'freshness_warning': {'type': ['string', 'null']}, 'source_checked_at': {'type': ['string', 'null']}, 'changes_checked_at': {'type': ['string', 'null']}, 'default_window_basis': {'type': 'string', 'const': 'UTC today through UTC today plus 13 calendar dates; pass explicit user-local dates for today or tonight.'}, 'response_size_limited': {'type': 'boolean'}, 'pagination_limit_reached': {'type': 'boolean'}}, 'additionalProperties': False}
已添加
get_guide
2026年9月17日 12:37
已添加
search_locations
2026年9月17日 12:37
已添加
get_event
2026年9月17日 12:37
已添加
search_events
2026年9月17日 12:37