naftiko: 1.0.0-alpha2 info: label: NYPL What's On The Menu API description: The New York Public Library's What's On The Menu API provides programmatic access to over 17,000 historical restaurant menus from the New York City area dating back to the 1850s. Explore menus, pages, and dishes including prices, names, dates, and full-text search across the dataset. tags: - New - York - Public - Library - Whats - 'On' created: '2026-05-06' modified: '2026-05-06' capability: consumes: - type: http namespace: new-york-public-library-whats-on-the-menu baseUri: http://api.menus.nypl.org description: NYPL What's On The Menu API HTTP API. authentication: type: apikey in: query name: token value: '{{NEW_YORK_PUBLIC_LIBRARY_WHATS_ON_THE_MENU_TOKEN}}' resources: - name: menus path: /menus operations: - name: get-menus method: GET description: List menus inputParameters: - name: min_year in: query type: integer - name: max_year in: query type: integer - name: sort_by in: query type: string - name: status in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: menus-id path: /menus/{id} operations: - name: get-menus-id method: GET description: Get menu inputParameters: - name: id in: path type: integer required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: menus-id-pages path: /menus/{id}/pages operations: - name: get-menus-id-pages method: GET description: Get menu pages inputParameters: - name: id in: path type: integer required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: menus-id-dishes path: /menus/{id}/dishes operations: - name: get-menus-id-dishes method: GET description: Get menu dishes inputParameters: - name: id in: path type: integer required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: menus-search path: /menus/search operations: - name: get-menus-search method: GET description: Search menus inputParameters: - name: query in: query type: string required: true - name: sort_by in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: dishes path: /dishes operations: - name: get-dishes method: GET description: List dishes inputParameters: - name: min_year in: query type: integer - name: max_year in: query type: integer - name: sort_by in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: dishes-id path: /dishes/{id} operations: - name: get-dishes-id method: GET description: Get dish inputParameters: - name: id in: path type: integer required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: dishes-id-menus path: /dishes/{id}/menus operations: - name: get-dishes-id-menus method: GET description: Get menus for a dish inputParameters: - name: id in: path type: integer required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: dishes-search path: /dishes/search operations: - name: get-dishes-search method: GET description: Search dishes inputParameters: - name: query in: query type: string required: true - name: sort_by in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: new-york-public-library-whats-on-the-menu-rest description: REST adapter for NYPL What's On The Menu API. resources: - path: /menus name: get-menus operations: - method: GET name: get-menus description: List menus call: new-york-public-library-whats-on-the-menu.get-menus outputParameters: - type: object mapping: $. - path: /menus/{id} name: get-menus-id operations: - method: GET name: get-menus-id description: Get menu call: new-york-public-library-whats-on-the-menu.get-menus-id with: id: rest.id outputParameters: - type: object mapping: $. - path: /menus/{id}/pages name: get-menus-id-pages operations: - method: GET name: get-menus-id-pages description: Get menu pages call: new-york-public-library-whats-on-the-menu.get-menus-id-pages with: id: rest.id outputParameters: - type: object mapping: $. - path: /menus/{id}/dishes name: get-menus-id-dishes operations: - method: GET name: get-menus-id-dishes description: Get menu dishes call: new-york-public-library-whats-on-the-menu.get-menus-id-dishes with: id: rest.id outputParameters: - type: object mapping: $. - path: /menus/search name: get-menus-search operations: - method: GET name: get-menus-search description: Search menus call: new-york-public-library-whats-on-the-menu.get-menus-search outputParameters: - type: object mapping: $. - path: /dishes name: get-dishes operations: - method: GET name: get-dishes description: List dishes call: new-york-public-library-whats-on-the-menu.get-dishes outputParameters: - type: object mapping: $. - path: /dishes/{id} name: get-dishes-id operations: - method: GET name: get-dishes-id description: Get dish call: new-york-public-library-whats-on-the-menu.get-dishes-id with: id: rest.id outputParameters: - type: object mapping: $. - path: /dishes/{id}/menus name: get-dishes-id-menus operations: - method: GET name: get-dishes-id-menus description: Get menus for a dish call: new-york-public-library-whats-on-the-menu.get-dishes-id-menus with: id: rest.id outputParameters: - type: object mapping: $. - path: /dishes/search name: get-dishes-search operations: - method: GET name: get-dishes-search description: Search dishes call: new-york-public-library-whats-on-the-menu.get-dishes-search outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: new-york-public-library-whats-on-the-menu-mcp transport: http description: MCP adapter for NYPL What's On The Menu API for AI agent use. tools: - name: get-menus description: List menus hints: readOnly: true destructive: false idempotent: true call: new-york-public-library-whats-on-the-menu.get-menus with: min_year: tools.min_year max_year: tools.max_year sort_by: tools.sort_by status: tools.status inputParameters: - name: min_year type: integer description: min_year - name: max_year type: integer description: max_year - name: sort_by type: string description: sort_by - name: status type: string description: status outputParameters: - type: object mapping: $. - name: get-menus-id description: Get menu hints: readOnly: true destructive: false idempotent: true call: new-york-public-library-whats-on-the-menu.get-menus-id with: id: tools.id inputParameters: - name: id type: integer description: id required: true outputParameters: - type: object mapping: $. - name: get-menus-id-pages description: Get menu pages hints: readOnly: true destructive: false idempotent: true call: new-york-public-library-whats-on-the-menu.get-menus-id-pages with: id: tools.id inputParameters: - name: id type: integer description: id required: true outputParameters: - type: object mapping: $. - name: get-menus-id-dishes description: Get menu dishes hints: readOnly: true destructive: false idempotent: true call: new-york-public-library-whats-on-the-menu.get-menus-id-dishes with: id: tools.id inputParameters: - name: id type: integer description: id required: true outputParameters: - type: object mapping: $. - name: get-menus-search description: Search menus hints: readOnly: true destructive: false idempotent: true call: new-york-public-library-whats-on-the-menu.get-menus-search with: query: tools.query sort_by: tools.sort_by inputParameters: - name: query type: string description: query required: true - name: sort_by type: string description: sort_by outputParameters: - type: object mapping: $. - name: get-dishes description: List dishes hints: readOnly: true destructive: false idempotent: true call: new-york-public-library-whats-on-the-menu.get-dishes with: min_year: tools.min_year max_year: tools.max_year sort_by: tools.sort_by inputParameters: - name: min_year type: integer description: min_year - name: max_year type: integer description: max_year - name: sort_by type: string description: sort_by outputParameters: - type: object mapping: $. - name: get-dishes-id description: Get dish hints: readOnly: true destructive: false idempotent: true call: new-york-public-library-whats-on-the-menu.get-dishes-id with: id: tools.id inputParameters: - name: id type: integer description: id required: true outputParameters: - type: object mapping: $. - name: get-dishes-id-menus description: Get menus for a dish hints: readOnly: true destructive: false idempotent: true call: new-york-public-library-whats-on-the-menu.get-dishes-id-menus with: id: tools.id inputParameters: - name: id type: integer description: id required: true outputParameters: - type: object mapping: $. - name: get-dishes-search description: Search dishes hints: readOnly: true destructive: false idempotent: true call: new-york-public-library-whats-on-the-menu.get-dishes-search with: query: tools.query sort_by: tools.sort_by inputParameters: - name: query type: string description: query required: true - name: sort_by type: string description: sort_by outputParameters: - type: object mapping: $. binds: - namespace: env keys: NEW_YORK_PUBLIC_LIBRARY_WHATS_ON_THE_MENU_TOKEN: NEW_YORK_PUBLIC_LIBRARY_WHATS_ON_THE_MENU_TOKEN