Yenta Directory
Was dieses MCP kann
Supports read-only discovery of venues and destinations, including listings, menus, events, guides, dietary information, and location-based filters.
Tools
Eingabeschema
{'type': 'object', 'required': ['destination'], 'properties': {'area': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Area slug from destination_facets.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of items to return.'}, 'cursor': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Number of items to skip; pass `next_cursor` from the previous page.'}, 'to_date': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'default': None, 'description': 'ISO date; open-ended if omitted.'}, 'category': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Category slug from destination_facets.'}, 'from_date': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'default': None, 'description': 'ISO date; defaults to today.'}, 'destination': {'type': 'string', 'description': 'Destination name or slug; call search_destinations to discover one.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['destination'], 'properties': {'kind': {'anyOf': [{'enum': ['area', 'category', 'tag'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Return only this facet family; omit for all three.'}, 'destination': {'type': 'string', 'description': 'Destination name or slug; call search_destinations to discover one.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['destination'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of items to return.'}, 'query': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'default': None, 'description': 'Text to match in question/answer.'}, 'cursor': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Number of items to skip; pass `next_cursor` from the previous page.'}, 'destination': {'type': 'string', 'description': 'Destination name or slug; call search_destinations to discover one.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['destination'], 'properties': {'query': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'default': None, 'description': 'Text to match in guide title/body.'}, 'topic': {'anyOf': [{'enum': ['weather', 'getting_here', 'transportation', 'entry_requirements', 'emergencies', 'safety', 'culture', 'packing', 'sustainability'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Guide topic; omit for all.'}, 'destination': {'type': 'string', 'description': 'Destination name or slug; call search_destinations to discover one.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['destination', 'listing_id'], 'properties': {'listing_id': {'type': 'string', 'description': "The listing's id, as returned by destination_listings."}, 'destination': {'type': 'string', 'description': 'Destination name or slug; call search_destinations to discover one.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['destination'], 'properties': {'area': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Area slug from destination_facets.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'description': 'Tag slugs; only listings carrying ALL are returned.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of items to return.'}, 'query': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'default': None, 'description': 'Text to match listing names/descriptions.'}, 'cursor': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Number of items to skip; pass `next_cursor` from the previous page.'}, 'category': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Category slug from destination_facets.'}, 'language': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Language code (e.g. 'en', 'es'); defaults to the destination's."}, 'radius_km': {'anyOf': [{'type': 'number', 'maximum': 50.0, 'minimum': 0}, {'type': 'null'}], 'default': None, 'description': 'Search radius in km around near_listing_id; a larger value is reduced to the server maximum.'}, 'destination': {'type': 'string', 'description': 'Destination name or slug; call search_destinations to discover one.'}, 'near_listing_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'A listing id; returns listings within radius_km, nearest first.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['destination'], 'properties': {'destination': {'type': 'string', 'description': 'Destination name or slug; call search_destinations to discover one.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['destination_slug'], 'properties': {'destination_slug': {'type': 'string', 'description': "The destination's slug, as returned by search_destinations."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['venue_slug'], 'properties': {'venue_slug': {'type': 'string', 'description': "The venue's slug, as returned by search_venues."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['slugs'], 'properties': {'slugs': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'description': "The venues' slugs, as returned by search_venues; duplicates resolve once. Either one slug per list entry, or comma-separated within an entry (a,b) — both work and mix; the cap applies to the total slug count."}, 'include': {'type': 'array', 'items': {'enum': ['attributes', 'dietary', 'hours', 'menu_summary'], 'type': 'string'}, 'maxItems': 4, 'description': 'Optional add-ons, any of: attributes, dietary, hours, menu_summary. Omit for the lean base view; an unknown value is a 422.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of items to return.'}, 'cursor': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Number of items to skip; pass `next_cursor` from the previous page.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Narrow VENUES to this city (case-insensitive); destinations have no city and are not narrowed by it. Call list_cities for the exact values.'}, 'kind': {'anyOf': [{'enum': ['venue', 'destination'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Scope to 'venue' or 'destination'; omit to return both, each tagged kind."}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of items to return.'}, 'query': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'default': None, 'description': 'Match venue names/descriptions and destination names; omit for all.'}, 'cursor': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Number of items to skip; pass `next_cursor` from the previous page.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of items to return.'}, 'query': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'default': None, 'description': 'Text to match against destination names; omit to list all.'}, 'cursor': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Number of items to skip; pass `next_cursor` from the previous page.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Only return items from venues in this city (case-insensitive); call list_cities for the exact values.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of items to return.'}, 'query': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'default': None, 'description': 'Text to match against menu item names and descriptions.'}, 'cursor': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Number of items to skip; pass `next_cursor` from the previous page.'}, 'allergens': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'description': 'Exclude items that declare any of these allergens (spelling-insensitive).'}, 'dietary_tags': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'description': 'Require ALL of these dietary tags (case- and separator-insensitive).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'at': {'anyOf': [{'type': 'string', 'format': 'time'}, {'type': 'null'}], 'default': None, 'description': 'A 24-hour HH:MM time; with open_on, require the venue be open then.'}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Only return venues in this city (case-insensitive); call list_cities for the exact values this directory knows.'}, 'near': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'examples': ['19.0413,-98.2062'], 'description': "Only return venues within radius_km of this 'latitude,longitude' point, nearest first, each with a distance_km; venues with no coordinates are excluded."}, 'avoid': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'description': 'Soft preference: venues matching these cuisine/neighbourhood tokens rank LOWER; not dropped.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of items to return.'}, 'query': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'default': None, 'description': 'Text to match against venue names and descriptions; omit to list all.'}, 'cursor': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Number of items to skip; pass `next_cursor` from the previous page.'}, 'facets': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'description': "HARD experiential-facet filter: each token is '<facet_type>:<value>' (e.g. 'dietary:vegetarian', 'vibe:romantic'). A venue must match every facet_type given (values OR within a type, types AND across); a miss EXCLUDES it. Call facet_vocabulary for the legal types and values."}, 'cuisine': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Only return venues with this cuisine (case-insensitive exact match).'}, 'open_on': {'anyOf': [{'enum': ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Only return venues open on this weekday (optionally at 'at'); venues with no published hours are excluded."}, 'open_now': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Only return venues open (true) or closed (false) at their own local time now; venues with no timezone or hours are excluded.'}, 'radius_km': {'anyOf': [{'type': 'number', 'maximum': 50.0, 'minimum': 0}, {'type': 'null'}], 'default': None, 'description': "Search radius in km around 'near' (default applied when omitted)."}, 'price_band': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Only return venues in this price band, e.g. '$$' (case-insensitive)."}, 'neighbourhood': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Only return venues in this neighbourhood (case-insensitive exact match).'}, 'prefer_facets': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'description': "SOFT experiential-facet preference, same '<facet_type>:<value>' tokens as facets: a venue that declares them ranks higher but is NEVER dropped. Call facet_vocabulary for the legal types and values."}, 'prefer_cuisine': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'description': 'Soft preference: venues of these cuisines rank higher; non-matches are NOT dropped.'}, 'accepts_reservations': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Filter by whether the venue takes reservations (has a live booking tool or a booking link); omit for both.'}, 'prefer_neighbourhood': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'description': 'Soft preference: venues in these neighbourhoods rank higher; non-matches are NOT dropped.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['venue'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Disambiguate a name by city (call list_cities); ignored for a slug.'}, 'venue': {'type': 'string', 'description': 'Venue name or slug; call search_venues to discover one.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['venue'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Disambiguate a name by city (call list_cities); ignored for a slug.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of items to return.'}, 'query': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'default': None, 'description': 'Text to match against questions and answers.'}, 'venue': {'type': 'string', 'description': 'Venue name or slug; call search_venues to discover one.'}, 'cursor': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Number of items to skip; pass `next_cursor` from the previous page.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['venue'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Disambiguate a name by city (call list_cities); ignored for a slug.'}, 'venue': {'type': 'string', 'description': 'Venue name or slug; call search_venues to discover one.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['venue'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Disambiguate a name by city (call list_cities); ignored for a slug.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of items to return.'}, 'query': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'default': None, 'description': 'Text to match against item names and descriptions.'}, 'venue': {'type': 'string', 'description': 'Venue name or slug; call search_venues to discover one.'}, 'cursor': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Number of items to skip; pass `next_cursor` from the previous page.'}, 'allergens': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'description': 'Exclude items declaring any of these allergens (exact spelling).'}, 'dietary_tags': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'description': 'Require ALL of these tags (exact spelling from venue_dietary_options).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['venue'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Disambiguate a name by city (call list_cities); ignored for a slug.'}, 'venue': {'type': 'string', 'description': 'Venue name or slug; call search_venues to discover one.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'title': 'PublicResponse', 'required': ['status'], 'properties': {'item': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Item', 'default': None}, 'items': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Items', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'sample': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sample', 'default': None}, 'source': {'type': 'object', 'title': 'SourceReference', 'required': ['content_version', 'source'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'powered_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Powered By', 'default': None}, 'approved_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Approved At', 'default': None}, 'content_version': {'type': 'integer', 'title': 'Content Version'}}, 'description': 'FR-13: which approved revision an answer was read from, and how fresh.\n\n``source`` is ``approved-content-revision:<id>`` for every read that answers\nfrom one venue, and the literal ``directory`` for the two cross-venue reads,\nwhich have no single revision to cite.', 'additionalProperties': False}, 'status': {'enum': ['ok', 'not_available', 'validation_error'], 'type': 'string', 'title': 'Status'}, 'pagination': {'anyOf': [{'type': 'object', 'title': 'Pagination', 'required': ['limit', 'cursor', 'total'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total'}, 'cursor': {'type': 'integer', 'title': 'Cursor'}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Cursor', 'default': None}}, 'description': 'The page a paginated read actually served (FR-13, INV-8).\n\n``next_cursor`` is ``None`` both at the end of the results and when the next\ncursor would exceed ``max_public_cursor`` — in either case there is no\nfurther page a caller can legally request.', 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'description': 'The Yenta response envelope: a status, the answer in `item` or `items`, and the approved content revision it was read from.', 'additionalProperties': False}
Letzte Tool-Änderungen
Ähnliche MCP-Server
MolTravel
Searches and provides details for flights, hotels, rental cars, ferries, airports, travel experiences, destinations, country info…
Wmata
Provides Washington Metro rail and bus routes, stops, stations, service incidents, route details, and real-time arrival predictio…
Openrouteservice
Provides geocoding, routing, travel-time matrices, isochrones, snapping, and elevation data using OpenStreetMap-based services.
Google_maps
Provides Google Maps geocoding, place search and details, directions, distance matrices, and elevation data.
SeaWeb
Searches and extracts web information about entities and travel locations, including restaurants, salons, tourist conditions, dis…
Aviationstack
Provides airline, airport, city, country, and flight directory data, including real-time and scheduled flight details.
Nps
Searches National Park Service data for parks, campgrounds, activities, alerts, visitor statistics, locations, fees, and operatin…
Tfl
Provides London transport journey planning, line status, disruptions, stop arrivals, and Santander Cycle availability.