> ## Documentation Index
> Fetch the complete documentation index at: https://easy-peasy.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools

> The 13 tools exposed by the Easy-Peasy.AI MCP server

Generation tools use the documented [REST API](/docs/api-reference/introduction) and the same account credits and quotas. Viewing saved media and checking video status do not spend generation credits.

| Tool                | Mode      | Description                                                                      |
| ------------------- | --------- | -------------------------------------------------------------------------------- |
| `get_account`       | sync      | Verify an explicitly requested connection check; returns only `connected: true`. |
| `list_templates`    | sync      | List text templates (presets) with slugs and categories.                         |
| `get_template`      | sync      | Input fields of one template (`keywords`, `extra1`…`extra14`).                   |
| `generate_text`     | sync      | Run a template; returns the generated text.                                      |
| `generate_image`    | sync      | Generate or edit an image; returns URL(s). Paid plans only.                      |
| `get_image`         | sync      | Fetch a generated image record by id.                                            |
| `generate_video`    | **async** | Start a video generation; returns an `id`.                                       |
| `get_video`         | sync      | Poll a video by `video_id` until `status` is `completed`.                        |
| `display_media`     | sync      | Show existing images or videos in an embedded gallery or player.                 |
| `list_voices`       | sync      | Text-to-speech voices, including your custom and cloned voices.                  |
| `generate_speech`   | sync      | Text-to-speech; returns the audio URL.                                           |
| `transcribe_audio`  | **async** | Start transcription of an audio or video URL; returns a `uuid`. Paid plans only. |
| `get_transcription` | sync      | Poll a transcription by `audio_id`.                                              |

Expand a tool below for its parameters. Parameters marked with `*` are required.

## Text generation

<AccordionGroup>
  <Accordion title="list_templates" icon="list">
    Lists a page of templates plus the list of categories. Returns `total`, `offset`, and `next_offset` (`null` on the final page).

    | Parameter  | Type    | Description                                                         |
    | ---------- | ------- | ------------------------------------------------------------------- |
    | `category` | string  | Optional category name to filter by.                                |
    | `limit`    | integer | Maximum results, default `20`, maximum `50`.                        |
    | `offset`   | integer | Start position, default `0`. Use the previous page's `next_offset`. |
  </Accordion>

  <Accordion title="get_template" icon="circle-info">
    Returns one template with its input fields (name, label, type, options). Field names such as `keywords` and `extra1`…`extra14` map directly onto `generate_text` parameters.

    | Parameter | Type   | Description                          |
    | --------- | ------ | ------------------------------------ |
    | `slug` \* | string | Template slug from `list_templates`. |
  </Accordion>

  <Accordion title="generate_text" icon="pen">
    Runs a template and returns the generated text. Uses the account word quota and API token allowance.

    | Parameter      | Type   | Description                                                                      |
    | -------------- | ------ | -------------------------------------------------------------------------------- |
    | `preset` \*    | string | Template slug, for example `blog-post-intro`.                                    |
    | `keywords`     | string | Main topic or input text. Required by almost every template.                     |
    | `tone`         | string | Tone of voice, for example `Friendly`.                                           |
    | `language`     | string | Output language name in English, for example `Spanish`.                          |
    | `outputs`      | number | How many variations to generate (default `1`).                                   |
    | `extra_fields` | object | Template-specific fields keyed by field name, for example `{"extra1": "value"}`. |
  </Accordion>
</AccordionGroup>

<Tip>
  Call `get_template` before `generate_text` so the agent knows which `extra_fields` a template expects.
</Tip>

## Images

<AccordionGroup>
  <Accordion title="generate_image" icon="image">
    Generates or edits an image and waits for the result — this can take a few minutes. Uses image credits and requires a paid plan.

    | Parameter       | Type      | Description                                                                  |
    | --------------- | --------- | ---------------------------------------------------------------------------- |
    | `prompt` \*     | string    | Description of the image.                                                    |
    | `model`         | string    | Model name, for example `Nano Banana 2`, `FLUX.2 [max]`, `Seedream 5.0 Pro`. |
    | `dimensions`    | string    | Size as `WIDTHxHEIGHT`, for example `1024x1024` (default).                   |
    | `outputs`       | number    | Number of images (default `1`).                                              |
    | `style`         | string    | Optional style preset name.                                                  |
    | `resolution`    | string    | `1K` or `2K`, for models that support it.                                    |
    | `source_images` | string\[] | Up to 10 image URLs to edit or transform (image-to-image).                   |
  </Accordion>

  <Accordion title="get_image" icon="magnifying-glass">
    | Parameter     | Type   | Description                                    |
    | ------------- | ------ | ---------------------------------------------- |
    | `image_id` \* | number | Numeric image id returned by `generate_image`. |
  </Accordion>
</AccordionGroup>

## Video

<AccordionGroup>
  <Accordion title="generate_video" icon="video">
    Starts a generation and returns an id immediately. Defaults to MiniMax H3 Max, the same video model used by Marky Agent: 5 seconds at 768p with native audio, billed at 4 credits per second at 768p. With a first-frame image and no model, uses MiniMax H3 Max Image.

    | Parameter        | Type    | Description                                                                                                                                                                                                                          |
    | ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
    | `prompt` \*      | string  | Description of the video.                                                                                                                                                                                                            |
    | `model`          | string  | Omit for `MiniMax H3 Max`, or `MiniMax H3 Max Image` when `image` is supplied. You can explicitly select another model, for example `Veo 3.1`, `Veo 3.1 Fast`, or `Seedance 2.5`.                                                    |
    | `duration`       | string  | MiniMax H3 Max accepts `"5"` through `"15"` (default `"5"`). Veo 3.1 text models accept `"4"`, `"6"`, or `"8"`; their Image variants accept only `"8"`. A trailing `s` is also accepted. If omitted, uses a supported model default. |
    | `aspect_ratio`   | string  | For example `16:9` (default), `9:16`, `1:1`.                                                                                                                                                                                         |
    | `resolution`     | string  | MiniMax H3 Max supports `768p` (default) or `480p`. Other models may support `720p`, `1080p`, or `2k`.                                                                                                                               |
    | `image`          | string  | First-frame URL. With no `model`, selects MiniMax H3 Max Image. When you supply a model, choose its Image variant, such as `Veo 3.1 Fast Image`.                                                                                     |
    | `generate_audio` | boolean | Controls sound on models with an audio toggle. MiniMax H3 Max always generates audio; `false` returns an error before generation. For a silent video, explicitly select a model with an audio toggle, such as Veo 3.1 Fast.          |
  </Accordion>

  <Accordion title="get_video" icon="clock">
    Returns `{ video: { id, url, status } }`. `status` stays `processing` until the video is ready, then becomes `completed` with a download `url`.

    | Parameter     | Type   | Description                      |
    | ------------- | ------ | -------------------------------- |
    | `video_id` \* | number | Id returned by `generate_video`. |
  </Accordion>
</AccordionGroup>

## Display images and videos

<Accordion title="display_media" icon="images">
  Shows saved images in a gallery or videos in a player in clients that support MCP Apps. Use IDs returned by `generate_image`, `get_image`, `generate_video`, or `get_video`.

  | Parameter       | Type       | Description                                                                                  |
  | --------------- | ---------- | -------------------------------------------------------------------------------------------- |
  | `media_type` \* | string     | `image` or `video`.                                                                          |
  | `ids` \*        | integer\[] | One to eight existing IDs owned by your connected account. Duplicate IDs are displayed once. |

  The viewer includes an original-file link. For processing videos, it checks the same ID every 15 seconds for up to five minutes, then offers **Check status**. It never starts a new generation or spends generation credits.

  Clients without embedded UI support still receive the media URLs. Refresh your connector's tool list if `display_media` is missing.
</Accordion>

Image and video tools also return `structuredContent.media`, an array with each result's `id`, `type`, `url`, and `status`. Optional fields include `prompt`, `model`, and `used_credits` when available. Text results remain available for other MCP clients.

## Speech

<AccordionGroup>
  <Accordion title="list_voices" icon="microphone-lines">
    Returns a page of voices with id, name, language, and accent, including your custom and cloned voices. Returns `total`, `offset`, and `next_offset` (`null` on the final page).

    | Parameter  | Type    | Description                                                         |
    | ---------- | ------- | ------------------------------------------------------------------- |
    | `language` | string  | Optional language filter, for example `Dutch`.                      |
    | `accent`   | string  | Optional accent filter.                                             |
    | `limit`    | integer | Maximum results, default `20`, maximum `50`.                        |
    | `offset`   | integer | Start position, default `0`. Use the previous page's `next_offset`. |
  </Accordion>

  <Accordion title="generate_speech" icon="volume-high">
    Converts text to speech and returns the audio file URL. Billed against the monthly text-to-speech character quota.

    | Parameter       | Type   | Description                                             |
    | --------------- | ------ | ------------------------------------------------------- |
    | `text` \*       | string | Text to speak.                                          |
    | `voice_id` \*   | string | Voice id from `list_voices`.                            |
    | `speed`         | number | Playback speed between `0.7` and `1.2` (default `1.0`). |
    | `output_format` | string | For example `mp3_44100_128` (default) or `wav`.         |
  </Accordion>
</AccordionGroup>

## Transcription

<AccordionGroup>
  <Accordion title="transcribe_audio" icon="waveform">
    Starts a transcription of an audio or video file and returns a uuid immediately. Requires a paid plan.

    | Parameter         | Type    | Description                                                                |
    | ----------------- | ------- | -------------------------------------------------------------------------- |
    | `url` \*          | string  | Public URL of the audio or video file.                                     |
    | `language`        | string  | Spoken language name in English, for example `English`. Improves accuracy. |
    | `detect_speakers` | boolean | Label different speakers (default `true`).                                 |
    | `name`            | string  | Optional name for the transcription.                                       |
  </Accordion>

  <Accordion title="get_transcription" icon="file-lines">
    The `content` field stays empty until the transcription finishes. Reuse the exact UUID and the same connected account. Report a missing or failed job; do not create a replacement unless the user asks for a new transcription.

    | Parameter     | Type   | Description                                 |
    | ------------- | ------ | ------------------------------------------- |
    | `audio_id` \* | string | Transcription uuid from `transcribe_audio`. |
  </Accordion>
</AccordionGroup>

## Async tools

`generate_video` and `transcribe_audio` return an id immediately instead of waiting for the result. Use `display_media` for a video viewer that checks progress, or poll the matching `get_video` or `get_transcription` tool every 15–30 seconds until the result is ready. Always reuse the original ID.

Videos typically take 1–5 minutes depending on model, duration, and resolution.

## Account

<Accordion title="get_account" icon="user">
  Takes no parameters and returns `{ "connected": true }`. Use it only when the user asks to verify their connection. It does not return an account ID, email, name, API key, or OAuth token, and it does not check quota or support account deletion.
</Accordion>
