TVmaze · Capability

TVmaze Public API — Shows

TVmaze Public API — Shows. 11 operations. Lead operation: List Shows. Self-contained Naftiko capability covering one TVmaze business surface.

Run with Naftiko TVmazePublic APIShows

What You Can Do

GET
Listshows — List Shows
/v1/shows
GET
Getshow — Get Show
/v1/shows/{id}
GET
Getshowepisodes — Get Show Episodes
/v1/shows/{id}/episodes
GET
Getshowepisodebynumber — Get Show Episode By Number
/v1/shows/{id}/episodebynumber
GET
Getshowepisodesbydate — Get Show Episodes By Date
/v1/shows/{id}/episodesbydate
GET
Getshowseasons — Get Show Seasons
/v1/shows/{id}/seasons
GET
Getshowcast — Get Show Cast
/v1/shows/{id}/cast
GET
Getshowcrew — Get Show Crew
/v1/shows/{id}/crew
GET
Getshowakas — Get Show Akas
/v1/shows/{id}/akas
GET
Getshowimages — Get Show Images
/v1/shows/{id}/images
GET
Getshowalternatelists — Get Show Alternate Lists
/v1/shows/{id}/alternatelists

MCP Tools

list-shows

List Shows

read-only idempotent
get-show

Get Show

read-only idempotent
get-show-episodes

Get Show Episodes

read-only idempotent
get-show-episode-number

Get Show Episode By Number

read-only idempotent
get-show-episodes-date

Get Show Episodes By Date

read-only idempotent
get-show-seasons

Get Show Seasons

read-only idempotent
get-show-cast

Get Show Cast

read-only idempotent
get-show-crew

Get Show Crew

read-only idempotent
get-show-akas

Get Show Akas

read-only idempotent
get-show-images

Get Show Images

read-only idempotent
get-show-alternate-lists

Get Show Alternate Lists

read-only idempotent

Capability Spec

public-shows.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: "TVmaze Public API \u2014 Shows"
  description: "TVmaze Public API \u2014 Shows. 11 operations. Lead operation: List Shows. Self-contained Naftiko capability\
    \ covering one TVmaze business surface."
  tags:
  - TVmaze
  - Public API
  - Shows
  created: '2026-05-30'
  modified: '2026-05-30'
binds: []
capability:
  consumes:
  - type: http
    namespace: public-shows
    baseUri: https://api.tvmaze.com
    description: "TVmaze Public API \u2014 Shows business capability. Self-contained, no shared references."
    resources:
    - name: shows
      path: /shows
      operations:
      - name: listShows
        method: GET
        description: List Shows
        inputParameters:
        - name: page
          in: query
          type: integer
          required: false
          description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: shows-id
      path: /shows/{id}
      operations:
      - name: getShow
        method: GET
        description: Get Show
        inputParameters:
        - name: null
          in: null
          type: string
          required: false
          description: ''
        - name: embed
          in: query
          type: array
          required: false
          description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: shows-id-episodes
      path: /shows/{id}/episodes
      operations:
      - name: getShowEpisodes
        method: GET
        description: Get Show Episodes
        inputParameters:
        - name: null
          in: null
          type: string
          required: false
          description: ''
        - name: specials
          in: query
          type: integer
          required: false
          description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: shows-id-episodebynumber
      path: /shows/{id}/episodebynumber
      operations:
      - name: getShowEpisodeByNumber
        method: GET
        description: Get Show Episode By Number
        inputParameters:
        - name: null
          in: null
          type: string
          required: false
          description: ''
        - name: season
          in: query
          type: integer
          required: true
          description: ''
        - name: number
          in: query
          type: integer
          required: true
          description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: shows-id-episodesbydate
      path: /shows/{id}/episodesbydate
      operations:
      - name: getShowEpisodesByDate
        method: GET
        description: Get Show Episodes By Date
        inputParameters:
        - name: null
          in: null
          type: string
          required: false
          description: ''
        - name: date
          in: query
          type: string
          required: true
          description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: shows-id-seasons
      path: /shows/{id}/seasons
      operations:
      - name: getShowSeasons
        method: GET
        description: Get Show Seasons
        inputParameters:
        - name: null
          in: null
          type: string
          required: false
          description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: shows-id-cast
      path: /shows/{id}/cast
      operations:
      - name: getShowCast
        method: GET
        description: Get Show Cast
        inputParameters:
        - name: null
          in: null
          type: string
          required: false
          description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: shows-id-crew
      path: /shows/{id}/crew
      operations:
      - name: getShowCrew
        method: GET
        description: Get Show Crew
        inputParameters:
        - name: null
          in: null
          type: string
          required: false
          description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: shows-id-akas
      path: /shows/{id}/akas
      operations:
      - name: getShowAkas
        method: GET
        description: Get Show Akas
        inputParameters:
        - name: null
          in: null
          type: string
          required: false
          description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: shows-id-images
      path: /shows/{id}/images
      operations:
      - name: getShowImages
        method: GET
        description: Get Show Images
        inputParameters:
        - name: null
          in: null
          type: string
          required: false
          description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: shows-id-alternatelists
      path: /shows/{id}/alternatelists
      operations:
      - name: getShowAlternateLists
        method: GET
        description: Get Show Alternate Lists
        inputParameters:
        - name: null
          in: null
          type: string
          required: false
          description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    namespace: public-shows-rest
    port: 8080
    description: "REST adapter for TVmaze Public API \u2014 Shows. One Spectral-compliant resource per consumed operation,\
      \ prefixed with /v1."
    resources:
    - path: /v1/shows
      name: shows
      description: REST surface for /shows.
      operations:
      - method: GET
        name: listShows
        description: List Shows
        call: public-shows.listShows
        with:
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/shows/{id}
      name: shows-id
      description: REST surface for /shows/{id}.
      operations:
      - method: GET
        name: getShow
        description: Get Show
        call: public-shows.getShow
        with:
          null: rest.None
          embed: rest.embed
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/shows/{id}/episodes
      name: shows-id-episodes
      description: REST surface for /shows/{id}/episodes.
      operations:
      - method: GET
        name: getShowEpisodes
        description: Get Show Episodes
        call: public-shows.getShowEpisodes
        with:
          null: rest.None
          specials: rest.specials
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/shows/{id}/episodebynumber
      name: shows-id-episodebynumber
      description: REST surface for /shows/{id}/episodebynumber.
      operations:
      - method: GET
        name: getShowEpisodeByNumber
        description: Get Show Episode By Number
        call: public-shows.getShowEpisodeByNumber
        with:
          null: rest.None
          season: rest.season
          number: rest.number
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/shows/{id}/episodesbydate
      name: shows-id-episodesbydate
      description: REST surface for /shows/{id}/episodesbydate.
      operations:
      - method: GET
        name: getShowEpisodesByDate
        description: Get Show Episodes By Date
        call: public-shows.getShowEpisodesByDate
        with:
          null: rest.None
          date: rest.date
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/shows/{id}/seasons
      name: shows-id-seasons
      description: REST surface for /shows/{id}/seasons.
      operations:
      - method: GET
        name: getShowSeasons
        description: Get Show Seasons
        call: public-shows.getShowSeasons
        with:
          null: rest.None
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/shows/{id}/cast
      name: shows-id-cast
      description: REST surface for /shows/{id}/cast.
      operations:
      - method: GET
        name: getShowCast
        description: Get Show Cast
        call: public-shows.getShowCast
        with:
          null: rest.None
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/shows/{id}/crew
      name: shows-id-crew
      description: REST surface for /shows/{id}/crew.
      operations:
      - method: GET
        name: getShowCrew
        description: Get Show Crew
        call: public-shows.getShowCrew
        with:
          null: rest.None
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/shows/{id}/akas
      name: shows-id-akas
      description: REST surface for /shows/{id}/akas.
      operations:
      - method: GET
        name: getShowAkas
        description: Get Show Akas
        call: public-shows.getShowAkas
        with:
          null: rest.None
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/shows/{id}/images
      name: shows-id-images
      description: REST surface for /shows/{id}/images.
      operations:
      - method: GET
        name: getShowImages
        description: Get Show Images
        call: public-shows.getShowImages
        with:
          null: rest.None
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/shows/{id}/alternatelists
      name: shows-id-alternatelists
      description: REST surface for /shows/{id}/alternatelists.
      operations:
      - method: GET
        name: getShowAlternateLists
        description: Get Show Alternate Lists
        call: public-shows.getShowAlternateLists
        with:
          null: rest.None
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: public-shows-mcp
    port: 9090
    transport: http
    description: "MCP adapter for TVmaze Public API \u2014 Shows. One tool per consumed operation, routed inline through this\
      \ capability's consumes block."
    tools:
    - name: list-shows
      description: List Shows
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: public-shows.listShows
      with:
        page: tools.page
      outputParameters:
      - type: object
        mapping: $.
    - name: get-show
      description: Get Show
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: public-shows.getShow
      with:
        null: tools.None
        embed: tools.embed
      outputParameters:
      - type: object
        mapping: $.
    - name: get-show-episodes
      description: Get Show Episodes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: public-shows.getShowEpisodes
      with:
        null: tools.None
        specials: tools.specials
      outputParameters:
      - type: object
        mapping: $.
    - name: get-show-episode-number
      description: Get Show Episode By Number
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: public-shows.getShowEpisodeByNumber
      with:
        null: tools.None
        season: tools.season
        number: tools.number
      outputParameters:
      - type: object
        mapping: $.
    - name: get-show-episodes-date
      description: Get Show Episodes By Date
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: public-shows.getShowEpisodesByDate
      with:
        null: tools.None
        date: tools.date
      outputParameters:
      - type: object
        mapping: $.
    - name: get-show-seasons
      description: Get Show Seasons
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: public-shows.getShowSeasons
      with:
        null: tools.None
      outputParameters:
      - type: object
        mapping: $.
    - name: get-show-cast
      description: Get Show Cast
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: public-shows.getShowCast
      with:
        null: tools.None
      outputParameters:
      - type: object
        mapping: $.
    - name: get-show-crew
      description: Get Show Crew
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: public-shows.getShowCrew
      with:
        null: tools.None
      outputParameters:
      - type: object
        mapping: $.
    - name: get-show-akas
      description: Get Show Akas
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: public-shows.getShowAkas
      with:
        null: tools.None
      outputParameters:
      - type: object
        mapping: $.
    - name: get-show-images
      description: Get Show Images
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: public-shows.getShowImages
      with:
        null: tools.None
      outputParameters:
      - type: object
        mapping: $.
    - name: get-show-alternate-lists
      description: Get Show Alternate Lists
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: public-shows.getShowAlternateLists
      with:
        null: tools.None
      outputParameters:
      - type: object
        mapping: $.