Skip to main content
Glama
dnshtm9

kenari-media-mcp

by dnshtm9

Edit Image

edit_image

Apply prompt-based edits to a local image, with optional mask and background settings. Upload the image file and receive edited versions saved to disk.

Instructions

Edit a local image via POST /v1/images/edits (multipart: image, mask?, prompt, model, n?, size?, background?). background=transparent is rejected (use generate_image instead).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nNoHow many edited images to produce (integer >= 1). Defaults to 1. Capped by KENARI_MAX_IMAGE_N (default 4). Each image costs IDR.
sizeNoOutput image dimensions, e.g. '1024x1024'. Optional and model-dependent.
modelYesKenari image model id, e.g. 'gpt-image-2'. Call list_media_models first for exact ids and per-image IDR costs.
promptYesWhat to change in the image. Be specific about the edit.
mask_pathNoOptional absolute path to a mask image (multipart 'mask'). Transparent areas of the mask mark where to edit.
backgroundNoBackground handling for the edited result: 'opaque' or 'auto' only. 'transparent' is rejected here — use generate_image instead.
image_pathYesAbsolute path to the local image file to edit (uploaded as multipart 'image').

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoKenari video job id, when relevant to the result or error.
opNoTool operation name the error occurred in.
codeNoMachine-readable code: an error code (e.g. unauthorized, bad_request, upstream_error) or a state marker (e.g. rendering, done, still_rendering).
hintNoHuman-readable remediation hint (e.g. set KENARI_API_KEY).
countNoNumber of images saved.
modelNoKenari image model id used.
pathsNoAbsolute local paths of the saved image files under KENARI_OUTPUT_DIR.
statusNoHTTP status number (on API errors) or the Kenari job status string (on video status results).
disabledNoTrue when video tools are disabled via KENARI_ALLOW_VIDEO=0.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only and not destructive, so the description's extra context about the POST endpoint, multipart structure, and the rejected 'transparent' background adds meaningful behavioral detail. It does not contradict the annotations, and it clarifies one non-obvious failure mode.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence that front-loads the core action and endpoint, then packs optionality and a rejection rule into a parenthetical. There is no filler or repeated schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a fully documented input schema and an output schema, the description is largely complete: it names the endpoint, the required operation, the relevant multipart fields, and the key exception. Minor gaps such as cost or model lookup guidance are covered in the schema itself, so the description does not need to repeat them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by compactly showing the multipart field names and optionality ('image, mask?, prompt, model, n?, size?, background?') and by explaining that 'background=transparent is rejected', which supplements the enum in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Edit a local image via POST /v1/images/edits'. It also distinguishes itself from generate_image by explicitly noting that 'background=transparent is rejected' and directing the agent to the alternative tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: when a local image needs editing. It gives an explicit when-not rule by stating that transparent backgrounds are rejected and points to generate_image as the alternative. It does not enumerate all sibling comparisons, but the primary routing guidance is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dnshtm9/kenari-media-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server