Editmamei CE: Photoshop MCP server for natural-language AI photo editing.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http
verified
reported
listed in the official MCP registry counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 47a185f · analyzer v33 · 1w ago
skills & prompt files 1
danger signals2
- dynamic code execution new Function() editmamei-editmamei-47a185f/tests/unit/extendscript-helpers.test.ts :353
const fn = new Function( - dynamic code execution new Function() editmamei-editmamei-47a185f/tests/unit/photoshop-api.test.ts :124
return new Function(`${source}\nreturn __mcpJsonEncode;`)() as (v: unknown) => string;
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 496
filesystem 91
- fs (weak) editmamei-editmamei-47a185f/scripts/build-mcpb.ts :32
} from 'node:fs'; - fs (weak) editmamei-editmamei-47a185f/scripts/build-skill-zip.ts :20
import { existsSync, mkdirSync, statSync } from 'node:fs'; - fs (weak) editmamei-editmamei-47a185f/scripts/lib/build-common.ts :24
} from 'node:fs'; - fs editmamei-editmamei-47a185f/src/api/snippet-client.ts :16
import { chmodSync, statSync } from 'node:fs'; - fs editmamei-editmamei-47a185f/src/cli/clients/cursor.ts :13
import { existsSync } from 'node:fs'; - fs editmamei-editmamei-47a185f/src/cli/clients/json-config.ts :21
import { copyFile, mkdir, readFile, rename, unlink, writeFile } from 'node:fs/promises'; - fs editmamei-editmamei-47a185f/src/cli/downloads-dir.ts :24
import { existsSync } from 'node:fs'; - fs editmamei-editmamei-47a185f/src/cli/install.ts :20
import { copyFileSync, existsSync, mkdirSync } from 'node:fs'; - fs editmamei-editmamei-47a185f/src/core/settings.ts :17
import { existsSync, mkdirSync, readFileSync, writeFileSync, renameSync } from 'node:fs'; - fs editmamei-editmamei-47a185f/src/delivery/bundle.ts :20
import { mkdirSync, writeFileSync } from 'node:fs'; - fs editmamei-editmamei-47a185f/src/delivery/store.ts :35
} from 'node:fs'; - fs editmamei-editmamei-47a185f/src/detection/detect-active-doc.ts :10
import { readFile } from 'node:fs/promises';
show 28 more
- fs editmamei-editmamei-47a185f/src/detection/runtime.ts :26
import { existsSync, readFileSync } from 'node:fs'; - fs editmamei-editmamei-47a185f/src/diagnostics/collect.ts :23
import { readFile, readdir, writeFile, mkdir } from 'node:fs/promises'; - fs editmamei-editmamei-47a185f/src/index.ts :3
import { realpathSync } from 'node:fs'; - fs editmamei-editmamei-47a185f/src/kernel/module-lifecycle.ts :18
import { existsSync } from 'node:fs'; - fs editmamei-editmamei-47a185f/src/license/store.ts :13
import { existsSync, mkdirSync, readFileSync, writeFileSync, renameSync, rmSync } from 'node:fs'; - fs editmamei-editmamei-47a185f/src/perception/sky-mask-transfer.ts :26
import * as fs from 'node:fs/promises'; - fs editmamei-editmamei-47a185f/src/platform/macos-detector.ts :3
import { access, constants, readFile } from 'fs/promises'; - fs editmamei-editmamei-47a185f/src/platform/windows-detector.ts :3
import { access, constants } from 'fs/promises'; - fs editmamei-editmamei-47a185f/src/telemetry/outbox.ts :37
} from 'node:fs'; - fs editmamei-editmamei-47a185f/src/telemetry/sanitize.ts :15
import { realpathSync } from 'node:fs'; - fs editmamei-editmamei-47a185f/src/tools/preview-tools.ts :1
import { readFile } from 'node:fs/promises'; - fs editmamei-editmamei-47a185f/src/tools/selection-tools.ts :1
import { readFile } from 'node:fs/promises'; - fs editmamei-editmamei-47a185f/src/utils/exif-reader.ts :1
import { open, FileHandle } from 'node:fs/promises'; - fs editmamei-editmamei-47a185f/src/utils/session-log-reader.ts :1
import { readFile, readdir, stat } from 'node:fs/promises'; - fs editmamei-editmamei-47a185f/src/utils/session-log.ts :1
import { mkdir, open } from 'node:fs/promises'; - fs editmamei-editmamei-47a185f/src/utils/temp.ts :1
import * as fs from 'node:fs/promises'; - fs editmamei-editmamei-47a185f/src/utils/template-storage.ts :1
import { mkdir, readFile, readdir, rm, writeFile } from 'node:fs/promises'; - fs (weak) editmamei-editmamei-47a185f/tests/api/snippet-client.test.ts :10
} from 'node:fs'; - fs (weak) editmamei-editmamei-47a185f/tests/cli/activate.test.ts :2
import { mkdtempSync, rmSync } from 'node:fs'; - fs (weak) editmamei-editmamei-47a185f/tests/cli/config.test.ts :2
import { mkdtemp, rm } from 'node:fs/promises'; - fs (weak) editmamei-editmamei-47a185f/tests/cli/cursor.test.ts :10
} from 'node:fs'; - fs (weak) editmamei-editmamei-47a185f/tests/cli/downloads-dir.test.ts :2
import { mkdirSync, rmSync } from 'node:fs'; - fs (weak) editmamei-editmamei-47a185f/tests/cli/install.test.ts :2
import { mkdirSync, mkdtempSync, rmSync, readFileSync, writeFileSync, existsSync } from 'node:fs'; - fs (weak) editmamei-editmamei-47a185f/tests/cli/license-status.test.ts :2
import { mkdtempSync, rmSync } from 'node:fs'; - fs (weak) editmamei-editmamei-47a185f/tests/cli/repair.test.ts :2
import { mkdtempSync, rmSync } from 'node:fs'; - fs (weak) editmamei-editmamei-47a185f/tests/cli/router.test.ts :2
import { mkdtempSync, rmSync } from 'node:fs'; - fs (weak) editmamei-editmamei-47a185f/tests/core/server-module-load.test.ts :2
import { mkdtempSync, mkdirSync, writeFileSync, readFileSync, rmSync } from 'node:fs'; - fs (weak) editmamei-editmamei-47a185f/tests/core/settings.test.ts :2
import { mkdtemp, rm, readFile, writeFile } from 'node:fs/promises';
51 more not shown — this panel samples each group; the count above is the real total.
shell / exec 13
- shell (weak) editmamei-editmamei-47a185f/scripts/build-mcpb.ts :23
import { spawnSync } from 'node:child_process'; - shell (weak) editmamei-editmamei-47a185f/scripts/lib/build-common.ts :12
import { spawnSync } from 'node:child_process'; - shell editmamei-editmamei-47a185f/src/api/snippet-client.ts :11
* Phase 0: per-call spawn (one short-lived process per snippet build), reusing - shell editmamei-editmamei-47a185f/src/cli/clients/shell.ts :12
import { spawn } from 'node:child_process'; - shell editmamei-editmamei-47a185f/src/platform/macos-detector.ts :1
import { execFile } from 'child_process'; - shell editmamei-editmamei-47a185f/src/platform/macos-runner.ts :1
import { exec, spawn } from 'child_process'; - shell editmamei-editmamei-47a185f/src/platform/run-child.ts :38
import * as cp from 'node:child_process'; - shell editmamei-editmamei-47a185f/src/platform/windows-detector.ts :1
import { exec } from 'child_process'; - shell editmamei-editmamei-47a185f/src/platform/windows-runner.ts :1
import { exec, spawn } from 'child_process'; - shell (weak) editmamei-editmamei-47a185f/tests/api/snippet-client.test.ts :15
import type { ChildProcess } from 'node:child_process'; - shell (weak) editmamei-editmamei-47a185f/tests/integration/public-tree-guard.test.ts :24
import { execFileSync } from 'node:child_process'; - shell (weak) editmamei-editmamei-47a185f/tests/platform/run-child.test.ts :3
import type { ChildProcess } from 'node:child_process';
show 1 more
- shell (weak) editmamei-editmamei-47a185f/tests/platform/windows-detector.test.ts :26
const actual = await importOriginal<typeof import('child_process')>();
network 10
- net editmamei-editmamei-47a185f/src/cli/activate.ts :14
/** Override the delivery config/fetch (tests / localhost wrangler dev). */ - net editmamei-editmamei-47a185f/src/cli/repair.ts :22
/** Override the delivery config/fetch (tests / localhost wrangler dev). */ - net editmamei-editmamei-47a185f/src/delivery/client.ts :121
fetch(url, init) as unknown as Promise<DeliveryResponse>; - net editmamei-editmamei-47a185f/src/delivery/provision.ts :75
/** Injected delivery fetch (tests). */ - net editmamei-editmamei-47a185f/src/index.ts :56
* Release Node's global fetch (undici) connection pool before a CLI exit. - net editmamei-editmamei-47a185f/src/license/entitlement.ts :112
/** Injected fetch (tests). Defaults to global fetch. */ - net editmamei-editmamei-47a185f/src/telemetry/transport.ts :39
const res = await fetch(url, { - net editmamei-editmamei-47a185f/src/update/check.ts :133
const res = await fetch(url, { - net (weak) editmamei-editmamei-47a185f/tests/fixtures/fake-delivery.ts :25
/** A localhost delivery config for the fake fetch (any non-empty baseUrl works). */ - net (weak) editmamei-editmamei-47a185f/tests/license/env-activation.test.ts :218
it('module already installed → does NOT re-fetch (no per-boot network)', async () => {
install hooks 1
- prepare editmamei-editmamei-47a185f/package.json :48
npm run build
declared dependencies 16
- @modelcontextprotocol/sdk@^1.0.4
- adm-zip@^0.6.0
- jpeg-js@^0.4.4
- onnxruntime-web@1.29.0
- @eslint/js@^10.0.1
- @types/node@^22.20.1
- @typescript-eslint/eslint-plugin@^8.68.0
- @typescript-eslint/parser@^8.20.0
- @vitest/coverage-v8@^4.1.11
- esbuild@^0.28.2
- eslint@^10.9.1
- globals@^17.11.0
show 4 more
- prettier@^3.9.6
- tsx@^4.23.13
- typescript@^5.7.3
- vitest@^4.1.7