Ron Swanson Quotes · Capability

Ron Swanson Quotes API — Quotes

Quotes — read-only retrieval of Ron Swanson quotes from the Parks and Recreation corpus. 3 operations. Lead operation: return a single random quote. Self-contained Naftiko capability covering the Ron Swanson Quotes public surface (no authentication, CORS-enabled, JSON arrays of strings).

Run with Naftiko Ron Swanson QuotesEntertainmentQuotes

What You Can Do

GET
Getrandomquote — Return a single random Ron Swanson quote.
/v1/quotes
GET
Getrandomquotes — Return N random Ron Swanson quotes.
/v1/quotes/{count}
GET
Searchquotes — Return every quote that matches the given term.
/v1/quotes/search/{term}

MCP Tools

get-random-quote

Return a single random Ron Swanson quote.

read-only idempotent
get-random-quotes

Return N random Ron Swanson quotes.

read-only idempotent
search-quotes

Return every quote that matches the given term (case-insensitive).

read-only idempotent

Capability Spec

ron-swanson-quotes-quotes.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Ron Swanson Quotes API — Quotes"
  description: >-
    Quotes — read-only retrieval of Ron Swanson quotes from the Parks and
    Recreation corpus. 3 operations. Lead operation: return a single random
    quote. Self-contained Naftiko capability covering the Ron Swanson Quotes
    public surface (no authentication, CORS-enabled, JSON arrays of strings).
  tags:
    - Ron Swanson Quotes
    - Entertainment
    - Quotes
  created: "2026-05-30"
  modified: "2026-05-30"

binds:
  - namespace: env
    keys: {}

capability:

  # ── 1. Consumes — the upstream HTTP API this capability speaks to ─────
  consumes:
    - type: http
      namespace: "ron-swanson-quotes-quotes"
      baseUri: "https://ron-swanson-quotes.herokuapp.com/v2"
      description: >-
        Ron Swanson Quotes API — Quotes business capability. Self-contained,
        no shared references. No authentication required.
      resources:
        - name: "quotes"
          path: "/quotes"
          operations:
            - name: "getRandomQuote"
              method: GET
              description: "Return a single random Ron Swanson quote wrapped in a one-element JSON array."
              inputParameters: []
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
            - name: "getRandomQuotes"
              method: GET
              description: "Return N random Ron Swanson quotes via /quotes/{count}."
              inputParameters:
                - name: "count"
                  in: path
                  type: integer
                  required: true
                  description: "Number of random quotes to return."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
            - name: "searchQuotes"
              method: GET
              description: "Return every Ron Swanson quote whose text contains the given term (case-insensitive)."
              inputParameters:
                - name: "term"
                  in: path
                  type: string
                  required: true
                  description: "URL-encoded search term matched case-insensitively across the quote corpus."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  # ── 2. REST exposer — required default. One Spectral-compliant resource per consumed op ──
  exposes:
    - type: rest
      namespace: "ron-swanson-quotes-quotes-rest"
      port: 8080
      description: "REST adapter for Ron Swanson Quotes API — Quotes. One Spectral-compliant resource per consumed operation, prefixed with /v1."
      resources:
        - path: "/v1/quotes"
          name: "quotes"
          description: "REST surface for the random-quote endpoint."
          operations:
            - method: GET
              name: "getRandomQuote"
              description: "Return a single random Ron Swanson quote."
              call: "ron-swanson-quotes-quotes.getRandomQuote"
              with: {}
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/quotes/{count}"
          name: "quotes-count"
          description: "REST surface for the batch random-quotes endpoint."
          operations:
            - method: GET
              name: "getRandomQuotes"
              description: "Return N random Ron Swanson quotes."
              call: "ron-swanson-quotes-quotes.getRandomQuotes"
              with:
                "count": "rest.count"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/quotes/search/{term}"
          name: "quotes-search"
          description: "REST surface for the case-insensitive quote search endpoint."
          operations:
            - method: GET
              name: "searchQuotes"
              description: "Return every quote that matches the given term."
              call: "ron-swanson-quotes-quotes.searchQuotes"
              with:
                "term": "rest.term"
              outputParameters:
                - type: object
                  mapping: "$."

    # ── 3. MCP exposer — required default. One verb-noun tool per consumed op ──
    - type: mcp
      namespace: "ron-swanson-quotes-quotes-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for Ron Swanson Quotes API — Quotes. One tool per consumed operation, routed inline through this capability's consumes block."
      tools:
        - name: "get-random-quote"
          description: "Return a single random Ron Swanson quote."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "ron-swanson-quotes-quotes.getRandomQuote"
          with: {}
          outputParameters:
            - type: object
              mapping: "$."
        - name: "get-random-quotes"
          description: "Return N random Ron Swanson quotes."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "ron-swanson-quotes-quotes.getRandomQuotes"
          with:
            "count": "tools.count"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "search-quotes"
          description: "Return every quote that matches the given term (case-insensitive)."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "ron-swanson-quotes-quotes.searchQuotes"
          with:
            "term": "tools.term"
          outputParameters:
            - type: object
              mapping: "$."