Skip to main content
Glama
README.md
# GIF Creator MCP

An MCP (Model Context Protocol) server that converts video files to GIF animations.
![gif-creator-demo](https://github.com/user-attachments/assets/0543d53f-8bc7-4a16-8a4b-e41ef13568c6)


## Features

- Convert any video file to GIF format
- Customize output settings (FPS, dimensions, duration)
- Extract specific portions of videos
- High-quality GIF generation with optimized palette

## Installation

```bash
npm install
npm run build
```

## Usage

Right now, Claude Desktop does not support video input. I'd recommend using a different client like [Goose](https://block.github.io/goose/) and adding it as an extension.

In Goose, you can use the Gif Creator tool by going to Advanced Settings > Extension > + Add Custom Extension > and in the command pasting:
```
node /path/to/gif-creator-mcp/dist/index.js
```

I'd also increase the time out to 1000.


For other MCP clients, you can use the following command to start the server:

```json
{
  "mcpServers": {
    "gif-creator": {
      "command": "node",
      "args": ["/path/to/gif-creator-mcp/dist/index.js"]
    }
  }
}
```

## Tools

### convert_video_to_gif

Converts a video file to a GIF file, saving it in the same directory as the source video.

**Parameters:**
- `video_path` (required): Path to the video file to convert
- `fps` (optional): Frames per second for the GIF (1-30, default: 10)
- `width` (optional): Width of the output GIF (maintains aspect ratio if height not specified)
- `height` (optional): Height of the output GIF (maintains aspect ratio if width not specified)
- `start_time` (optional): Start time in seconds (default: 0)
- `duration` (optional): Duration in seconds (default: entire video)

## Examples

### Basic conversion
```json
{
  "video_path": "/path/to/video.mp4"
}
```

### Custom settings
```json
{
  "video_path": "/path/to/video.mp4",
  "fps": 15,
  "width": 480,
  "start_time": 5,
  "duration": 10
}
```

### Extract a specific portion
```json
{
  "video_path": "/path/to/long-video.mov",
  "start_time": 30,
  "duration": 5,
  "fps": 20
}
```

## Requirements

- Node.js
- FFmpeg (automatically installed via @ffmpeg-installer/ffmpeg)

## Notes

- The output GIF is saved in the same directory as the input video
- The filename is the same as the video file but with a .gif extension
- Large videos may take some time to process
- The tool uses optimized palette generation for better quality GIFs

## License

MIT

TDQS

B3.1/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly defined as converting video to GIF, leaving no room for confusion or misselection.

Naming Consistency5/5

A single tool inherently has perfect naming consistency since there are no other tools to compare against. The tool name 'convert_video_to_gif' follows a clear verb_noun pattern, but consistency cannot be assessed across multiple tools.

Tool Count2/5

A single tool for a GIF creator server feels thin and incomplete for the domain. While the tool performs a core function, typical GIF creation workflows might include additional operations like resizing, cropping, adjusting speed, or creating GIFs from images, suggesting the scope is underdeveloped.

Completeness2/5

The tool set is severely incomplete for a GIF creator domain. It only covers video-to-GIF conversion, missing essential operations such as creating GIFs from image sequences, editing existing GIFs (e.g., trimming, optimizing), or managing output settings (e.g., frame rate, quality). This will likely cause agent failures when broader tasks are required.

Maintenance

ActivityInactive
ResponsivenessNo issues