naftiko: "1.0.0-alpha2" info: label: "GIPHY API — Stickers" description: >- GIPHY — Stickers. 4 operations. Lead operation: Search GIPHY's library of transparent-background stickers. Self-contained Naftiko capability covering one GIPHY business surface. tags: - GIPHY - Media - Stickers created: "2026-05-30" modified: "2026-05-30" binds: - namespace: env keys: GIPHY_API_KEY: GIPHY_API_KEY capability: consumes: - type: http namespace: "giphy-stickers" baseUri: "https://api.giphy.com" description: "GIPHY API — Stickers business capability. Self-contained, no shared references." authentication: type: apikey key: api_key value: "{{env.GIPHY_API_KEY}}" placement: query resources: - name: "stickers-search" path: "/v1/stickers/search" operations: - name: "searchStickers" method: GET description: "Search GIPHY's library of stickers." inputParameters: - { name: q, in: query, type: string, required: true, description: "Search query." } - { name: limit, in: query, type: integer, required: false, description: "Results per page." } - { name: offset, in: query, type: integer, required: false, description: "Pagination offset." } - { name: rating, in: query, type: string, required: false, description: "Rating filter." } outputRawFormat: json outputParameters: - { name: result, type: object, value: "$." } - name: "stickers-trending" path: "/v1/stickers/trending" operations: - name: "getTrendingStickers" method: GET description: "Return trending stickers of the day." inputParameters: - { name: limit, in: query, type: integer, required: false, description: "Results per page." } - { name: rating, in: query, type: string, required: false, description: "Rating filter." } outputRawFormat: json outputParameters: - { name: result, type: object, value: "$." } - name: "stickers-translate" path: "/v1/stickers/translate" operations: - name: "translateSticker" method: GET description: "Translate a phrase into a single sticker." inputParameters: - { name: s, in: query, type: string, required: true, description: "Phrase to translate." } - { name: rating, in: query, type: string, required: false, description: "Rating filter." } outputRawFormat: json outputParameters: - { name: result, type: object, value: "$." } - name: "stickers-random" path: "/v1/stickers/random" operations: - name: "getRandomSticker" method: GET description: "Return a single random sticker." inputParameters: - { name: tag, in: query, type: string, required: false, description: "Filter by tag." } - { name: rating, in: query, type: string, required: false, description: "Rating filter." } outputRawFormat: json outputParameters: - { name: result, type: object, value: "$." } exposes: - type: rest namespace: "giphy-stickers-rest" port: 8080 description: "REST adapter for GIPHY API — Stickers." resources: - path: "/v1/stickers-search" name: "stickers-search" description: "REST surface for sticker search." operations: - method: GET name: "searchStickers" description: "Search stickers." call: "giphy-stickers.searchStickers" with: { q: "rest.q", limit: "rest.limit", offset: "rest.offset", rating: "rest.rating" } outputParameters: - { type: object, mapping: "$." } - path: "/v1/stickers-trending" name: "stickers-trending" description: "REST surface for trending stickers." operations: - method: GET name: "getTrendingStickers" description: "Get trending stickers." call: "giphy-stickers.getTrendingStickers" with: { limit: "rest.limit", rating: "rest.rating" } outputParameters: - { type: object, mapping: "$." } - path: "/v1/stickers-translate" name: "stickers-translate" description: "REST surface for sticker translate." operations: - method: GET name: "translateSticker" description: "Translate to sticker." call: "giphy-stickers.translateSticker" with: { s: "rest.s", rating: "rest.rating" } outputParameters: - { type: object, mapping: "$." } - path: "/v1/stickers-random" name: "stickers-random" description: "REST surface for a random sticker." operations: - method: GET name: "getRandomSticker" description: "Get a random sticker." call: "giphy-stickers.getRandomSticker" with: { tag: "rest.tag", rating: "rest.rating" } outputParameters: - { type: object, mapping: "$." } - type: mcp namespace: "giphy-stickers-mcp" port: 9090 transport: http description: "MCP adapter for GIPHY API — Stickers." tools: - name: "search-stickers" description: "Search GIPHY stickers." hints: { readOnly: true, destructive: false, idempotent: true } call: "giphy-stickers.searchStickers" with: { q: "tools.q", limit: "tools.limit", offset: "tools.offset", rating: "tools.rating" } outputParameters: - { type: object, mapping: "$." } - name: "get-trending-stickers" description: "Get trending stickers." hints: { readOnly: true, destructive: false, idempotent: true } call: "giphy-stickers.getTrendingStickers" with: { limit: "tools.limit", rating: "tools.rating" } outputParameters: - { type: object, mapping: "$." } - name: "translate-sticker" description: "Translate a phrase into a sticker." hints: { readOnly: true, destructive: false, idempotent: true } call: "giphy-stickers.translateSticker" with: { s: "tools.s", rating: "tools.rating" } outputParameters: - { type: object, mapping: "$." } - name: "get-random-sticker" description: "Get a random sticker." hints: { readOnly: true, destructive: false, idempotent: true } call: "giphy-stickers.getRandomSticker" with: { tag: "tools.tag", rating: "tools.rating" } outputParameters: - { type: object, mapping: "$." }