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 yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:e59207d44104e8123270e6865b5051089394598654a30105f88f52b430c50eda | sha256sum