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.
- 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.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_transcription" says "get": a word for reading.
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".
What this check looks forMatched text
description: "...edge, account deletion, or requests for credentials or personal details; those requests are..."
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.
The server marks "get_transcription" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_transcription" says "get": a word for reading.
- Infoget_account
The description mentions "credentials".
What this check looks forMatched text
description: "...edge, account deletion, or requests for credentials or personal details; those requests are..."
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.
{
"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.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/ai.easy-peasy/mcp)Source: MCP Registry · repository. Synced Oct 28, 2026, 06:17 UTC.