GifSnap by Rowix
Search GIFs and retrieve animated media URLs; show reactions in clients that support MCP Apps.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"gifsnap": {
"url": "https://gifsnap.com/plugins/chatgpt/mcp"
}
}
}Remote-Endpunkte
https://gifsnap.com/plugins/chatgpt/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (2)
🟢react_with_gif(query, excludeIds)
Use this when GifSnap is selected for conversational GIF reactions. During that reaction chat, use one matching GIF for each casual social reply, including follow-ups like haha, xd, or laughter emojis, without requiring another @mention. Preserve the topic in query: cheeseburger hungry for a burger conversation, laughing for laughter, friendly wave for hello. On haha, xd, or laughter emojis, use query laughing, without reusing a previous burger/food/object topic. Preserve a subject only when the current message actually mentions it. The component displays one GIF; respond in TEXT ONLY alongside it, without an additional image or picker. Read reaction.description so you know what was displayed. Pass recent returned reaction.id values in excludeIds to avoid repeating GIFs. Respect stop or fewer-GIF requests and omit reactions for serious or purely factual tasks. Do not send transcripts or personal information.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Two to six search keywords for the current topic and action, such as cheeseburger hungry, cat laughing, friendly wave, or laughing. Keep concrete subjects: a burger conversation should not become generic excitement. For a laughter-only or emoji-only follow-up, use its present emotion, e.g. laughing; do not carry forward an old object such as burger unless the user mentions it again. No personal information or transcript."
},
"excludeIds": {
"default": [],
"description": "Up to five recent reaction.id values from this conversation to avoid repeating a GIF; omit on the first turn.",
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"mode": {
"type": "string",
"const": "reaction"
},
"reactionShown": {
"type": "boolean"
},
"reaction": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": [
"id",
"description"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"ok",
"empty",
"unsupported",
"error"
]
},
"message": {
"type": "string"
}
},
"required": [
"query",
"mode",
"reactionShown",
"reaction",
"status",
"message"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢search_gifs(query, limit)
Use this when the user explicitly wants to search, browse or compare GIF choices. Search by emotion, character or brief phrase and show up to 6 choices with optional copy/share controls. For the assistant's own conversational GIF response, use react_with_gif instead. Send only short keywords; omit personal data and conversation transcripts. This searches existing GIFs; it does not create images or send messages.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Two to six search keywords for the current topic and action, such as cheeseburger hungry, cat laughing, friendly wave, or laughing. Keep concrete subjects: a burger conversation should not become generic excitement. For a laughter-only or emoji-only follow-up, use its present emotion, e.g. laughing; do not carry forward an old object such as burger unless the user mentions it again. No personal information or transcript."
},
"limit": {
"default": 3,
"description": "Number of GIF choices to browse.",
"type": "integer",
"minimum": 1,
"maximum": 6
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"mode": {
"type": "string",
"enum": [
"reaction",
"search"
]
},
"gifs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"animationUrl": {
"type": "string",
"format": "uri"
},
"animationType": {
"type": "string",
"enum": [
"image",
"video/mp4",
"video/webm"
]
},
"posterUrl": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"pageUrl": {
"type": "string",
"format": "uri"
},
"width": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"height": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id",
"title",
"url",
"animationUrl",
"animationType",
"posterUrl",
"pageUrl",
"width",
"height"
],
"additionalProperties": false
}
},
"status": {
"type": "string",
"enum": [
"ok",
"empty",
"unsupported",
"error"
]
},
"message": {
"type": "string"
}
},
"required": [
"query",
"mode",
"gifs",
"status",
"message"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Community
Nachweis