SWAPI - Star Wars API · Capability

SWAPI — Planets

SWAPI Planets. 2 operations (list + get). Lead operation: List All Planets. Planets featured across the Star Wars films. Self-contained Naftiko capability covering one SWAPI business surface.

Run with Naftiko SWAPIStar WarsPlanets

What You Can Do

GET
Listplanets — List All Planets
/v1/planets
GET
Getplanet — Get Planet By Id
/v1/planets/{id}

MCP Tools

list-planets

List All Planets

read-only idempotent
get-planet

Get Planet By Id

read-only idempotent

Capability Spec

swapi-planets.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: SWAPI — Planets
  description: >-
    SWAPI Planets. 2 operations (list + get). Lead operation: List All Planets.
    Planets featured across the Star Wars films.
    Self-contained Naftiko capability covering one SWAPI business surface.
  tags:
    - SWAPI
    - Star Wars
    - Planets
  created: '2026-05-29'
  modified: '2026-05-29'
binds:
  - namespace: env
    keys: {}
capability:
  consumes:
    - type: http
      namespace: swapi-planets
      baseUri: https://swapi.dev/api
      description: SWAPI — Planets business capability. Self-contained, no shared references.
      resources:
        - name: planets
          path: /planets/
          operations:
            - name: listPlanets
              method: GET
              description: List All Planets
              inputParameters:
                - name: search
                  in: query
                  type: string
                  required: false
                  description: Case-insensitive partial match against the planet name.
                - name: page
                  in: query
                  type: integer
                  required: false
                  description: One-based page number for paginated list responses.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
            - name: getPlanet
              method: GET
              description: Get Planet By Id
              inputParameters:
                - name: id
                  in: path
                  type: integer
                  required: true
                  description: Numeric SWAPI identifier for the planet.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
  exposes:
    - type: rest
      namespace: swapi-planets-rest
      port: 8080
      description: REST adapter for SWAPI — Planets. One Spectral-compliant resource per consumed operation, prefixed with /v1.
      resources:
        - path: /v1/planets
          name: planets
          description: REST surface for Planets.
          operations:
            - method: GET
              name: listPlanets
              description: List All Planets
              call: swapi-planets.listPlanets
              with:
                search: rest.search
                page: rest.page
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/planets/{id}
          name: planets-by-id
          description: REST surface for a single Planet.
          operations:
            - method: GET
              name: getPlanet
              description: Get Planet By Id
              call: swapi-planets.getPlanet
              with:
                id: rest.id
              outputParameters:
                - type: object
                  mapping: $.
    - type: mcp
      namespace: swapi-planets-mcp
      port: 9090
      transport: http
      description: MCP adapter for SWAPI — Planets. One tool per consumed operation, routed inline through this capability's consumes block.
      tools:
        - name: list-planets
          description: List All Planets
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: swapi-planets.listPlanets
          with:
            search: tools.search
            page: tools.page
          outputParameters:
            - type: object
              mapping: $.
        - name: get-planet
          description: Get Planet By Id
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: swapi-planets.getPlanet
          with:
            id: tools.id
          outputParameters:
            - type: object
              mapping: $.