naftiko: "1.0.0-alpha2" info: label: "GIPHY API — Search Discovery" description: >- GIPHY — Search Discovery. 3 operations. Lead operation: Tag autocompletion for a partial search term. Also covers related search terms and trending search queries. Self-contained Naftiko capability covering one GIPHY business surface. tags: - GIPHY - Search - Discovery created: "2026-05-30" modified: "2026-05-30" binds: - namespace: env keys: GIPHY_API_KEY: GIPHY_API_KEY capability: consumes: - type: http namespace: "giphy-search-discovery" baseUri: "https://api.giphy.com" description: "GIPHY API — Search Discovery business capability." authentication: type: apikey key: api_key value: "{{env.GIPHY_API_KEY}}" placement: query resources: - name: "search-tags" path: "/v1/gifs/search/tags" operations: - name: "autocompleteSearchTags" method: GET description: "Return tag suggestions for a partial search term." inputParameters: - { name: q, in: query, type: string, required: true, description: "Partial search term." } - { name: limit, in: query, type: integer, required: false, description: "Results per page." } - { name: offset, in: query, type: integer, required: false, description: "Pagination offset." } outputRawFormat: json outputParameters: - { name: result, type: object, value: "$." } - name: "related-tags" path: "/v1/tags/related/{term}" operations: - name: "getRelatedSearchTerms" method: GET description: "Return related search terms for a given query." inputParameters: - { name: term, in: path, type: string, required: true, description: "Search term to look up." } outputRawFormat: json outputParameters: - { name: result, type: object, value: "$." } - name: "trending-searches" path: "/v1/trending/searches" operations: - name: "getTrendingSearches" method: GET description: "Return the most popular search terms across GIPHY." inputParameters: [] outputRawFormat: json outputParameters: - { name: result, type: object, value: "$." } exposes: - type: rest namespace: "giphy-search-discovery-rest" port: 8080 description: "REST adapter for GIPHY API — Search Discovery." resources: - path: "/v1/search-tags" name: "search-tags" description: "REST surface for tag autocomplete." operations: - method: GET name: "autocompleteSearchTags" description: "Autocomplete tags." call: "giphy-search-discovery.autocompleteSearchTags" with: { q: "rest.q", limit: "rest.limit", offset: "rest.offset" } outputParameters: - { type: object, mapping: "$." } - path: "/v1/related-tags/{term}" name: "related-tags" description: "REST surface for related tags." operations: - method: GET name: "getRelatedSearchTerms" description: "Get related search terms." call: "giphy-search-discovery.getRelatedSearchTerms" with: { term: "rest.term" } outputParameters: - { type: object, mapping: "$." } - path: "/v1/trending-searches" name: "trending-searches" description: "REST surface for trending searches." operations: - method: GET name: "getTrendingSearches" description: "Get trending searches." call: "giphy-search-discovery.getTrendingSearches" with: {} outputParameters: - { type: object, mapping: "$." } - type: mcp namespace: "giphy-search-discovery-mcp" port: 9090 transport: http description: "MCP adapter for GIPHY API — Search Discovery." tools: - name: "autocomplete-search-tags" description: "Autocomplete search tags for a partial term." hints: { readOnly: true, destructive: false, idempotent: true } call: "giphy-search-discovery.autocompleteSearchTags" with: { q: "tools.q", limit: "tools.limit", offset: "tools.offset" } outputParameters: - { type: object, mapping: "$." } - name: "get-related-search-terms" description: "Get related search terms." hints: { readOnly: true, destructive: false, idempotent: true } call: "giphy-search-discovery.getRelatedSearchTerms" with: { term: "tools.term" } outputParameters: - { type: object, mapping: "$." } - name: "get-trending-searches" description: "Get most popular search terms across GIPHY." hints: { readOnly: true, destructive: false, idempotent: true } call: "giphy-search-discovery.getTrendingSearches" with: {} outputParameters: - { type: object, mapping: "$." }