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: "$."