Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,552Letters: 14Defects: 1,331counted 2 min ago
teppi

Server definition

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

The blob, as servednamed by its sha256

{ "instructions": "Generate and edit images with any major model. Pick one with list_models; nano-banana-2 is the general default.", "tools": [ { "description": "Check an async generation job by its j_… id. Slow models (mode \"async\" in list_models) return a job instead of an image — poll this until it succeeds or fails.", "inputSchema": { "properties": { "job_id": { "description": "j_… id returned by generate_image / edit_image", "type": "string" } }, "required": [ "job_id" ], "type": "object" }, "name": "check_job", "outputSchema": null }, { "description": "Edit a previously generated image by its img_… id with a natural-language instruction.", "inputSchema": { "properties": { "aspect_ratio": { "description": "Omit to keep the source image's shape. If set, it is per-model — see list_models.", "type": "string" }, "image": { "description": "img_… id of a previous generation", "type": "string" }, "instruction": { "description": "What to change", "type": "string" }, "model": { "default": "nano-banana-2", "type": "string" }, "overlay": { "oneOf": [ { "const": "default", "description": "Apply your saved brand kit (set with PUT /v1/brand-kit)", "type": "string" }, { "description": "Optional brand overlay composited into a corner after generation. Provide EITHER text OR logo_id (an uploaded brand logo), not both.", "properties": { "color": { "description": "text only; \"auto\" (default) or #RRGGBB", "type": "string" }, "font": { "description": "text only; default space-grotesk", "enum": [ "space-grotesk", "inter", "jetbrains-mono" ], "type": "string" }, "logo_id": { "description": "A logo uploaded via POST /v1/logos (mutually exclusive with text)", "type": "string" }, "logo_style": { "description": "Logo treatment (logo_id only). RECOMMENDED default \"sticker\": crisp die-cut border + drop shadow, legible on any photo. \"shadow\": drop shadow only (use when the logo already contrasts the scene). \"outline\": border only, flat cut-out. \"none\": bare logo, its own alpha only (use only for a pre-processed logo on a controlled background).", "enum": [ "sticker", "shadow", "outline", "none" ], "type": "string" }, "margin": { "description": "\"safe\" (default) or a non-negative px number" }, "opacity": { "description": "0.2–1.0, default 0.9", "type": "number" }, "position": { "description": "default bottom-right", "enum": [ "top-left", "top-right", "bottom-left", "bottom-right" ], "type": "string" }, "size": { "description": "text cap-height or logo width; default m", "enum": [ "s", "m", "l" ], "type": "string" }, "text": { "description": "Handle to render, ≤64 chars, single line (mutually exclusive with logo_id)", "type": "string" }, "weight": { "description": "text only; default 700", "enum": [ 400, 500, 700 ], "type": "number" } }, "type": "object" } ] }, "resolution": { "description": "Output tier; defaults to the source image's", "enum": [ "1K", "2K", "4K" ], "type": "string" } }, "required": [ "image", "instruction" ], "type": "object" }, "name": "edit_image", "outputSchema": null }, { "description": "Generate an image from a text prompt. Returns a hosted URL plus cost and balance. Slow models (mode \"async\" in list_models) return a j_… job id instead — poll it with check_job.", "inputSchema": { "properties": { "aspect_ratio": { "description": "e.g. \"16:9\" (default 1:1). Ratios are per-model — list_models names the ones verified for each. Gemini models take a fixed set (no 4:1 or wider); the budget fal models compute any bounded W:H, so use one of those for banner shapes — up to 4:1 / 1:4, beyond which the derived strip gets too thin to send. Every fal model is 1K-only, so that is the practical bound.", "type": "string" }, "model": { "default": "nano-banana-2", "description": "Model id from list_models", "type": "string" }, "overlay": { "oneOf": [ { "const": "default", "description": "Apply your saved brand kit (set with PUT /v1/brand-kit)", "type": "string" }, { "description": "Optional brand overlay composited into a corner after generation. Provide EITHER text OR logo_id (an uploaded brand logo), not both.", "properties": { "color": { "description": "text only; \"auto\" (default) or #RRGGBB", "type": "string" }, "font": { "description": "text only; default space-grotesk", "enum": [ "space-grotesk", "inter", "jetbrains-mono" ], "type": "string" }, "logo_id": { "description": "A logo uploaded via POST /v1/logos (mutually exclusive with text)", "type": "string" }, "logo_style": { "description": "Logo treatment (logo_id only). RECOMMENDED default \"sticker\": crisp die-cut border + drop shadow, legible on any photo. \"shadow\": drop shadow only (use when the logo already contrasts the scene). \"outline\": border only, flat cut-out. \"none\": bare logo, its own alpha only (use only for a pre-processed logo on a controlled background).", "enum": [ "sticker", "shadow", "outline", "none" ], "type": "string" }, "margin": { "description": "\"safe\" (default) or a non-negative px number" }, "opacity": { "description": "0.2–1.0, default 0.9", "type": "number" }, "position": { "description": "default bottom-right", "enum": [ "top-left", "top-right", "bottom-left", "bottom-right" ], "type": "string" }, "size": { "description": "text cap-height or logo width; default m", "enum": [ "s", "m", "l" ], "type": "string" }, "text": { "description": "Handle to render, ≤64 chars, single line (mutually exclusive with logo_id)", "type": "string" }, "weight": { "description": "text only; default 700", "enum": [ 400, 500, 700 ], "type": "number" } }, "type": "object" } ] }, "prompt": { "description": "What to draw", "type": "string" }, "resolution": { "description": "Output tier (default 1K); supported tiers and prices per model are in list_models", "enum": [ "1K", "2K", "4K" ], "type": "string" } }, "required": [ "prompt" ], "type": "object" }, "name": "generate_image", "outputSchema": null }, { "description": "Show the current prepaid balance in USD.", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_balance", "outputSchema": null }, { "description": "List available image models with pricing and latency.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_models", "outputSchema": null }, { "description": "List card templates with their slots, style axes and exact price.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_templates", "outputSchema": null }, { "description": "Render a typeset card from a template — a finished, on-brand social image (quote card, post card) in about two seconds. Cheaper and more legible than generating type with a model. Get the templates and their slots from list_templates.", "inputSchema": { "properties": { "overlay": { "oneOf": [ { "const": "default", "description": "Apply your saved brand kit (set with PUT /v1/brand-kit)", "type": "string" }, { "description": "Optional brand overlay composited into a corner after generation. Provide EITHER text OR logo_id (an uploaded brand logo), not both.", "properties": { "color": { "description": "text only; \"auto\" (default) or #RRGGBB", "type": "string" }, "font": { "description": "text only; default space-grotesk", "enum": [ "space-grotesk", "inter", "jetbrains-mono" ], "type": "string" }, "logo_id": { "description": "A logo uploaded via POST /v1/logos (mutually exclusive with text)", "type": "string" }, "logo_style": { "description": "Logo treatment (logo_id only). RECOMMENDED default \"sticker\": crisp die-cut border + drop shadow, legible on any photo. \"shadow\": drop shadow only (use when the logo already contrasts the scene). \"outline\": border only, flat cut-out. \"none\": bare logo, its own alpha only (use only for a pre-processed logo on a controlled background).", "enum": [ "sticker", "shadow", "outline", "none" ], "type": "string" }, "margin": { "description": "\"safe\" (default) or a non-negative px number" }, "opacity": { "description": "0.2–1.0, default 0.9", "type": "number" }, "position": { "description": "default bottom-right", "enum": [ "top-left", "top-right", "bottom-left", "bottom-right" ], "type": "string" }, "size": { "description": "text cap-height or logo width; default m", "enum": [ "s", "m", "l" ], "type": "string" }, "text": { "description": "Handle to render, ≤64 chars, single line (mutually exclusive with logo_id)", "type": "string" }, "weight": { "description": "text only; default 700", "enum": [ 400, 500, 700 ], "type": "number" } }, "type": "object" } ] }, "scale": { "description": "device pixel ratio; 2 default, 3 costs $0.01 more", "enum": [ 1, 2, 3 ], "type": "number" }, "size": { "description": "default 16:9", "enum": [ "16:9", "1:1", "4:5", "og" ], "type": "string" }, "slots": { "description": "The template's slot values, e.g. { \"quote\": \"…\", \"handle\": \"@you\" }. Image slots take an asset id from upload_asset, or \"default\" for your brand kit.", "type": "object" }, "style": { "description": "Leave unset for the template default, \"auto\" for a random combination that avoids your last one, \"brand\" for your saved colours, or an object of style axes.", "oneOf": [ { "enum": [ "auto", "brand" ], "type": "string" }, { "properties": { "font": { "type": "string" }, "layout": { "type": "string" }, "palette": { "type": "string" }, "shadow": { "description": "crisp offset shadow behind the type", "type": "boolean" } }, "type": "object" } ] }, "template": { "description": "Template id from list_templates, e.g. \"quote-card\"", "type": "string" } }, "required": [ "template", "slots" ], "type": "object" }, "name": "render_template", "outputSchema": null }, { "description": "Upload an image (PNG or JPEG, ≤5 MB) as a reusable asset — an avatar for a card, for example. Returns an ast_… id to pass into a template slot.", "inputSchema": { "properties": { "data": { "description": "data URI or bare base64, e.g. \"data:image/png;base64,…\"", "type": "string" }, "kind": { "description": "what the image is for; \"avatar\" for a card byline", "enum": [ "avatar", "logo", "photo", "image" ], "type": "string" } }, "required": [ "data", "kind" ], "type": "object" }, "name": "upload_asset", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:3f0e83006962f36b8fb4074c8edf183292f6071e5ed56e71b4dd089af405d2c5 | sha256sum