naftiko: 1.0.0-alpha2 info: label: Science Museum Group Collection API — Documents description: 'Science Museum Group Collection API — Documents. 2 operations. Lead operation: Get Collection Document. Self-contained Naftiko capability covering one Science Museum Group business surface.' tags: - Science Museum Group - Documents 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-documents baseUri: https://collection.sciencemuseumgroup.org.uk description: Science Museum Group Collection API — Documents business capability. Self-contained, no shared references. resources: - name: documents-id path: /documents/{id} operations: - name: getdocument method: GET description: Get Collection Document outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Unique document identifier required: true - name: search-documents path: /search/documents operations: - name: searchdocuments method: GET description: Search Collection Documents outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: q in: query type: string description: Full-text search query term - name: makers in: query type: string description: Filter by document creator or maker - name: people in: query type: string description: Filter by associated person - name: archive in: query type: string description: Filter by archive reference - 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: images in: query type: boolean description: Filter to documents with available images - 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-documents-rest port: 8080 description: REST adapter for Science Museum Group Collection API — Documents. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/documents/{id} name: documents-id description: REST surface for documents-id. operations: - method: GET name: getdocument description: Get Collection Document call: collection-documents.getdocument with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/search/documents name: search-documents description: REST surface for search-documents. operations: - method: GET name: searchdocuments description: Search Collection Documents call: collection-documents.searchdocuments with: q: rest.q makers: rest.makers people: rest.people archive: rest.archive places: rest.places date[from]: rest.date[from] date[to]: rest.date[to] images: rest.images page[number]: rest.page[number] page[size]: rest.page[size] outputParameters: - type: object mapping: $. - type: mcp namespace: collection-documents-mcp port: 9090 transport: http description: MCP adapter for Science Museum Group Collection API — Documents. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-collection-document description: Get Collection Document hints: readOnly: true destructive: false idempotent: true call: collection-documents.getdocument with: id: tools.id outputParameters: - type: object mapping: $. - name: search-collection-documents description: Search Collection Documents hints: readOnly: true destructive: false idempotent: true call: collection-documents.searchdocuments with: q: tools.q makers: tools.makers people: tools.people archive: tools.archive places: tools.places date[from]: tools.date[from] date[to]: tools.date[to] images: tools.images page[number]: tools.page[number] page[size]: tools.page[size] outputParameters: - type: object mapping: $.