Disney API · Capability

Disney API — Characters

Characters — Disney API. 4 operations. Lead operation: List Characters. Self-contained Naftiko capability covering the entire Disney API character business surface (list, get-by-id, plural alias, and the service index).

Run with Naftiko Disney APICharactersEntertainmentOpen Source

What You Can Do

GET
Getserviceindex — Returns the Disney API service index.
/v1/service-index
GET
Listcharacters — Returns a paginated list of Disney characters.
/v1/characters
GET
Getcharacterbyid — Retrieves a single Disney character by numeric id.
/v1/characters/{id}
GET
Getcharactersbyid — Plural-path alias for retrieving a Disney character by id.
/v1/characters/{id}/alias

MCP Tools

get-service-index

Returns the Disney API service index map of endpoint URL templates.

read-only idempotent
list-characters

Lists Disney characters with paging and field-level substring filters.

read-only idempotent
get-character-by-id

Retrieves a single Disney character by numeric id.

read-only idempotent
get-characters-by-id

Plural-path alias for retrieving a Disney character by id.

read-only idempotent

Capability Spec

disney-characters.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Disney API — Characters"
  description: >-
    Characters — Disney API. 4 operations. Lead operation: List Characters.
    Self-contained Naftiko capability covering the entire Disney API
    character business surface (list, get-by-id, plural alias, and the
    service index).
  tags:
    - Disney API
    - Characters
    - Entertainment
    - Open Source
  created: "2026-05-29"
  modified: "2026-05-29"

binds:
  - namespace: env
    keys: {}

capability:

  # 1. Consumes — the upstream HTTP API this capability speaks to
  consumes:
    - type: http
      namespace: "disney-characters"
      baseUri: "https://api.disneyapi.dev"
      description: "Disney API — Characters business capability. Public unauthenticated REST API exposing 9,820+ Disney characters."
      resources:
        - name: "root"
          path: "/"
          operations:
            - name: "getServiceIndex"
              method: GET
              description: "Returns a map of available REST endpoint URL templates."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "character"
          path: "/character"
          operations:
            - name: "listCharacters"
              method: GET
              description: "Returns a paginated list of Disney characters. Supports page, pageSize, and field-level substring filters."
              inputParameters:
                - name: page
                  type: integer
                  required: false
                  in: query
                - name: pageSize
                  type: integer
                  required: false
                  in: query
                - name: name
                  type: string
                  required: false
                  in: query
                - name: films
                  type: string
                  required: false
                  in: query
                - name: shortFilms
                  type: string
                  required: false
                  in: query
                - name: tvShows
                  type: string
                  required: false
                  in: query
                - name: videoGames
                  type: string
                  required: false
                  in: query
                - name: parkAttractions
                  type: string
                  required: false
                  in: query
                - name: allies
                  type: string
                  required: false
                  in: query
                - name: enemies
                  type: string
                  required: false
                  in: query
                - name: alignment
                  type: string
                  required: false
                  in: query
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "characterById"
          path: "/character/{id}"
          operations:
            - name: "getCharacterById"
              method: GET
              description: "Retrieves a single Disney character by numeric id."
              inputParameters:
                - name: id
                  type: integer
                  required: true
                  in: path
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "charactersById"
          path: "/characters/{id}"
          operations:
            - name: "getCharactersById"
              method: GET
              description: "Plural-path alias for /character/{id}."
              inputParameters:
                - name: id
                  type: integer
                  required: true
                  in: path
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  # 2. REST exposer — Spectral-compliant /v1 surface, one resource per consumed op
  exposes:
    - type: rest
      namespace: "disney-characters-rest"
      port: 8080
      description: "REST adapter for Disney API — Characters. Spectral-compliant /v1 surface."
      resources:
        - path: "/v1/service-index"
          name: "service-index"
          description: "REST surface for the upstream service index map."
          operations:
            - method: GET
              name: "getServiceIndex"
              description: "Returns the Disney API service index."
              call: "disney-characters.getServiceIndex"
              with: {}
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/characters"
          name: "characters"
          description: "REST surface for listing Disney characters with paging and field filters."
          operations:
            - method: GET
              name: "listCharacters"
              description: "Returns a paginated list of Disney characters."
              call: "disney-characters.listCharacters"
              with:
                page: "$query.page"
                pageSize: "$query.pageSize"
                name: "$query.name"
                films: "$query.films"
                shortFilms: "$query.shortFilms"
                tvShows: "$query.tvShows"
                videoGames: "$query.videoGames"
                parkAttractions: "$query.parkAttractions"
                allies: "$query.allies"
                enemies: "$query.enemies"
                alignment: "$query.alignment"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/characters/{id}"
          name: "character-by-id"
          description: "REST surface for retrieving a single Disney character by id."
          operations:
            - method: GET
              name: "getCharacterById"
              description: "Retrieves a single Disney character by numeric id."
              call: "disney-characters.getCharacterById"
              with:
                id: "$path.id"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/characters/{id}/alias"
          name: "character-by-id-alias"
          description: "REST surface exposing the plural-path alias for retrieving a Disney character by id."
          operations:
            - method: GET
              name: "getCharactersById"
              description: "Plural-path alias for retrieving a Disney character by id."
              call: "disney-characters.getCharactersById"
              with:
                id: "$path.id"
              outputParameters:
                - type: object
                  mapping: "$."

  # 3. MCP exposer — one verb-noun tool per consumed op
    - type: mcp
      namespace: "disney-characters-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for Disney API — Characters. One tool per consumed operation."
      tools:
        - name: "get-service-index"
          description: "Returns the Disney API service index map of endpoint URL templates."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "disney-characters.getServiceIndex"
          with: {}
          outputParameters:
            - type: object
              mapping: "$."
        - name: "list-characters"
          description: "Lists Disney characters with paging and field-level substring filters."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "disney-characters.listCharacters"
          with:
            page: "$input.page"
            pageSize: "$input.pageSize"
            name: "$input.name"
            films: "$input.films"
            shortFilms: "$input.shortFilms"
            tvShows: "$input.tvShows"
            videoGames: "$input.videoGames"
            parkAttractions: "$input.parkAttractions"
            allies: "$input.allies"
            enemies: "$input.enemies"
            alignment: "$input.alignment"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "get-character-by-id"
          description: "Retrieves a single Disney character by numeric id."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "disney-characters.getCharacterById"
          with:
            id: "$input.id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "get-characters-by-id"
          description: "Plural-path alias for retrieving a Disney character by id."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "disney-characters.getCharactersById"
          with:
            id: "$input.id"
          outputParameters:
            - type: object
              mapping: "$."