naftiko: "1.0.0-alpha2" info: label: "Rijksmuseum Usersets API — User Generated Content" description: >- Usersets — User Generated Content. 2 operations. Lead operation: List Rijksstudio User Sets. Self-contained Naftiko capability covering one Rijksmuseum business surface. tags: - Rijksmuseum - User Generated Content - Rijksstudio created: "2026-05-29" modified: "2026-05-29" binds: - namespace: env keys: RIJKSMUSEUM_API_KEY: RIJKSMUSEUM_API_KEY capability: consumes: - type: http namespace: "user-sets-ugc" baseUri: "https://www.rijksmuseum.nl/api" description: "Rijksmuseum Usersets API — User Generated Content business capability. Self-contained, no shared references." authentication: type: apikey key: key value: "{{env.RIJKSMUSEUM_API_KEY}}" placement: query resources: - name: "usersets" path: "/{culture}/usersets" operations: - name: "listUserSets" method: GET description: "List paginated Rijksstudio user sets." inputParameters: - name: "culture" in: path type: string required: true description: "Locale: `nl` or `en`." - name: "format" in: query type: string required: false description: "Response format." - name: "page" in: query type: integer required: false description: "Result page (0-based). page * pageSize <= 10,000." - name: "pageSize" in: query type: integer required: false description: "Results per page (1-100)." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "userset" path: "/{culture}/usersets/{setId}" operations: - name: "getUserSet" method: GET description: "Return a single Rijksstudio user set with its items." inputParameters: - name: "culture" in: path type: string required: true description: "Locale: `nl` or `en`." - name: "setId" in: path type: string required: true description: "Composite set identifier `{userId}-{slug}`." - name: "format" in: query type: string required: false description: "Response format." - name: "page" in: query type: integer required: false description: "Result page (0-based) for the embedded setItems list." - name: "pageSize" in: query type: integer required: false description: "Items per page." outputRawFormat: json outputParameters: - name: result type: object value: "$." exposes: - type: rest namespace: "user-sets-ugc-rest" port: 8080 description: "REST adapter for Rijksmuseum Usersets API — User Generated Content." resources: - path: "/v1/cultures/{culture}/usersets" name: "usersets" description: "REST surface for Rijksstudio user sets." operations: - method: GET name: "listUserSets" description: "List Rijksstudio User Sets." call: "user-sets-ugc.listUserSets" with: culture: "rest.culture" format: "rest.format" page: "rest.page" pageSize: "rest.pageSize" outputParameters: - type: object mapping: "$." - path: "/v1/cultures/{culture}/usersets/{set-id}" name: "userset" description: "REST surface for a single Rijksstudio user set." operations: - method: GET name: "getUserSet" description: "Get Rijksstudio User Set Details." call: "user-sets-ugc.getUserSet" with: culture: "rest.culture" setId: "rest.set-id" format: "rest.format" page: "rest.page" pageSize: "rest.pageSize" outputParameters: - type: object mapping: "$." - type: mcp namespace: "user-sets-ugc-mcp" port: 9090 transport: http description: "MCP adapter for Rijksmuseum Usersets API — User Generated Content." tools: - name: "list-user-sets" description: "List Rijksstudio User Sets." hints: readOnly: true destructive: false idempotent: true call: "user-sets-ugc.listUserSets" with: culture: "tools.culture" format: "tools.format" page: "tools.page" pageSize: "tools.pageSize" outputParameters: - type: object mapping: "$." - name: "get-user-set" description: "Get Rijksstudio User Set Details." hints: readOnly: true destructive: false idempotent: true call: "user-sets-ugc.getUserSet" with: culture: "tools.culture" setId: "tools.setId" format: "tools.format" page: "tools.page" pageSize: "tools.pageSize" outputParameters: - type: object mapping: "$."