Skip to main content
Glama
Meme Generator MCP
by t0ster

Meme Generator MCP

An MCP (Model Context Protocol) server that generates memes with custom text overlays. Built with FastMCP and Pillow.

https://github.com/user-attachments/assets/9b8b47f3-ec54-41ed-913c-a2807cbc93d4

Features

  • Generate memes from pre-configured templates

  • Customizable text overlays with automatic word wrapping

  • Extensible configuration for adding custom templates

Related MCP server: Memeboat MCP

Available Memes

See meme_configs.json for the list of available memes and their text placeholders, and meme_templates/ for the template images.

Requirements

  • Python 3.12+

  • uv

MCP Configuration

Add the server to your MCP client configuration:

{
  "mcpServers": {
    "meme-generator": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/t0ster/meme-generator-mcp",
        "meme-generator-mcp"
      ]
    }
  }
}

Local Development

git clone https://github.com/t0ster/meme-generator-mcp.git
cd meme-generator-mcp
uv sync

MCP configuration for local development:

{
  "mcpServers": {
    "meme-generator": {
      "command": "uv",
      "args": ["run", "meme-generator-mcp", "--dev"]
    }
  }
}

The --dev flag uses local app/meme_templates/ and app/meme_configs.json instead of copying to the config directory.

Tools

get_meme_info

Get information about available memes and their placeholder requirements.

Parameters:

  • meme_name (optional): Get info for a specific meme

Example:

{
  "meme_name": "drake_pointing"
}

generate_meme

Generate a meme with custom text overlays.

Parameters:

  • meme_name: The type of meme to generate

  • texts: Dictionary mapping placeholder names to text values

Example:

{
  "meme_name": "drake_pointing",
  "texts": {
    "disapprove": "Writing documentation",
    "approve": "Generating memes"
  }
}

Generated memes are saved to ~/.config/meme-generator-mcp/generated_memes/ by default (customizable via MEME_GENERATOR_MCP_OUTPUT_PATH).

Environment Variables

Variable

Description

Default

MEME_GENERATOR_MCP_TEMPLATES_PATH

Custom path to meme templates directory

~/.config/meme-generator-mcp/meme_templates

MEME_GENERATOR_MCP_OUTPUT_PATH

Custom path for generated memes

~/.config/meme-generator-mcp/generated_memes

MEME_GENERATOR_MCP_CONFIGS_PATH

Custom path to meme configs JSON

~/.config/meme-generator-mcp/meme_configs.json

On Windows, the default config directory is %LOCALAPPDATA%\meme-generator-mcp.

Adding Custom Memes

For personal use: Edit files in your config directory:

  • ~/.config/meme-generator-mcp/meme_templates/ - add template images

  • ~/.config/meme-generator-mcp/meme_configs.json - add meme configurations

For contributing (dev mode): Edit files in the repo:

  • app/meme_templates/ - add template images

  • app/meme_configs.json - add meme configurations

Configuration example:

{
  "my_custom_meme": {
    "template_file": "my_template.jpg",
    "placeholders": {
      "top_text": {
        "x": 300,
        "y": 20,
        "max_width": 500,
        "align": "center",
        "font_size": 40,
        "fill": "white",
        "stroke_fill": "black",
        "stroke_width": 2
      }
    }
  }
}

Placeholder Options

Option

Type

Default

Description

x

int

required

X coordinate for text position

y

int

required

Y coordinate for text position

max_width

int

required

Maximum width before text wraps

align

string

"center"

Text alignment: "left", "center", or "right"

font_size

int

40

Font size in pixels

fill

string

"white"

Text color

stroke_fill

string

"black"

Outline color

stroke_width

int

2

Outline width in pixels

License

MIT

Available Tools

2 tools
generate_memeA

Generate a meme with custom text overlays.

Each meme type has specific named text placeholders that must be filled. Use the 'get_meme_info' tool to see available memes and their placeholder requirements.

Inputs: meme_name (required), texts (required). Returns: object

get_meme_infoC

Get information about available memes and their text placeholder requirements.

Inputs: meme_name. Returns: object

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 2 tools

    Disambiguation5/5

    The two tools have completely distinct purposes: one generates memes while the other provides metadata about available memes. There is no overlap in functionality, and the descriptions clearly differentiate their roles.

    Naming Consistency5/5

    Both tools follow a consistent verb_noun naming pattern (generate_meme, get_meme_info) with clear, descriptive names that indicate their specific actions. The naming convention is uniform across all tools.

    Tool Count2/5

    With only 2 tools, the server feels under-scoped for a meme generation domain. While the tools cover the basic workflow (discover memes then generate), there are likely missing operations like listing meme categories, managing templates, or editing existing memes that would enhance completeness.

    Completeness3/5

    The tools cover the core discovery-to-generation workflow adequately, but there are notable gaps. Missing operations might include updating or deleting generated memes, searching/filtering memes by category, or managing user-created templates, which could limit agent capabilities in extended scenarios.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      Not graded
      maintenance
      A Model Context Protocol server that enables AI models and tools to generate meme images from user prompts using the ImgFlip API.
      4
      17
      Apache 2.0
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to create memes by selecting from a library of templates and rendering captions with proper typesetting.
      AGPL 3.0