Memesio · Capability

Memesio Meme Creation

End-to-end meme creation workflow: search the public template library, pick or recommend a template, render captions on a stored template, upload a custom image and caption it, and generate AI-driven meme variants. Works for both anonymous callers (template discovery and free caption render) and authenticated developers/agents (AI generation).

Run with Naftiko MemesioMemesTemplatesImage GenerationAI Captions

What You Can Do

GET
Search templates — Search the public template library by query, tag, or trend.
/v1/templates
POST
Suggest templates — Get AI template recommendations for a topic or vibe.
/v1/templates
GET
List memes — List memes owned by the caller.
/v1/memes
POST
Caption template — Render a meme by captioning a stored template.
/v1/memes
POST
Caption upload — Upload an image and caption it as a meme.
/v1/memes
POST
Free caption meme — Anonymous-friendly caption render with watermark.
/v1/memes
POST
Generate ai meme — AI-driven meme variant generation.
/v1/memes
GET
Get ai quota — Read remaining AI meme quota for the caller.
/v1/memes
GET
Get meme — Fetch a hosted meme by slug.
/v1/memes/{slug}
DELETE
Delete meme — Delete a hosted meme owned by the caller.
/v1/memes/{slug}

MCP Tools

search-templates

Search the public Memesio template library.

read-only
suggest-templates

Get AI template recommendations for a topic, tone, or trend.

read-only
caption-template

Render a meme by captioning a known template.

caption-upload

Upload an image and caption it as a meme.

generate-meme

AI variant generation: pick a template, generate captions, return ready meme variants.

get-ai-quota

Check remaining daily AI meme generation quota before spending it.

read-only

APIs Used

memesio

Capability Spec

Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Memesio Meme Creation"
  description: >
    End-to-end meme creation workflow: search the public template library,
    pick or recommend a template, render captions on a stored template,
    upload a custom image and caption it, and generate AI-driven meme
    variants. Works for both anonymous callers (template discovery and free
    caption render) and authenticated developers/agents (AI generation).
  tags:
    - Memesio
    - Memes
    - Templates
    - Image Generation
    - AI Captions
  created: "2026-05-16"
  modified: "2026-05-16"

binds:
  - namespace: env
    keys:
      MEMESIO_API_KEY: MEMESIO_API_KEY

capability:
  consumes:
    - import: memesio
      location: ./shared/memesio.yaml

  exposes:
    - type: rest
      port: 8801
      namespace: meme-creation-api
      description: "Unified REST surface for searching templates and creating memes."
      resources:
        - path: /v1/templates
          name: templates
          description: "Public meme template library."
          operations:
            - method: GET
              name: search-templates
              description: "Search the public template library by query, tag, or trend."
              call: "memesio.get-free-templates"
              with:
                q: "rest.q"
                tag: "rest.tag"
                page: "rest.page"
                pageSize: "rest.pageSize"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: suggest-templates
              description: "Get AI template recommendations for a topic or vibe."
              call: "memesio.post-v1-templates-ideas"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/memes
          name: memes
          description: "Hosted memes the caller has rendered or generated."
          operations:
            - method: GET
              name: list-memes
              description: "List memes owned by the caller."
              call: "memesio.get-memes"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: caption-template
              description: "Render a meme by captioning a stored template."
              call: "memesio.post-v1-memes-caption-template"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: caption-upload
              description: "Upload an image and caption it as a meme."
              call: "memesio.post-v1-memes-caption-upload"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: free-caption-meme
              description: "Anonymous-friendly caption render with watermark."
              call: "memesio.post-free-memes-caption"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: generate-ai-meme
              description: "AI-driven meme variant generation."
              call: "memesio.post-v1-memes-generate"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: GET
              name: get-ai-quota
              description: "Read remaining AI meme quota for the caller."
              call: "memesio.get-ai-memes-generate"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/memes/{slug}
          name: meme-detail
          description: "Hosted meme record."
          operations:
            - method: GET
              name: get-meme
              description: "Fetch a hosted meme by slug."
              call: "memesio.get-memes-slug"
              with:
                slug: "rest.slug"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: DELETE
              name: delete-meme
              description: "Delete a hosted meme owned by the caller."
              call: "memesio.delete-memes-slug"
              with:
                slug: "rest.slug"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 8802
      namespace: meme-creation-mcp
      transport: http
      description: "MCP server for AI assistants creating memes through Memesio."
      tools:
        - name: search-templates
          description: "Search the public Memesio template library."
          hints:
            readOnly: true
            openWorld: true
          call: "memesio.get-free-templates"
          outputParameters:
            - type: object
              mapping: "$."

        - name: suggest-templates
          description: "Get AI template recommendations for a topic, tone, or trend."
          hints:
            readOnly: true
            openWorld: true
          call: "memesio.post-v1-templates-ideas"
          outputParameters:
            - type: object
              mapping: "$."

        - name: caption-template
          description: "Render a meme by captioning a known template."
          hints:
            readOnly: false
            openWorld: true
          call: "memesio.post-v1-memes-caption-template"
          outputParameters:
            - type: object
              mapping: "$."

        - name: caption-upload
          description: "Upload an image and caption it as a meme."
          hints:
            readOnly: false
            openWorld: true
          call: "memesio.post-v1-memes-caption-upload"
          outputParameters:
            - type: object
              mapping: "$."

        - name: generate-meme
          description: "AI variant generation: pick a template, generate captions, return ready meme variants."
          hints:
            readOnly: false
            openWorld: true
          call: "memesio.post-v1-memes-generate"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-ai-quota
          description: "Check remaining daily AI meme generation quota before spending it."
          hints:
            readOnly: true
            openWorld: true
          call: "memesio.get-ai-memes-generate"
          outputParameters:
            - type: object
              mapping: "$."