Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.editmamei/editmamei

NPM · EDITMAMEI · SCANNED SEP 20

Photoshop MCP server: natural-language AI photo editing in desktop Photoshop. AI orchestration.

Available components

0 this week 88 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 39 of 115 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency87
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to editmamei/editmamei). View diagnostics → Pass
  • License check failed: the license (FSL-1.1-MIT) isn't a recognized OSI-approved license. See how to fix → Fail
  • Actively maintained (last published 1 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability59
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 28680 tokens (~462/item across 62 items; 62 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management88
  • Stability check failed: the tool surface changed between 1.1.0 and 1.5.0: 8 tool removals, 0 breaking changes, 3 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 62 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.editmamei/editmamei MCP server?

io.github.editmamei/editmamei runs locally as an npm package, launched with npx -y editmamei. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · editmamei

# add to Claude Code
claude mcp add editmamei-editmamei -- npx -y editmamei
// .cursor/mcp.json
{
  "mcpServers": {
    "editmamei-editmamei": {
      "command": "npx",
      "args": [
        "-y",
        "editmamei"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "editmamei-editmamei": {
      "command": "npx",
      "args": [
        "-y",
        "editmamei"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add editmamei-editmamei -- npx -y editmamei
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "editmamei-editmamei": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "editmamei"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add editmamei-editmamei --command npx --arg -y --arg editmamei
# ~/.hermes/config.yaml
mcp_servers:
  editmamei-editmamei:
    command: "npx"
    args: ["-y", "editmamei"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "editmamei-editmamei": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "editmamei"
      ]
    }
  }
}
# add to Vellum
assistant mcp add editmamei-editmamei -t stdio -c npx -a -y editmamei
// mcp.json
{
  "mcpServers": {
    "editmamei-editmamei": {
      "command": "npx",
      "args": [
        "-y",
        "editmamei"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 85 to 88.

  • 19 Sept 26 +26
    • Malware scan: unverified → pass security
    • Judged manipulation: unverified → pass security
    • Schema quality: unverified → excellent functional
  • 18 Sept 26 −25
    • Judged manipulation: pass → unverified security
    • Malware scan: pass → unverified security
    • Schema quality: excellent → unverified functional
    • Package version: 1.4.0 → 1.5.0 functional
  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 71 to 75.

  • 14 Sept 26 −3

    No change was recorded against any check on this day. Stability & Change Management went from 88 to 68.

  • 13 Sept 26 +1
    • CVE-2026-76845 no longer affects this package security
    • Known CVEs: partial → pass security
  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 79 to 83.

  • 9 Sept 26 0
    • CVE-2026-76845 affects this package security
    • Known CVEs: pass → partial security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/editmamei@1.5.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo editmamei/editmamei
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/editmamei/editmamei/.github/workflows/release.yml@refs/heads/main
Rekor log index 2886636615
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:00d87a3ffac9c868ae28d039ae0bfca545b44242cf73cf40367141ccdcfebf0060d03eda3d5673c2e334fa4d50bf3a5f166f82a580e8b2708557b7e11

Background: How many MCP packages publish verified provenance →

Dependencies 115 packages
Packages resolved 115
Stale 39
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 62 exposed · ~28,680 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
ps_shape ~787

Draw a vector SHAPE layer — `rectangle` (optionally rounded via corner_radius), `ellipse`, or `line` — filled with a solid color, optionally stroked. Hoisted out of the active layer's group by default even though the underlying Mk-contentLayer descriptor carries no placement target and would otherwise nest the new layer INSIDE that group (pass into_active_group:true to keep that native nesting). Aim it EITHER by anchor-relational `placement` (preferred: name anchors + a relation and the resolver computes the geometry, verified by an objective gate — no pixel-guessing; rectangle/ellipse ← a region relation, line ← a path relation) OR by ABSOLUTE document pixels (top-left origin: rectangle/ellipse take left/top/right/bottom; line takes start_x/start_y → end_x/end_y plus weight — you must know the pixel positions, so prefer the anchor-relational `placement` path above and verify the result with a preview). Creates a new vector layer (non-destructive — delete it to remove). (AM-only; verified live on PS 27.2.0.)

NameTypeReqDescription
bottomnumberrectangle/ellipse: bounding-box bottom edge, document px.
corner_radiusnumberrectangle only: corner radius in px. 0 (default) = sharp corners; >0 = rounded.
end_xnumberline: end point X, document px.
end_ynumberline: end point Y, document px.
fill_colorobjectFill color (the line color for type=line). RGB 0-255. Default black.
into_active_groupbooleanPhotoshop's Mk-contentLayer descriptor carries no placement target, so with a GROUP active it would natively nest the new shape layer INSIDE that group. Default false hoists the new layer back out so…
leftnumberrectangle/ellipse: bounding-box left edge, document px.
placementobjectANCHOR-RELATIONAL placement (preferred over guessing pixels): rectangle/ellipse ← a region relation (inside/gap) → the resolved region bounding box; line ← a path relation (along/offset-curve over a…
rightnumberrectangle/ellipse: bounding-box right edge, document px.
start_xnumberline: start point X, document px.
start_ynumberline: start point Y, document px.
stroke_colorobjectrectangle/ellipse stroke color when stroke_width>0. RGB 0-255. Default black.
stroke_widthnumberrectangle/ellipse: outline width in px. 0 (default) = no stroke (fill only). Ignored for line (use weight).
topnumberrectangle/ellipse: bounding-box top edge, document px.
typestringyesrectangle: a box (left/top/right/bottom; corner_radius>0 rounds the corners). ellipse: an oval in the left/top/right/bottom bounding box. line: a straight line from (start_x,start_y) to (end_x,end_y)…
weightnumberline only: line thickness in px. Default 4.
NameTypeReqDescription
contextobject
hoistedbooleanTrue when the new layer had to be moved back out of the previously-active group to honor into_active_group:false (the default). False when it landed correctly on its own, or when the move-back itself…
layer_namestring
parent_patharray|nullThe containing-group name chain (outermost first), empty array at the document root.
placementobjectPresent when anchor-relational placement was used: the resolved geometry + gate verdict.
shape_createdboolean
shape_typestring
strokedboolean

No examples provided.

ps_text ~412

Text layer — create it or style it, chosen with `op`. create: a new text layer with `text` at `x`/`y` and `font_size`. set_content/set_font/set_color/set_alignment act on the currently active text layer (throws if it isn't one). Font names accept either the PostScript name ("ArialMT") or family name ("Arial", resolved to its Regular/first variant); throws clearly if no installed font matches. The set_* ops are idempotent.

NameTypeReqDescription
alignmentstringText alignment.
blueintegerBlue component (0-255).
font_namestringFont family name (e.g., "Arial", "Helvetica").
font_sizenumberFont size in points, up to 1296 — Photoshop's own ceiling for the Character panel. create: initial size (default 24). set_font: new size (optional — omit to leave the current size unchanged).
greenintegerGreen component (0-255).
opstringyescreate: new text layer with `text` at `x`/`y` (default 100,100) and `font_size` (default 24). set_content: replace the active text layer's content with `text`. set_font: set the active text layer's f…
redintegerRed component (0-255).
textstringcreate: initial text content. set_content: new text content, replacing the existing text.
xintegerX position in pixels (default 100). Bounded at ±300,000 px.
yintegerY position in pixels (default 100). Bounded at ±300,000 px.
NameTypeReqDescription
alignmentstringop=set_alignment: the alignment applied.
colorstringop=set_color: the RGB() string applied.
contextobject
createdbooleanop=create: true on success.
fontstringop=set_font: the font actually matched.
fontSizenumberop=create: the size applied.
layerNamestringop=create: the new layer name.
matched_bystringop=set_font: how `font_name` was resolved.
positionobjectop=create: {x, y}.
requestedstringop=set_font: the font requested.
sizenumberop=set_font: the size applied, if given.
textstringop=create/set_content: the text content.

No examples provided.

ps_transform_canvas ~177

Transform the whole document (canvas + all layers), not a single layer — choose with `op`. `rotate` spins the canvas by degrees (+cw; pass 90/180/-90 for quarter/half turns). `flip` mirrors the canvas horizontal|vertical. For rotating/flipping ONE layer use ps_transform_layer instead.

NameTypeReqDescription
degreesnumberRotation angle in degrees, positive = clockwise. Any value (incl. 90 / 180 / -90 for quarter/half turns).
opstringyesWhich document-level transform to apply. rotate: spin the whole canvas by degrees (+cw; 90/180/-90 for quarter/half turns). flip: mirror the whole canvas horizontal|vertical.
orientationstring'horizontal' mirrors the canvas left-right; 'vertical' mirrors top-bottom.
NameTypeReqDescription
axisstring
degreesnumber
flipped_canvasboolean
rotated_canvasboolean

No examples provided.

ps_transform_layer ~1,106

Transform the active layer — choose the operation with `op`. `fit` scales to fit (letterbox) or fill (crop) the canvas and centers (idempotent). `scale` does uniform (scale_percent) or non-uniform stretch/squash (scale_x_percent/scale_y_percent) — multiplicative, not idempotent. `move` translates via exactly one of delta (relative), absolute (top-left target), center_on (center target — best for "place inside the frame opening"), or an anchor-relational `placement` (preferred: a point relation → the layer center moves to the resolved, gate-verified point); mixing the raw modes errors. `rotate` rotates by relative degrees around center. `flip` mirrors horizontal/vertical. `skew` slants the layer (skew_h_degrees/skew_v_degrees). `free` is a numeric free-transform (scale + degrees + offset). scale/move/rotate/flip/skew/free auto-promote the background layer (background_promoted=true).

NameTypeReqDescription
absolute_xnumberABSOLUTE mode: target X for the layer's bounds top-left corner, in document pixels. Pair with absolute_y. Use when you know exactly where the top-left should land. Mutually exclusive with delta_* / c…
absolute_ynumberABSOLUTE mode: target Y for the layer's bounds top-left corner, in document pixels. Pair with absolute_x.
axisstring'horizontal' mirrors left-right; 'vertical' mirrors top-bottom.
center_anchorbooleanScale from center (true) or top-left (false). Default: true.
center_on_xnumberCENTER mode: target X for the layer's bounds CENTER point, in document pixels. Pair with center_on_y. Use when placing a layer inside a known region (e.g. a frame opening). Mutually exclusive with de…
center_on_ynumberCENTER mode: target Y for the layer's bounds CENTER point, in document pixels. Pair with center_on_x.
degreesnumberRotation angle in degrees (positive = clockwise, negative = counter-clockwise).
delta_xnumberRELATIVE mode: horizontal pixel offset from the layer's current position. Pair with delta_y. Mutually exclusive with absolute_*/center_on_*.
delta_ynumberRELATIVE mode: vertical pixel offset from the layer's current position. Pair with delta_x.
modestring`fit` (default) scales the layer to fit inside the canvas while preserving aspect — letterboxes on the short edge. `fill` covers the entire canvas — crops on the long edge. Both preserve aspect ratio…
offset_xnumberop=skew/free: horizontal translation in pixels (default 0).
offset_ynumberop=skew/free: vertical translation in pixels (default 0).
opstringyesWhich transform to apply to the active layer. fit: scale to fit/fill the canvas + center (mode fit|fill). scale: uniform scale_percent OR non-uniform scale_x_percent/scale_y_percent (center_anchor).…
placementobjectANCHOR-RELATIONAL move (preferred over guessing a pixel): a POINT relation (centroid/midpoint/offset) → the layer's CENTER is moved to the resolved, gate-verified point (e.g. "center this layer on th…
scale_percentnumberUniform scale percentage (e.g. 50 = 50%, 200 = 200%). Use for proportional scaling.
scale_x_percentnumberNon-uniform: horizontal scale percentage. Pair with scale_y_percent to stretch/squash (the #1 pixel-stretch effect). If only one axis is given the other defaults to 100%.
scale_y_percentnumberNon-uniform: vertical scale percentage. Pair with scale_x_percent.
skew_h_degreesnumberop=skew: horizontal skew (slant) angle in degrees — positive slants the top edge right. At least one of skew_h_degrees / skew_v_degrees is required for op=skew.
skew_v_degreesnumberop=skew: vertical skew (slant) angle in degrees — positive slants the left edge down.
NameTypeReqDescription
applied_delta_xnumber
applied_delta_ynumber
axisstring
background_promotedboolean
contextobject
degreesnumber
fittedboolean
flippedboolean
modestring
movedboolean
newSizeobject
new_boundsobject
originalSizeobject
percentnumber
placementobjectPresent when op=move used anchor-relational placement: the resolved point + gate verdict.
rotate_degreesnumber
rotatedboolean
scaleFactornumber
scalePercentnumber
scale_x_percentnumber
scale_y_percentnumber
scaledboolean
skew_h_degreesnumber
skew_v_degreesnumber
transformedboolean

No examples provided.

ps_undo ~155

Step backward in the document history (equivalent to Ctrl/Cmd+Z). WHEN TO REACH FOR THIS: after an experimental destructive bake (ps_merge mode=visible/flatten, ps_filter op=apply type=*_blur/sharpen/noise) produced a wrong result; after a play_action whose scope you mispredicted; or to revert an entire branch of exploration. Non-destructive workflows (adjustment layers + masks) rarely need this — just tweak/delete the offending layer instead. Reversible via ps_redo as long as no new edit has been made since. Returns current history state, remaining steps, and document context.

NameTypeReqDescription
stepsintegerNumber of steps to undo (default: 1)
NameTypeReqDescription
availableRedoStepsnumber
contextobject
currentHistoryStatestring
redoneboolean
remainingStatesnumber
stepsnumber
undoneboolean

No examples provided.

ps_vector_mask ~376

Attach, remove, (un)link, or (dis/en)able a layer VECTOR MASK — the path-driven, resolution-independent companion to a pixel layer mask. Ops: `add` (from the active path via source=from_current_path — the typical flow after ps_path op=create_from_selection / save — or an empty source=reveal_all/hide_all mask), `delete`, `link`, `unlink`, `disable` (turn the mask off without deleting it), `enable` (turn it back on). **Reach for this when** you want a crisp vector-edged mask rather than a painted pixel mask. `add` needs a non-background layer (and a path for from_current_path); the other ops need a layer that already has a vector mask. (Vector masks are AM-driven; verified live on PS 27.2.0.)

NameTypeReqDescription
opstringyesadd: create a vector mask on the active layer — seeded from the active path (source=from_current_path, needs a path from ps_path) or as an empty reveal_all/hide_all mask (no path needed). delete: rem…
sourcestringadd only: what the vector mask is seeded from. 'from_current_path' = the active work/saved path (needs a path; the main consumer of ps_path). 'reveal_all' = an empty mask that reveals the whole layer…
NameTypeReqDescription
contextobject
layer_namestring
sourcestring
vector_mask_addedboolean
vector_mask_deletedboolean
vector_mask_enabledboolean
vector_mask_linkedboolean

No examples provided.

Common questions

What is the io.github.editmamei/editmamei MCP server?

io.github.editmamei/editmamei is an MCP server listed in the public MCP registry as io.github.editmamei/editmamei. Photoshop MCP server: natural-language AI photo editing in desktop Photoshop. AI orchestration. This page covers its npm package (editmamei).

Is the io.github.editmamei/editmamei MCP server safe to use?

io.github.editmamei/editmamei scores 88 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.editmamei/editmamei MCP server expose?

io.github.editmamei/editmamei exposes 62 tools: ps_ping, ps_list_capabilities, ps_create_document, ps_document, ps_close_document, and 57 more. Their descriptions and schemas cost roughly 28,680 tokens of context every time the server is loaded.

Is the io.github.editmamei/editmamei MCP server still maintained?

io.github.editmamei/editmamei is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.editmamei/editmamei MCP server under?

io.github.editmamei/editmamei declares the FSL-1.1-MIT licence, which is not on the OSI-approved list. Read the terms before using it at work, and note this covers the source only, not the cost of any service it calls.