
Generate text, images, videos, speech and transcripts with your Easy-Peasy.AI account.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Easy-Peasy.AI API key from https://easy-peasy.ai/settings/api
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Show Easy-Peasy.AI images in an embedded gallery or videos in an embedded player. Use IDs returned by generate_image, get_image, generate_video, or get_video. Can display a processing video and check its progress. Reads existing results in the connected account; does not generate content or spend credits. Clients without embedded UI still receive the media links.
Existing image or video IDs to display, in order (up to 8).
Show Easy-Peasy.AI images in an embedded gallery or videos in an embedded player. Use IDs returned by generate_image, get_image, generate_video, or get_video. Can display a processing video and check its progress. Reads existing results in the connected account; does not generate content or spend credits. Clients without embedded UI still receive the media links.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Existing image or video IDs to display, in order (up to 8). |
| media_type* | string |
{
"type": "object",
"required": [
"media_type",
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
},
"maxItems": 8,
"minItems": 1,
"description": "Existing image or video IDs to display, in order (up to 8)."
},
"media_type": {
"enum": [
"image",
"video"
],
"type": "string"
}
},
"additionalProperties": false
}Generate or edit an image with Easy-Peasy.AI. Synchronous — returns image URL(s) when generation finishes (can take up to a few minutes). Uses image credits and requires a paid plan for API access. To edit existing images, pass their URLs in source_images; model then picks the edit model. display_media shows the returned image IDs in an embedded gallery.
| Argument | Type | Description |
|---|---|---|
| model | string | Image model name. For new images, e.g. "Nano Banana 2" (default), "Nano Banana Pro", "FLUX.2 [max]", "OpenAI GPT Image 2.5 Flare Medium", "OpenAI GPT Image 2 Medium", "Seedream 5.0 Pro". With source_images, model also picks the edit model, so it must be one of the edit models (a subset), e.g. "Nano Banana 2", "Nano Banana Pro", "OpenAI GPT Image 2.5 Flare Medium", "OpenAI GPT Image 2.5 Sunburst Medium", "Seedream 5.0 Pro", "FLUX.2 [max]" or "Qwen Image"; any other name is rejected with the list of edit models. Omit model when editing to use "OpenAI GPT Image 2.5 Flare Medium". |
| style | string | Optional style preset name. |
| prompt* | string | Description of the image to generate. |
| outputs | number | Number of images to generate (default 1). |
| dimensions | string | Aspect ratio such as "1:1", "16:9" or "9:16" (supported ratios vary by model), or a pixel size "WIDTHxHEIGHT" such as "1792x1024" (default "1024x1024"). Nano Banana 2, Nano Banana Pro and GPT Image models map a pixel size to the nearest aspect ratio they support; other models may not, so prefer an aspect ratio. |
| resolution | string | For models that support it: "1K" or "2K". |
| source_images | array | Optional image URLs to edit/transform (image-to-image). Up to 10. |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"model": {
"type": "string",
"description": "Image model name. For new images, e.g. \"Nano Banana 2\" (default), \"Nano Banana Pro\", \"FLUX.2 [max]\", \"OpenAI GPT Image 2.5 Flare Medium\", \"OpenAI GPT Image 2 Medium\", \"Seedream 5.0 Pro\". With source_images, model also picks the edit model, so it must be one of the edit models (a subset), e.g. \"Nano Banana 2\", \"Nano Banana Pro\", \"OpenAI GPT Image 2.5 Flare Medium\", \"OpenAI GPT Image 2.5 Sunburst Medium\", \"Seedream 5.0 Pro\", \"FLUX.2 [max]\" or \"Qwen Image\"; any other name is rejected with the list of edit models. Omit model when editing to use \"OpenAI GPT Image 2.5 Flare Medium\"."
},
"style": {
"type": "string",
"description": "Optional style preset name."
},
"prompt": {
"type": "string",
"description": "Description of the image to generate."
},
"outputs": {
"type": "number",
"description": "Number of images to generate (default 1)."
},
"dimensions": {
"type": "string",
"description": "Aspect ratio such as \"1:1\", \"16:9\" or \"9:16\" (supported ratios vary by model), or a pixel size \"WIDTHxHEIGHT\" such as \"1792x1024\" (default \"1024x1024\"). Nano Banana 2, Nano Banana Pro and GPT Image models map a pixel size to the nearest aspect ratio they support; other models may not, so prefer an aspect ratio."
},
"resolution": {
"type": "string",
"description": "For models that support it: \"1K\" or \"2K\"."
},
"source_images": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional image URLs to edit/transform (image-to-image). Up to 10."
}
},
"additionalProperties": false
}Convert text to speech (ElevenLabs-powered). Synchronous — returns the audio file URL. Billed against the account’s monthly text-to-speech character quota.
| Argument | Type | Description |
|---|---|---|
| text* | string | Text to speak. |
| speed | number | Playback speed 0.7-1.2 (default 1.0). |
| voice_id* | string | Voice id from list_voices. |
| output_format | string | Audio format, e.g. "mp3_44100_128" (default) or "wav". |
{
"type": "object",
"required": [
"text",
"voice_id"
],
"properties": {
"text": {
"type": "string",
"description": "Text to speak."
},
"speed": {
"type": "number",
"description": "Playback speed 0.7-1.2 (default 1.0)."
},
"voice_id": {
"type": "string",
"description": "Voice id from list_voices."
},
"output_format": {
"type": "string",
"description": "Audio format, e.g. \"mp3_44100_128\" (default) or \"wav\"."
}
},
"additionalProperties": false
}Generate text with an Easy-Peasy.AI template (preset). Synchronous — returns the generated text. Uses the account word quota and requires available API token allowance. Call get_template first to learn which fields a template accepts; pass template-specific fields via extra_fields (e.g. {"extra1": "..."}).
| Argument | Type | Description |
|---|---|---|
| tone | string | Optional tone of voice, e.g. "Friendly". |
| preset* | string | Template slug, e.g. "blog-post-intro" (see list_templates). |
| outputs | number | How many variations to generate (default 1). |
| keywords | string | Main topic / input text for the template. Required by almost all templates. |
| language | string | Output language name in English, e.g. "English", "Spanish". |
| extra_fields | object | Template-specific fields keyed by field name from get_template, e.g. {"extra1": "value"}. |
{
"type": "object",
"required": [
"preset"
],
"properties": {
"tone": {
"type": "string",
"description": "Optional tone of voice, e.g. \"Friendly\"."
},
"preset": {
"type": "string",
"description": "Template slug, e.g. \"blog-post-intro\" (see list_templates)."
},
"outputs": {
"type": "number",
"description": "How many variations to generate (default 1)."
},
"keywords": {
"type": "string",
"description": "Main topic / input text for the template. Required by almost all templates."
},
"language": {
"type": "string",
"description": "Output language name in English, e.g. \"English\", \"Spanish\"."
},
"extra_fields": {
"type": "object",
"description": "Template-specific fields keyed by field name from get_template, e.g. {\"extra1\": \"value\"}.",
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": false
}Start an AI video generation. Defaults to MiniMax H3 Max: 5 seconds, 768p, native audio, 4 credits per second at 768p. With an image and no model, uses MiniMax H3 Max Image. ASYNC — returns a video id. display_media shows the video and checks its progress in an embedded player; get_video also checks that same id. Uses video credits (billed per second of output).
| Argument | Type | Description |
|---|---|---|
| image | string | Optional image URL used as the first frame. With no model, selects MiniMax H3 Max Image. For an explicit model, select the matching Image variant. |
| model | string | Optional video model. Omit for "MiniMax H3 Max" (or "MiniMax H3 Max Image" when image is supplied). Other examples: "Veo 3.1", "Veo 3.1 Fast", "Seedance 2.5", "Seedance 2.0 Mini". An explicit model is used as supplied; choose its Image variant for image-to-video. |
| prompt* | string | Description of the video to generate. |
| duration | string | Clip length in seconds as a string. MiniMax H3 Max supports "5" through "15" (default "5"). Veo 3.1 supports only "4", "6", or "8" seconds. Must be supported by the selected model. If omitted, uses a supported model default. |
| resolution | string | Model-dependent output resolution. MiniMax H3 Max supports "768p" (default) or "480p". Other models may support "720p", "1080p", or "2k". |
| aspect_ratio | string | Aspect ratio, e.g. "16:9" (default), "9:16", "1:1". |
Check connection status only when the user explicitly asks whether Easy-Peasy.AI is connected. Returns only a boolean. Do not call for general knowledge, account deletion, or requests for credentials or personal details; those requests are unsupported by this tool.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Get a previously generated image by its numeric id (returned by generate_image).
| Argument | Type | Description |
|---|---|---|
| image_id* | number | Numeric image id. |
{
"type": "object",
"required": [
"image_id"
],
"properties": {
"image_id": {
"type": "number",
"description": "Numeric image id."
}
},
"additionalProperties": false
}Get one text generation template by slug, including its input fields (name, label, type, options). Field names like "keywords" and "extra1".."extra14" map directly onto generate_text parameters.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Template slug from list_templates. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Template slug from list_templates."
}
},
"additionalProperties": false
}Get a transcription started with transcribe_audio using its exact returned uuid and the same connected account. The content field is empty until transcription finishes. If the job is not found or fails, report the error; do not start a replacement transcription unless the user explicitly requests a new job.
| Argument | Type | Description |
|---|---|---|
| audio_id* | string | Transcription uuid from transcribe_audio. |
{
"type": "object",
"required": [
"audio_id"
],
"properties": {
"audio_id": {
"type": "string",
"description": "Transcription uuid from transcribe_audio."
}
},
"additionalProperties": false
}Check a video generation started with generate_video. Returns { video: { id, url, status } } — status is "processing" until the video is ready, then "completed" with the download url.
| Argument | Type | Description |
|---|---|---|
| video_id* | number | Video id returned by generate_video. |
{
"type": "object",
"required": [
"video_id"
],
"properties": {
"video_id": {
"type": "number",
"description": "Video id returned by generate_video."
}
},
"additionalProperties": false
}List a page of Easy-Peasy.AI writing templates (presets), optionally filtered by category. Returns slug, title, description, and category, plus total, categories, and next_offset (null on the last page). Use get_template to inspect a known slug directly, then generate_text to run it.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum results to return (default 20, maximum 50). |
| offset | integer | Start position. Use next_offset from the previous result to read another page. |
| category | string | Optional category name to filter templates by. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Maximum results to return (default 20, maximum 50)."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Start position. Use next_offset from the previous result to read another page."
},
"category": {
"type": "string",
"description": "Optional category name to filter templates by."
}
},
"additionalProperties": false
}List a page of text-to-speech voices (id, name, language, accent), including the account’s custom/cloned voices. Filter by language and optionally accent. Returns total and next_offset (null on the last page). Choose a suitable returned id and pass it as voice_id to generate_speech; additional pages are optional.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum results to return (default 20, maximum 50). |
| accent | string | Optional accent filter. |
| offset | integer | Start position. Use next_offset from the previous result to read another page. |
| language | string | Optional language filter, e.g. "Dutch". |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Maximum results to return (default 20, maximum 50)."
},
"accent": {
"type": "string",
"description": "Optional accent filter."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Start position. Use next_offset from the previous result to read another page."
},
"language": {
"type": "string",
"description": "Optional language filter, e.g. \"Dutch\"."
}
},
"additionalProperties": false
}Transcribe audio or video from a public link: a media file, or a page with a video or audio in it — YouTube, X (Twitter) posts and broadcasts, Instagram, TikTok, Google Drive, SoundCloud, Loom and most other video sites (up to 6 hours). ASYNC — returns a uuid once the job has started (checking a page link can take up to a minute); then poll get_transcription until the transcript is ready, which takes a few minutes for a long video. A link without a video or audio, or a private or live one, is usually refused at once with the reason; a download that fails later shows as status "failed" in get_transcription. Requires a paid plan.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public link to an audio/video file, or to a page with a video or audio on it (a YouTube video, an X post, an Instagram reel, a TikTok, a Google Drive file…). |
| name | string | Optional name for the transcription. |
| language | string | Spoken language name in English, e.g. "English" (helps accuracy). |
| detect_speakers | boolean | Label different speakers in the transcript (default true). When off, a YouTube video that has captions is transcribed from them at once. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public link to an audio/video file, or to a page with a video or audio on it (a YouTube video, an X post, an Instagram reel, a TikTok, a Google Drive file…)."
},
"name": {
"type": "string",
"description": "Optional name for the transcription."
},
"language": {
"type": "string",
"description": "Spoken language name in English, e.g. \"English\" (helps accuracy)."
},
"detect_speakers": {
"type": "boolean",
"description": "Label different speakers in the transcript (default true). When off, a YouTube video that has captions is transcribed from them at once."
}
},
"additionalProperties": false
}| generate_audio | boolean | Whether to generate a soundtrack on models with an audio toggle. MiniMax H3 Max always generates audio and cannot accept false. For a silent video, select a model with an audio toggle, such as Veo 3.1 Fast. |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"image": {
"type": "string",
"description": "Optional image URL used as the first frame. With no model, selects MiniMax H3 Max Image. For an explicit model, select the matching Image variant."
},
"model": {
"type": "string",
"description": "Optional video model. Omit for \"MiniMax H3 Max\" (or \"MiniMax H3 Max Image\" when image is supplied). Other examples: \"Veo 3.1\", \"Veo 3.1 Fast\", \"Seedance 2.5\", \"Seedance 2.0 Mini\". An explicit model is used as supplied; choose its Image variant for image-to-video."
},
"prompt": {
"type": "string",
"description": "Description of the video to generate."
},
"duration": {
"type": "string",
"description": "Clip length in seconds as a string. MiniMax H3 Max supports \"5\" through \"15\" (default \"5\"). Veo 3.1 supports only \"4\", \"6\", or \"8\" seconds. Must be supported by the selected model. If omitted, uses a supported model default."
},
"resolution": {
"type": "string",
"description": "Model-dependent output resolution. MiniMax H3 Max supports \"768p\" (default) or \"480p\". Other models may support \"720p\", \"1080p\", or \"2k\"."
},
"aspect_ratio": {
"type": "string",
"description": "Aspect ratio, e.g. \"16:9\" (default), \"9:16\", \"1:1\"."
},
"generate_audio": {
"type": "boolean",
"description": "Whether to generate a soundtrack on models with an audio toggle. MiniMax H3 Max always generates audio and cannot accept false. For a silent video, select a model with an audio toggle, such as Veo 3.1 Fast."
}
},
"additionalProperties": false
}