Skip to content

Easy-Peasy.AI

ai.easy-peasy/mcpeasy-peasy.aistreamable-httpv1.3.2Scanned

Generate text, images, videos, speech and transcripts with your Easy-Peasy.AI account.

13 tools: 6 change things and 7 only read.

Tools: 0 delete, 0 irreversible, 6 write, 7 read.
  • Reads private data · 0
  • Reads text others write · 3
  • Can send data out · 1
  • 2 findings

Anlyon alternative

6 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

13 tools

Changes things 6Claude Code: ask
  • generate_imageGenerate or edit an image with Easy-Peasy.AI.Reads text others writeNo findings

    Why it is in this group

    • The name "generate_image" says "generate": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
    • idempotentHint: false
  • generate_speechConvert text to speech (ElevenLabs-powered).No findings

    Why it is in this group

    • The name "generate_speech" says "generate": a word for a change.
    Description, as the server wrote it
    Convert text to speech (ElevenLabs-powered). Synchronous — returns the audio file URL. Billed against the account’s monthly text-to-speech character quota.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: false
  • generate_textGenerate text with an Easy-Peasy.AI template (preset).No findings

    Why it is in this group

    • The name "generate_text" says "generate": a word for a change.
    Description, as the server wrote it
    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": "..."}).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: false
  • generate_videoStart an AI video generation.Reads text others writeNo findings

    Why it is in this group

    • The name "generate_video" says "generate": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
    • idempotentHint: false
  • get_transcriptionGet a transcription started with transcribe_audio using its exact returned uuid and the same connected account.1 finding

    Why it is in this group

    • The name "get_transcription" says "get": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "get_transcription" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_transcription" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: false
  • transcribe_audioTranscribe 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, Soun…Reads text others writeCan send data outNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
    • idempotentHint: false
Only reads 7Show 7 read-only tools
  • display_mediaShow Easy-Peasy.AI images in an embedded gallery or videos in an embedded player.No findings

    Why it is in this group

    • The description's first verb is "show": a word for reading.
    Description, as the server wrote 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_accountCheck connection status only when the user explicitly asks whether Easy-Peasy.AI is connected.1 finding

    Why it is in this group

    • The name "get_account" says "get": a word for reading.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...edge, account deletion, or requests for credentials or personal details; those requests are..."

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_imageGet a previously generated image by its numeric id (returned by generate_image).No findings

    Why it is in this group

    • The name "get_image" says "get": a word for reading.
    Description, as the server wrote it
    Get a previously generated image by its numeric id (returned by generate_image).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_templateGet one text generation template by slug, including its input fields (name, label, type, options).No findings

    Why it is in this group

    • The name "get_template" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_videoCheck a video generation started with generate_video.No findings

    Why it is in this group

    • The name "get_video" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • list_templatesList a page of Easy-Peasy.AI writing templates (presets), optionally filtered by category.No findings

    Why it is in this group

    • The name "list_templates" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • list_voicesList a page of text-to-speech voices (id, name, language, accent), including the account’s custom/cloned voices.No findings

    Why it is in this group

    • The name "list_voices" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data.

Reads private data0
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write3
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out1
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

1 warn1 info
  • The server marks "get_transcription" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_transcription" says "get": a word for reading.

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...edge, account deletion, or requests for credentials or personal details; those requests are..."

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 1.3.2. Values in angle brackets are yours to fill in.

claude mcp add --transport http easy-peasy https://easy-peasy.ai/mcp --header 'x-api-key: <your-x-api-key>'
claude mcp add --transport http easy-peasy https://easy-peasy.ai/mcp --header 'x-api-key: <your-x-api-key>'

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__easy-peasy__get_account",
      "mcp__easy-peasy__list_templates",
      "mcp__easy-peasy__get_template",
      "mcp__easy-peasy__get_image",
      "mcp__easy-peasy__get_video",
      "mcp__easy-peasy__display_media",
      "mcp__easy-peasy__list_voices"
    ],
    "ask": [
      "mcp__easy-peasy__generate_text",
      "mcp__easy-peasy__generate_image",
      "mcp__easy-peasy__generate_video",
      "mcp__easy-peasy__generate_speech",
      "mcp__easy-peasy__transcribe_audio",
      "mcp__easy-peasy__get_transcription"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as easy-peasy. Review it before you use it.

Capability tags behind 3 rules
  • mcp__easy-peasy__generate_image untrusted-input
  • mcp__easy-peasy__generate_video untrusted-input
  • mcp__easy-peasy__transcribe_audio untrusted-input, outbound

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/ai.easy-peasy/mcp/verify?hash=a63882c13e5b74001ac7acc81684916d79dc95f36256b02195bc8fb47609364a" | jq -e '.changed == false'

Pinned hash a63882c13e5b, from Oct 28, 2026, 06:17 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/ai.easy-peasy/mcp/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for ai.easy-peasy/mcp
[![anlyon.dev](https://anlyon.dev/badge/ai.easy-peasy/mcp.svg)](https://anlyon.dev/servers/ai.easy-peasy/mcp)

Source: MCP Registry · repository. Synced Oct 28, 2026, 06:17 UTC.