Breaking Bad · Capability

Breaking Bad API — Quotes

Quotes surface — Quotes. 3 operations. Lead operation: list every catalogued quote attributed to a character across both series. Self-contained Naftiko capability covering one Breaking Bad business surface. Note: upstream host (breakingbadapi.com) is deprecated and unreachable as of 2026-05-29; this capability is preserved for historical reference and for use against community mirrors or local re-implementations.

Run with Naftiko Breaking BadQuotesTelevision

What You Can Do

GET
Listquotes — List quotes.
/v1/quotes
GET
Getquotebyid — Get a quote by id.
/v1/quotes/{id}
GET
Getrandomquote — Get one random quote.
/v1/quotes/random

MCP Tools

list-quotes

List every catalogued quote.

read-only idempotent
get-quote

Retrieve a single quote by id.

read-only idempotent
get-random-quote

Return one randomly selected quote, optionally filtered by author.

read-only idempotent

Capability Spec

breaking-bad-quotes.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Breaking Bad API — Quotes"
  description: >-
    Quotes surface — Quotes. 3 operations. Lead operation: list every catalogued
    quote attributed to a character across both series. Self-contained Naftiko
    capability covering one Breaking Bad business surface. Note: upstream host
    (breakingbadapi.com) is deprecated and unreachable as of 2026-05-29; this
    capability is preserved for historical reference and for use against
    community mirrors or local re-implementations.
  tags:
    - Breaking Bad
    - Quotes
    - Television
  created: "2026-05-29"
  modified: "2026-05-29"

binds:
  - namespace: env
    keys:
      BREAKING_BAD_API_BASE: BREAKING_BAD_API_BASE

capability:

  consumes:
    - type: http
      namespace: "breaking-bad-quotes"
      baseUri: "https://www.breakingbadapi.com/api"
      description: "Breaking Bad API — Quotes business capability. Self-contained, no shared references."
      resources:
        - name: "quotes"
          path: "/quotes"
          operations:
            - name: "listQuotes"
              method: GET
              description: "List every catalogued quote."
              inputParameters: []
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "quote-by-id"
          path: "/quotes/{id}"
          operations:
            - name: "getQuoteById"
              method: GET
              description: "Retrieve a single quote by numeric id."
              inputParameters:
                - name: "id"
                  in: path
                  type: integer
                  required: true
                  description: "Numeric quote id."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "random-quote"
          path: "/quote/random"
          operations:
            - name: "getRandomQuote"
              method: GET
              description: "Return one randomly selected quote, optionally filtered by author."
              inputParameters:
                - name: "author"
                  in: query
                  type: string
                  required: false
                  description: "Filter random selection by author (use + for spaces)."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  exposes:
    - type: rest
      namespace: "breaking-bad-quotes-rest"
      port: 8080
      description: "REST adapter for Breaking Bad API — Quotes. One Spectral-compliant resource per consumed operation, prefixed with /v1."
      resources:
        - path: "/v1/quotes"
          name: "quotes"
          description: "REST surface for the quotes collection."
          operations:
            - method: GET
              name: "listQuotes"
              description: "List quotes."
              call: "breaking-bad-quotes.listQuotes"
              with: {}
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/quotes/{id}"
          name: "quote-by-id"
          description: "REST surface for a single quote by id."
          operations:
            - method: GET
              name: "getQuoteById"
              description: "Get a quote by id."
              call: "breaking-bad-quotes.getQuoteById"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/quotes/random"
          name: "random-quote"
          description: "REST surface for a random quote."
          operations:
            - method: GET
              name: "getRandomQuote"
              description: "Get one random quote."
              call: "breaking-bad-quotes.getRandomQuote"
              with:
                author: "rest.author"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      namespace: "breaking-bad-quotes-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for Breaking Bad API — Quotes."
      tools:
        - name: "list-quotes"
          description: "List every catalogued quote."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "breaking-bad-quotes.listQuotes"
          with: {}
          outputParameters:
            - type: object
              mapping: "$."
        - name: "get-quote"
          description: "Retrieve a single quote by id."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "breaking-bad-quotes.getQuoteById"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "get-random-quote"
          description: "Return one randomly selected quote, optionally filtered by author."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "breaking-bad-quotes.getRandomQuote"
          with:
            author: "tools.author"
          outputParameters:
            - type: object
              mapping: "$."