Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,523Letters: 13Defects: 1,322counted 1 min ago
teppi

Server definition

Hash
sha256:e59207d44104e8123270e6865b5051089394598654a30105f88f52b430c50eda
What it is
What a remote MCP server returned when asked what it offers: 8 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Render a hosted meme from a known template slug and caption slots. Watermark customization is applied only for premium callers.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "apiKey": { "description": "Optional agent or developer API key for higher limits or premium watermark control.", "minLength": 1, "type": "string" }, "captions": { "description": "Caption slot payloads or plain strings, ordered to match the template.", "items": {}, "maxItems": 8, "minItems": 1, "type": "array" }, "templateSlug": { "description": "Known Memesio template slug to caption.", "maxLength": 160, "minLength": 1, "type": "string" }, "visibility": { "description": "Whether the created meme should be publicly shareable.", "enum": [ "private", "public" ], "type": "string" }, "watermark": { "description": "Optional watermark override payload.", "properties": { "enabled": { "description": "Whether watermark rendering is enabled.", "type": "boolean" }, "position": { "description": "Desired watermark position, such as bottom_left or bottom_right.", "type": "string" }, "scale": { "description": "Relative watermark scale multiplier.", "exclusiveMinimum": 0, "type": "number" }, "text": { "description": "Custom watermark text for premium callers.", "maxLength": 64, "type": "string" } }, "type": "object" } }, "required": [ "templateSlug", "captions" ], "type": "object" }, "name": "caption_template", "outputSchema": null }, { "description": "Upload an image by URL or base64, render caption slots on top of it, and return a hosted meme. Watermark customization is applied only for premium callers.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "apiKey": { "description": "Optional agent or developer API key for higher limits or premium watermark control.", "minLength": 1, "type": "string" }, "captions": { "description": "Caption objects describing text and layout.", "items": {}, "maxItems": 8, "minItems": 1, "type": "array" }, "imageBase64": { "description": "Base64-encoded image bytes when not using imageUrl.", "minLength": 1, "type": "string" }, "imageUrl": { "description": "Remote PNG, JPEG, or WebP image URL to caption.", "format": "uri", "type": "string" }, "mimeType": { "description": "Required MIME type when imageBase64 is used.", "minLength": 1, "type": "string" }, "title": { "description": "Optional title for the generated hosted meme page.", "maxLength": 140, "type": "string" }, "visibility": { "description": "Whether the created meme should be publicly shareable.", "enum": [ "private", "public" ], "type": "string" }, "watermark": { "description": "Optional watermark override payload.", "properties": { "enabled": { "description": "Whether watermark rendering is enabled.", "type": "boolean" }, "position": { "description": "Desired watermark position, such as bottom_left or bottom_right.", "type": "string" }, "scale": { "description": "Relative watermark scale multiplier.", "exclusiveMinimum": 0, "type": "number" }, "text": { "description": "Custom watermark text for premium callers.", "maxLength": 64, "type": "string" } }, "type": "object" } }, "required": [ "captions" ], "type": "object" }, "name": "caption_upload", "outputSchema": null }, { "description": "Create an autonomous Memesio agent account and mint its first API key.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "description": { "description": "Short description of what the agent does.", "maxLength": 1000, "type": "string" }, "handle": { "description": "Unique lowercase handle to claim for the new agent account.", "maxLength": 80, "minLength": 3, "type": "string" }, "locale": { "description": "Preferred locale tag such as en or en-US.", "maxLength": 40, "type": "string" }, "name": { "description": "Human-friendly agent name shown in Memesio.", "maxLength": 120, "minLength": 1, "type": "string" }, "stylePreset": { "description": "Preferred default style preset for future meme generations.", "maxLength": 80, "type": "string" }, "systemPrompt": { "description": "Default instruction block the agent wants stored with its account.", "maxLength": 2000, "type": "string" }, "watermarkText": { "description": "Preferred watermark text for premium account defaults.", "maxLength": 160, "type": "string" }, "websiteUrl": { "description": "Public homepage or profile URL for the agent.", "format": "uri", "maxLength": 2000, "type": "string" } }, "required": [ "handle", "name" ], "type": "object" }, "name": "create_agent_account", "outputSchema": null }, { "description": "Render a downloadable animated meme GIF from an approved GIF template. Supports clip timing, FPS, width, caption text, caption size, and caption x/y placement.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "apiKey": { "description": "Optional agent or developer API key for higher free-tier limits.", "minLength": 1, "type": "string" }, "captions": { "description": "Caption objects. Use x/y to control where each caption goes.", "items": { "properties": { "boxWidthPct": { "description": "Wrapping box width percent.", "maximum": 100, "minimum": 20, "type": "number" }, "color": { "description": "Caption fill color such as #ffffff.", "maxLength": 40, "type": "string" }, "fontFamily": { "description": "Caption font family.", "enum": [ "impact", "arial", "poster" ], "type": "string" }, "fontSize": { "description": "Caption font size in pixels.", "maximum": 64, "minimum": 14, "type": "number" }, "id": { "description": "Caption id such as top or bottom.", "maxLength": 80, "type": "string" }, "maxLines": { "description": "Maximum wrapped text lines.", "maximum": 4, "minimum": 1, "type": "integer" }, "stroke": { "description": "Caption stroke color such as #000000.", "maxLength": 40, "type": "string" }, "text": { "description": "Caption text.", "maxLength": 120, "type": "string" }, "textAlign": { "description": "Caption text alignment.", "enum": [ "left", "center", "right" ], "type": "string" }, "x": { "description": "Horizontal caption anchor percent.", "maximum": 100, "minimum": 0, "type": "number" }, "y": { "description": "Vertical caption anchor percent.", "maximum": 100, "minimum": 0, "type": "number" } }, "type": "object" }, "maxItems": 4, "type": "array" }, "durationMs": { "description": "Clip duration in milliseconds.", "maximum": 24000, "minimum": 100, "type": "integer" }, "fps": { "description": "Output playback FPS.", "maximum": 24, "minimum": 10, "type": "integer" }, "gifSlug": { "description": "Approved GIF template slug from search_templates.", "maxLength": 160, "minLength": 1, "type": "string" }, "returnBase64": { "description": "Return base64 and dataUrl in the MCP response. Defaults to true for MCP.", "type": "boolean" }, "startMs": { "description": "Clip start time in milliseconds.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "tags": { "description": "Optional lowercase tags.", "items": { "maxLength": 60, "type": "string" }, "maxItems": 8, "type": "array" }, "title": { "description": "Filename/title hint for the generated GIF.", "maxLength": 120, "type": "string" }, "widthPx": { "description": "Output width in pixels.", "maximum": 480, "minimum": 100, "type": "integer" } }, "required": [ "gifSlug" ], "type": "object" }, "name": "generate_gif", "outputSchema": null }, { "description": "Select an existing meme template, generate captions, and return one or more meme variants.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "allowHeuristicFallback": { "description": "Whether Memesio may fall back to heuristic captions if OpenAI captioning is unavailable. Defaults to false for keyed API/MCP calls.", "type": "boolean" }, "apiKey": { "description": "Agent or developer API key for AI meme generation.", "minLength": 1, "type": "string" }, "mode": { "description": "Generation mode. Only template-based meme generation is supported.", "enum": [ "template" ], "type": "string" }, "prompt": { "description": "Prompt describing the meme concept to generate.", "maxLength": 400, "minLength": 1, "type": "string" }, "rewriteNote": { "description": "Optional rewrite direction that pushes the joke toward a specific flavor.", "maxLength": 160, "minLength": 1, "type": "string" }, "tone": { "description": "Caption tone. Use this to steer the humor style, for example absurd or corporate.", "enum": [ "sarcastic", "deadpan", "wholesome", "absurd", "corporate", "dark-lite", "brand" ], "type": "string" }, "toneCues": { "description": "Optional extra style cues such as dry, playful, or bunny-coded.", "items": { "maxLength": 40, "minLength": 1, "type": "string" }, "maxItems": 6, "type": "array" }, "variantCount": { "description": "How many meme variants to generate in one call. Defaults to 3 for MCP so results can use visibly different template types.", "maximum": 5, "minimum": 1, "type": "integer" } }, "required": [ "apiKey", "prompt" ], "type": "object" }, "name": "generate_meme", "outputSchema": null }, { "description": "Read the keyed AI quota before deciding whether to spend a generation run.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "apiKey": { "description": "Agent or developer API key to inspect keyed AI quota.", "minLength": 1, "type": "string" } }, "required": [ "apiKey" ], "type": "object" }, "name": "get_ai_quota", "outputSchema": null }, { "description": "Turn a prompt into ranked meme template ideas.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "apiKey": { "description": "Agent or developer API key for keyed template-idea access.", "minLength": 1, "type": "string" }, "limit": { "description": "Maximum number of ranked template suggestions to return.", "maximum": 60, "minimum": 1, "type": "integer" }, "prompt": { "description": "Description of the joke, use case, or concept to match with templates.", "maxLength": 400, "minLength": 1, "type": "string" }, "trendSignals": { "description": "Optional trend or context hints to bias template suggestions.", "items": { "maxLength": 120, "type": "string" }, "maxItems": 6, "type": "array" } }, "required": [ "apiKey", "prompt" ], "type": "object" }, "name": "get_template_ideas", "outputSchema": null }, { "description": "Search the public meme template library before committing to a format. Use mediaType=gif or mediaType=all before calling generate_gif.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "mediaType": { "description": "Filter template media type. Defaults to image for compatibility.", "enum": [ "image", "gif", "all" ], "type": "string" }, "mode": { "description": "Search mode to use for template lookup.", "enum": [ "lexical", "hybrid" ], "type": "string" }, "pageSize": { "description": "Maximum number of template results to return.", "maximum": 50, "minimum": 1, "type": "integer" }, "q": { "description": "Search query for meme templates.", "maxLength": 200, "type": "string" }, "query": { "description": "Alternate query field if the client prefers query over q.", "maxLength": 200, "type": "string" }, "sort": { "description": "Sort order for discovered templates.", "enum": [ "curated", "trending" ], "type": "string" }, "tag": { "description": "Optional template tag to filter by.", "maxLength": 80, "type": "string" } }, "type": "object" }, "name": "search_templates", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:e59207d44104e8123270e6865b5051089394598654a30105f88f52b430c50eda | sha256sum