Science Museum Group · Capability

Science Museum Group Collection API — People

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

Run with Naftiko Science Museum GroupPeople

What You Can Do

GET
Getperson — Get Collection Person
/v1/people/{id}
GET
Searchpeople — Search Collection People
/v1/search/people

MCP Tools

get-collection-person

Get Collection Person

read-only idempotent
search-collection-people

Search Collection People

read-only idempotent

Capability Spec

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