Skip to main content
Glama
npow
by npow

giphy-mcp-server

MCP server for the Giphy API — search, trending, and random GIFs as tools for AI coding agents.

Tools

Tool

Description

search_gifs

Search for GIFs by query string

get_trending_gifs

Get currently trending GIFs

get_random_gif

Get a random GIF, optionally filtered by tag

get_gif_by_id

Get a specific GIF by its Giphy ID

translate

Translate a word or phrase to the perfect GIF

Related MCP server: Giphy MCP Server

Setup

  1. Get a free API key at developers.giphy.com

  2. Set the GIPHY_API_KEY environment variable

Usage

With Claude Code

{
  "mcpServers": {
    "giphy": {
      "command": "uvx",
      "args": ["giphy-mcp-server"],
      "env": {
        "GIPHY_API_KEY": "your-api-key-here"
      }
    }
  }
}

With pip

pip install giphy-mcp-server
giphy-mcp-server

From source

git clone https://github.com/npow/giphy-mcp-server.git
cd giphy-mcp-server
pip install -e .
giphy-mcp-server

Development

pip install -e ".[test]"
pytest

License

MIT

Available Tools

5 tools
get_gif_by_idA

Get a specific GIF by its Giphy ID.

Args: gif_id: The Giphy GIF ID (e.g. "xT9IgzoKnwFNmISR8I").

ParametersJSON Schema
NameRequiredDescriptionDefault
gif_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states the basic action without disclosing behavioral traits like rate limits, authentication, error handling, or what happens if the ID is invalid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two clear sentences, no redundant information, and the purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description is mostly complete. However, it could mention potential error responses.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description adds significant value by explaining the gif_id parameter with a concrete example, clarifying what a valid ID looks like.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Get' and the resource 'a specific GIF by its Giphy ID', making it easy to distinguish from siblings like get_random_gif or search_gifs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates usage when you have a specific GIF ID, but does not explicitly state when not to use it or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_random_gifA

Get a random GIF from Giphy, optionally filtered by tag.

Args: tag: Tag to limit random results (e.g. "cats", "happy"). Optional. rating: Content rating filter: "g", "pg", "pg-13", or "r" (default "g").

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
ratingNog

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses basic filtering but fails to mention rate limits, API dependencies, error handling, or behavior when no matching GIF exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Efficient two-line description with structured Args section. No wasted words, but more could be packed into a single sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Has output schema so return details aren't needed. Covers basic functionality and parameters, but lacks guidance on failure modes, pagination, or integration context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description compensates by explaining tag examples and rating options. However, it could add more constraints like accepted rating values beyond default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get a random GIF from Giphy' with specific verb and resource. It distinguishes from siblings like get_gif_by_id (specific ID) and search_gifs (search) by emphasizing randomness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage for random GIFs with optional tag/rating filters, but no explicit when-to-use or when-not-to-use compared to siblings like get_trending_gifs or translate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_gifsA

Search for GIFs on Giphy.

Args: query: Search query term or phrase (e.g. "funny cats", "thumbs up"). limit: Max number of results to return (default 10, max 50). offset: Results offset for pagination (default 0). rating: Content rating filter: "g", "pg", "pg-13", or "r" (default "g"). lang: Language code (default "en").

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
limitNo
offsetNo
ratingNog
langNoen

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses search behavior and parameter constraints but does not mention side effects (none expected), authentication requirements, or pagination details beyond offset. It is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear 'Args' list format, front-loaded with purpose. Every sentence provides value without redundancy, and the structure is easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return value description is unnecessary. The description covers all 5 parameters exhaustively. It lacks guidance on error handling or result format, but given the simple search nature and output schema, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the schema, which has 0% coverage. It explains each parameter: query as a search term, limit with max 50, offset for pagination, rating filter with allowed values, and language code. This fully compensates for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search for GIFs on Giphy' with a specific verb and resource, and the tool name 'search_gifs' aligns perfectly. The sibling tools (get_gif_by_id, get_random_gif, get_trending_gifs, translate) are distinct, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description details parameters with defaults and limits (e.g., limit max 50, rating options), which guides usage. However, it does not explicitly state when to use this tool over siblings, though the context implies searching is for finding specific GIFs by query.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

translateA

Translate a word or phrase to the perfect GIF using Giphy's WeirdnesS algorithm.

This is Giphy's special "translate" endpoint that converts a term into the single most relevant GIF. Great for reactions and responses.

Args: term: Term or phrase to translate (e.g. "excited", "oh no"). rating: Content rating filter: "g", "pg", "pg-13", or "r" (default "g").

ParametersJSON Schema
NameRequiredDescriptionDefault
termYes
ratingNog

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Mentions the algorithm but does not explain side effects, rate limits, or authentication requirements. The description adds some context about returning a single GIF but lacks thorough behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise, well-structured with introduction and Args section. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema existing, the description sufficiently explains the tool's purpose and parameters. No major gaps given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description compensates well: explains 'term' with examples and 'rating' with allowed values and default. Adds meaning beyond schema's type and default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool translates a word/phrase to a single most relevant GIF using Giphy's WeirdnesS algorithm. Distinguishes from sibling tools like search_gifs (which returns multiple) by emphasizing single-result behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Indicates it's 'great for reactions and responses' and provides example terms. Does not explicitly state when not to use or compare to alternatives, but the context implies it's for single-result needs versus search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.0
    • First observedget_gif_by_id
    • First observedget_random_gif
    • First observedget_trending_gifs
    • First observedsearch_gifs
    • First observedtranslate

TDQS

A4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct purpose: get by ID, random, trending, search, and translate. There is no overlap, and descriptions clearly differentiate them.

Naming Consistency4/5

Names use consistent snake_case and mostly follow a verb_noun pattern (e.g., get_gif_by_id, search_gifs). However, 'translate' is a bare verb and there is minor singular/plural inconsistency (gif vs gifs).

Tool Count5/5

With 5 tools, the server is well-scoped for a GIF retrieval API. Each tool serves a common use case without being overly numerous or sparse.

Completeness4/5

The toolset covers the main Giphy features for reading GIFs (by ID, random, trending, search, translate). Missing endpoints like stickers or batch retrieval are minor gaps, but core functionality is complete.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI models to search, retrieve, and utilize GIFs from Giphy with features like content filtering, multiple search methods, and comprehensive metadata.
    3
    57
    33
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    This is an auto-generated Multi-Agent Conversation Protocol server that enables interaction with the Giphy API, allowing users to access and use Giphy's GIF services through natural language commands.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP (Multi-Agent Conversation Protocol) Server that enables interaction with the Giphy API, allowing agents to search, retrieve, and manage GIF animations through natural language commands.
    -
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    An MCP (Multi-Agent Conversation Protocol) Server that enables interaction with the Giphy API, allowing users to search, retrieve, and manipulate GIF content through natural language commands.
    -