Giphy · Capability

GIPHY API — Stickers

GIPHY — Stickers. 4 operations. Lead operation: Search GIPHY's library of transparent-background stickers. Self-contained Naftiko capability covering one GIPHY business surface.

Run with Naftiko GIPHYMediaStickers

What You Can Do

GET
Searchstickers — Search stickers.
/v1/stickers-search
GET
Gettrendingstickers — Get trending stickers.
/v1/stickers-trending
GET
Translatesticker — Translate to sticker.
/v1/stickers-translate
GET
Getrandomsticker — Get a random sticker.
/v1/stickers-random

MCP Tools

search-stickers

Search GIPHY stickers.

read-only idempotent
get-trending-stickers

Get trending stickers.

read-only idempotent
translate-sticker

Translate a phrase into a sticker.

read-only idempotent
get-random-sticker

Get a random sticker.

read-only idempotent

Capability Spec

giphy-stickers.yaml Raw ↑
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: "$." }