Science Museum Group · Capability

Science Museum Group Collection API — Objects

Science Museum Group Collection API — Objects. 2 operations. Lead operation: Get Collection Object. Self-contained Naftiko capability covering one Science Museum Group business surface.

Run with Naftiko Science Museum GroupObjects

What You Can Do

GET
Getobject — Get Collection Object
/v1/objects/{id}
GET
Searchobjects — Search Collection Objects
/v1/search/objects

MCP Tools

get-collection-object

Get Collection Object

read-only idempotent
search-collection-objects

Search Collection Objects

read-only idempotent

Capability Spec

collection-objects.yaml Raw ↑
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: $.