naftiko: "1.0.0-alpha2"
info:
label: "GIPHY API — Clips"
description: >-
GIPHY — Clips. 2 operations. Lead operation: Search the GIPHY Clips library
of GIFs with sound. Access to Clips endpoints is gated; contact [email protected].
Self-contained Naftiko capability covering one GIPHY business surface.
tags:
- GIPHY
- Media
- Clips
created: "2026-05-30"
modified: "2026-05-30"
binds:
- namespace: env
keys:
GIPHY_API_KEY: GIPHY_API_KEY
capability:
consumes:
- type: http
namespace: "giphy-clips"
baseUri: "https://api.giphy.com"
description: "GIPHY API — Clips business capability."
authentication:
type: apikey
key: api_key
value: "{{env.GIPHY_API_KEY}}"
placement: query
resources:
- name: "clips-search"
path: "/v1/clips/search"
operations:
- name: "searchClips"
method: GET
description: "Search the GIPHY Clips library (GIFs with sound)."
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." }
- { name: country_code, in: query, type: string, required: false, description: "ISO 3166-1 alpha-2 code." }
outputRawFormat: json
outputParameters:
- { name: result, type: object, value: "$." }
- name: "clips-trending"
path: "/v1/clips/trending"
operations:
- name: "getTrendingClips"
method: GET
description: "Return trending clips of the day."
inputParameters:
- { 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: "$." }
exposes:
- type: rest
namespace: "giphy-clips-rest"
port: 8080
description: "REST adapter for GIPHY API — Clips."
resources:
- path: "/v1/clips-search"
name: "clips-search"
description: "REST surface for Clips search."
operations:
- method: GET
name: "searchClips"
description: "Search Clips."
call: "giphy-clips.searchClips"
with: { q: "rest.q", limit: "rest.limit", offset: "rest.offset", rating: "rest.rating", country_code: "rest.country_code" }
outputParameters:
- { type: object, mapping: "$." }
- path: "/v1/clips-trending"
name: "clips-trending"
description: "REST surface for trending Clips."
operations:
- method: GET
name: "getTrendingClips"
description: "Get trending Clips."
call: "giphy-clips.getTrendingClips"
with: { limit: "rest.limit", offset: "rest.offset", rating: "rest.rating" }
outputParameters:
- { type: object, mapping: "$." }
- type: mcp
namespace: "giphy-clips-mcp"
port: 9090
transport: http
description: "MCP adapter for GIPHY API — Clips."
tools:
- name: "search-clips"
description: "Search GIPHY Clips library."
hints: { readOnly: true, destructive: false, idempotent: true }
call: "giphy-clips.searchClips"
with: { q: "tools.q", limit: "tools.limit", offset: "tools.offset", rating: "tools.rating", country_code: "tools.country_code" }
outputParameters:
- { type: object, mapping: "$." }
- name: "get-trending-clips"
description: "Get trending GIPHY Clips."
hints: { readOnly: true, destructive: false, idempotent: true }
call: "giphy-clips.getTrendingClips"
with: { limit: "tools.limit", offset: "tools.offset", rating: "tools.rating" }
outputParameters:
- { type: object, mapping: "$." }