naftiko: "1.0.0-alpha2" info: label: "Cat Facts API — Breeds" description: >- Cat Facts — Breeds. 1 operation. Lead operation: Get a List of Breeds. Self-contained Naftiko capability covering one Cat Facts business surface: a paginated catalog of cat breeds with country, origin, coat, and pattern. No authentication. tags: - Cat Facts - Animals - Breeds - Catalog created: "2026-05-30" modified: "2026-05-30" binds: [] capability: # ── 1. Consumes — the upstream HTTP API this capability speaks to ───── consumes: - type: http namespace: "cat-facts-catfact-breeds" baseUri: "https://catfact.ninja" description: "Cat Facts API — Breeds business capability. Self-contained, no shared references." resources: - name: "breeds" path: "/breeds" operations: - name: "getBreeds" method: GET description: "Returns a paginated list of cat breeds." inputParameters: - name: "limit" in: query type: integer required: false description: "Number of breeds to return per page." outputRawFormat: json outputParameters: - name: result type: object value: "$." # ── 2. REST exposer — required default. One Spectral-compliant resource per consumed op ── exposes: - type: rest namespace: "cat-facts-catfact-breeds-rest" port: 8080 description: "REST adapter for Cat Facts API — Breeds. One Spectral-compliant resource per consumed operation, prefixed with /v1." resources: - path: "/v1/breeds" name: "breeds" description: "REST surface for the paginated breeds catalog endpoint." operations: - method: GET name: "getBreeds" description: "Returns a paginated list of cat breeds." call: "cat-facts-catfact-breeds.getBreeds" with: "limit": "rest.limit" outputParameters: - type: object mapping: "$." # ── 3. MCP exposer — required default. One verb-noun tool per consumed op ── - type: mcp namespace: "cat-facts-catfact-breeds-mcp" port: 9090 transport: http description: "MCP adapter for Cat Facts API — Breeds. One tool per consumed operation, routed inline through this capability's consumes block." tools: - name: "list-breeds" description: "Returns a paginated list of cat breeds." hints: readOnly: true destructive: false idempotent: true call: "cat-facts-catfact-breeds.getBreeds" with: "limit": "tools.limit" outputParameters: - type: object mapping: "$."