naftiko: 1.0.0-alpha2 info: label: Science Museum Group Collection API — Objects description: 'Science Museum Group Collection API — Objects. 2 operations. Lead operation: Get Collection Object. Self-contained Naftiko capability covering one Science Museum Group business surface.' tags: - Science Museum Group - Objects created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SCIENCE_MUSEUM_GROUP_API_KEY: SCIENCE_MUSEUM_GROUP_API_KEY capability: consumes: - type: http namespace: collection-objects baseUri: https://collection.sciencemuseumgroup.org.uk description: Science Museum Group Collection API — Objects business capability. Self-contained, no shared references. resources: - name: objects-id path: /objects/{id} operations: - name: getobject method: GET description: Get Collection Object outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Unique collection object identifier (e.g., co26704) required: true - name: search-objects path: /search/objects operations: - name: searchobjects method: GET description: Search Collection Objects outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: q in: query type: string description: Full-text search query term - name: type in: query type: string description: Filter by object type - name: makers in: query type: string description: Filter by maker or manufacturer name - name: people in: query type: string description: Filter by associated person - name: categories in: query type: string description: Filter by collection category - name: museum in: query type: string description: Filter by museum code (NRM, SMG, NMeM, MSI) - name: on_display in: query type: boolean description: Filter to objects currently on display - name: location in: query type: string description: Filter by gallery or storage location - name: images in: query type: boolean description: Filter to objects with available images - name: places in: query type: string description: Filter by geographical association - name: date[from] in: query type: string description: Filter from date - name: date[to] in: query type: string description: Filter to date - name: page[number] in: query type: integer description: Zero-indexed page number - name: page[size] in: query type: integer description: Results per page (max 100) exposes: - type: rest namespace: collection-objects-rest port: 8080 description: REST adapter for Science Museum Group Collection API — Objects. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/objects/{id} name: objects-id description: REST surface for objects-id. operations: - method: GET name: getobject description: Get Collection Object call: collection-objects.getobject with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/search/objects name: search-objects description: REST surface for search-objects. operations: - method: GET name: searchobjects description: Search Collection Objects call: collection-objects.searchobjects with: q: rest.q type: rest.type makers: rest.makers people: rest.people categories: rest.categories museum: rest.museum on_display: rest.on_display location: rest.location images: rest.images places: rest.places date[from]: rest.date[from] date[to]: rest.date[to] page[number]: rest.page[number] page[size]: rest.page[size] outputParameters: - type: object mapping: $. - type: mcp namespace: collection-objects-mcp port: 9090 transport: http description: MCP adapter for Science Museum Group Collection API — Objects. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-collection-object description: Get Collection Object hints: readOnly: true destructive: false idempotent: true call: collection-objects.getobject with: id: tools.id outputParameters: - type: object mapping: $. - name: search-collection-objects description: Search Collection Objects hints: readOnly: true destructive: false idempotent: true call: collection-objects.searchobjects with: q: tools.q type: tools.type makers: tools.makers people: tools.people categories: tools.categories museum: tools.museum on_display: tools.on_display location: tools.location images: tools.images places: tools.places date[from]: tools.date[from] date[to]: tools.date[to] page[number]: tools.page[number] page[size]: tools.page[size] outputParameters: - type: object mapping: $.