Atlas / MCP servers / kiarosama / Numera-Image-Gen-MCP

Numera-Image-Gen-MCPCAUTION

mcp/kiarosama/numera-image-gen-mcp

Local TypeScript MCP server for provider-independent image generation and editing, with OmniRoute, 9router, native image APIs, and ComfyUI adapters.

Verdict
CAUTION
Grade
B
Trust score
82 /100
Exposed tools
8 8r · 0w · 0d
Transport
stdio
License
GPL-3.0
Stars
2
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://github.com/KiaroSama/Numera-Image-Gen-MCP/actions/workflows/ci.yml) [](LICENSE) [](package.json) [](tsconfig.json) [](package.json) [](docs/ARCHITECTURE.md) [](docs/WINDOWS-WSL.md) [](.github/workflows/ci.yml) [](schemas/config.schema.json) [](src/files/images.ts) [](src/jobs/store.ts) [](docs/CONFIGURATION.md) [](package-lock.json) [](#donate)

A local provider-independent image generation/editing MCP server. Keep your host chat model unchanged; image work is an explicitly selected tool operation. Named connections, separate OmniRoute/9router profiles, native image protocols and configured GPU ComfyUI workflows. No paid POST retries, hidden uploads, prompt enhancement or automatic provider/model fallback.

Status: published offline-tested implementation on Windows, Linux and macOS. Windows332 tests pass/3 POSIX-only skipped; Linux/macOS334 pass/1 Windows-only DPAPI skipped.

Read from source at commit 10b232c79a56OBSERVED · 2026-10-11
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add numera-image-gen-mcp -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "numera-image-gen-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ]
    }
  }
}
03

Exposed tools (8)

8 read · 0 write · 0 destructive.

ToolRiskDescription
cancel_jobread
get_jobread
get_model_capabilitiesread
get_output_inforead
health_checkread
list_connectionsread
list_modelsread
list_outputsread
04

Trust audit

CAUTIONgrade B · trust 82/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (2 observation(s))
Network
declared (2 observation(s))
Shell
declared (2 observation(s))
Dependencies
pinned
Secrets in source
found

Findings (19)

MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
src/config/env.ts:51
const trivia = /^[\s]*(?:#[^\r\n]*(?:\r?\n|$))?/.exec(
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/integration/simple-config.test.ts:234
api_key: "synthetic-responses-key",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/unit/simple-config.test.ts:17
api_key: "fixture-local-key-not-real",
LOWInventory / provenance · inv.hidden_file · CWE-1104
.graphifyignore
.graphifyignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/config/load.ts:12
new URL("../../config.local.json", import.meta.url),
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/config/load.ts:23
new URL("../../.env", import.meta.url),
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/contract/adapters.test.ts:2
import { connectionSchema, requestSchema } from "../../src/config/schema.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/contract/adapters.test.ts:3
import { buildRequest, normalize } from "../../src/adapters/index.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/contract/adapters.test.ts:4
import { effectiveRequest } from "../../src/capabilities.js";
LOWNetwork egress · net.metadata_ip · CWE-200, CWE-319
tests/unit/images.test.ts:380
"169.254.169.254",
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/OMNIROUTE.md:3
Owner example: `http://127.0.0.1:20100/v1`, api-prefix, independent declared key. No gateway settings
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/fixtures/runtime.ts:155
const result = await run(`http://127.0.0.1:${address.port}`);
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/integration/mcp.test.ts:54
baseUrl: `http://127.0.0.1:${address.port}/v1`,
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/integration/review-fixes.test.ts:167
url: "http://127.0.0.1/never-fetch",
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/unit/foundation.test.ts:8
"http://127.0.0.1:20100/v1",
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
README.md:144
| `API_KEY`             | Private credential for that endpoint. Gemini profiles send `x-goog-api-key`; other compact profiles send bearer authentication. Never paste a real key into host config, promp
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
INFOInventory / provenance · inv.oversize · CWE-1104
docs/assets/logo.png
docs/assets/logo.png
Why it matters. 1031073 bytes not read
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
README.md:494
| API401/403                         | Selected endpoint/key/account; never paste keys or read another application's credential store                                     |
Why it matters. asks the agent to read credentials

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha 10b232c79a56full audit observations/trust-audit/mcp-server/kiarosama__numera-image-gen-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-1110b232c79a56CAUTIONB82first audit
06

Questions

What is the Numera-Image-Gen-MCP MCP server?

Local TypeScript MCP server for provider-independent image generation and editing, with OmniRoute, 9router, native image APIs, and ComfyUI adapters.

What tools does Numera-Image-Gen-MCP expose?

8 in total: 8 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Numera-Image-Gen-MCP safe to connect to an agent?

With care. The audit graded it B (82/100) and found 19 things worth knowing before you trust this server, listed below with the exact line each was found on.

What credentials does Numera-Image-Gen-MCP need?

No credential environment variables were found in its source, so it appears to need none.

How does Numera-Image-Gen-MCP run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as numera-image-gen-mcp at 0.1.0.

How current is this page?

The grade is for one exact copy of the source (10b232c79a56), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement