giphy-mcp-server
Provides tools for searching, trending, and random GIFs, as well as translating phrases to GIFs via the Giphy API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@giphy-mcp-serversearch for a funny cat GIF"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
giphy-mcp-server
MCP server for the Giphy API — search, trending, and random GIFs as tools for AI coding agents.
Tools
Tool | Description |
| Search for GIFs by query string |
| Get currently trending GIFs |
| Get a random GIF, optionally filtered by tag |
| Get a specific GIF by its Giphy ID |
| Translate a word or phrase to the perfect GIF |
Related MCP server: Giphy MCP Server
Setup
Get a free API key at developers.giphy.com
Set the
GIPHY_API_KEYenvironment 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-serverFrom source
git clone https://github.com/npow/giphy-mcp-server.git
cd giphy-mcp-server
pip install -e .
giphy-mcp-serverDevelopment
pip install -e ".[test]"
pytestLicense
MIT
Available Tools
5 toolsget_gif_by_idA
Get a specific GIF by its Giphy ID.
Args: gif_id: The Giphy GIF ID (e.g. "xT9IgzoKnwFNmISR8I").
| Name | Required | Description | Default |
|---|---|---|---|
| gif_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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").
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| rating | No | g |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
get_trending_gifsA
Get currently trending GIFs on Giphy.
Args: 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").
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| rating | No | g |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, description covers basic listing behavior but lacks details on error states, rate limits, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Minimal and well-structured: one sentence for purpose, then parameter list. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and parameters thoroughly. Output schema exists, so return format isn't needed. Minor gap: lacks mention of network or authentication context, but acceptable for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Each parameter is explained with defaults, ranges (limit: max 50), and valid values (rating options). Complements the schema which only has types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Get'), specific resource ('trending GIFs'), and scope ('on Giphy'). Distinguishes from sibling tools like search_gifs or get_gif_by_id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for trending content but no explicit 'when to use' or 'when not' compared to alternatives like search_gifs.
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").
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No | ||
| offset | No | ||
| rating | No | g | |
| lang | No | en |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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").
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | ||
| rating | No | g |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
5 tool updates
v0.1.0- First observed
get_gif_by_id - First observed
get_random_gif - First observed
get_trending_gifs - First observed
search_gifs - First observed
translate
TDQS
Scored across 5 tools
Each tool has a distinct purpose: get by ID, random, trending, search, and translate. There is no overlap, and descriptions clearly differentiate them.
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).
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.
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
Related MCP Connectors
Giphy MCP — wraps Giphy API (public beta key, free)
Tenor GIFs/stickers v2: search, featured, categories, trending, posts.
Look up Pokémon, moves, abilities, items, natures, and type matchups from PokéAPI v2.
Access the GitHub API, enabling file operations, repository management, search functionality, and…
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI models to search, retrieve, and utilize GIFs from Giphy with features like content filtering, multiple search methods, and comprehensive metadata.35733MIT
- FlicenseNot gradedqualityDmaintenanceThis 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.-
- FlicenseNot gradedqualityDmaintenanceAn 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.-
- -licenseNot gradedqualityNot gradedmaintenanceAn 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.-