# Kokon (npm · kokon-mcp)

Generate and edit images offline with Qwen-Image 2.1 on your GPU. Needs the Kokon desktop app.

- Trust score: 78/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- npm · `kokon-mcp`: 78/100 (this document), [markdown](https://verifymcp.io/servers/gabrielelozupone-kokon/kokon-mcp.md), [page](https://verifymcp.io/servers/gabrielelozupone-kokon/kokon-mcp)

## Channel facts

- Registry: `npm`
- Package: `kokon-mcp`
- Version: `0.12.0`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (AGPL-3.0-only).
  - Actively maintained (last published 0 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 57/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2354 tokens (~294/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 73/100
  - Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 94/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 82% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Kokon MCP server?

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

### Claude

```bash
claude mcp add gabrielelozupone-kokon -- npx -y kokon-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "gabrielelozupone-kokon": {
      "command": "npx",
      "args": [
        "-y",
        "kokon-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "gabrielelozupone-kokon": {
      "command": "npx",
      "args": [
        "-y",
        "kokon-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add gabrielelozupone-kokon -- npx -y kokon-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "gabrielelozupone-kokon": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "kokon-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add gabrielelozupone-kokon --command npx --arg -y --arg kokon-mcp
```

### Hermes

```yaml
mcp_servers:
  gabrielelozupone-kokon:
    command: "npx"
    args: ["-y", "kokon-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "gabrielelozupone-kokon": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "kokon-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add gabrielelozupone-kokon -t stdio -c npx -a -y kokon-mcp
```

### Other

```json
{
  "mcpServers": {
    "gabrielelozupone-kokon": {
      "command": "npx",
      "args": [
        "-y",
        "kokon-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-04 (score 77, 0)

- [security regression] Tool safety: pass → unverified
- [security regression] Stability: 0.67 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] Package version: 0.11.1 → 0.12.0

### 2026-11-03 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 73, +15)

- [security improvement] Malware scan: unverified → pass
- [functional] Package version: 0.9.1 → 0.11.1

### 2026-10-26 (score 58, −15)

- [security regression] Malware scan: pass → unverified
- [functional] Package version: 0.11.0 → 0.11.1

## MCP tools (8)

### `generate_image` (~569 tokens)

Generate image

Generate an image from a text prompt with the local Qwen-Image 2.1 model, optionally using reference images (a person, a product, a style) in a new scene. Write the full, detailed prompt yourself (see the prompt field): it is used as is. Dimensions are chosen automatically (aspect ratio can be inferred from the prompt, e.g. '16:9 hero image') unless width/height or aspect_ratio are given. Returns the absolute path of the saved PNG. Runs fully offline; typically 45 s–4 min.

Input parameters:

- `aspect_ratio` (string): Aspect ratio such as 1:1, 4:3, 3:4, 16:9, 9:16, or auto (inferred from the prompt)
- `height` (integer): Output height in pixels (needs width too).
- `include_preview` (boolean): Also return a small JPEG preview in the tool result. Default false: images stay local and are not sent to the model.
- `output_path` (string): Optional destination (absolute, or relative to the project). Must be inside the project or the app output folder. Existing files are never overwritten; a numbered name is used instead.
- `prompt` (string, required): The final prompt, written by you in English and used as is (Kokon does not rewrite it): one paragraph of about 60-200 words describing the finished image: medium and style first, the subject and what…
- `quality` (string): All run Qwen-Image 2.1 Turbo (8 steps): fast = ~1 MP (the default, fastest); balanced = ~1.5K; quality = native 2K (slowest; edits share 2K with their references)
- `reference_images` (array): Optional images the new image uses (a person, a product, a place, a style), in order; refer to them as image 1, image 2, ... in the prompt. The output is sized like any new image, not like the refere…
- `seed` (integer): Seed for reproducible results; omit or -1 for random
- `width` (integer): Output width in pixels (needs height too). Omit to choose automatically.

### `edit_image` (~361 tokens)

Edit image

Edit an existing image with a natural-language instruction (e.g. 'make the background nighttime, keep the foreground unchanged'). Preserves the input's width, height and aspect ratio by default. The input file is never overwritten.

Input parameters:

- `image_path` (string, required): Image to edit (absolute, or relative to the project)
- `include_preview` (boolean): Also return a small JPEG preview in the tool result. Default false: images stay local and are not sent to the model.
- `output_path` (string): Optional destination (absolute, or relative to the project). Must be inside the project or the app output folder. Existing files are never overwritten; a numbered name is used instead.
- `preserve_dimensions` (boolean): Keep the input's exact width/height (default true)
- `prompt` (string, required): The edit instruction, written by you in English and used as is (Kokon does not rewrite it): start with the operation (Change, Replace, Remove, Add, Turn...), say exactly what changes, where, and what…
- `quality` (string): All run Qwen-Image 2.1 Turbo (8 steps): fast = ~1 MP (the default, fastest); balanced = ~1.5K; quality = native 2K (slowest; edits share 2K with their references)
- `seed` (integer): Seed for reproducible results; omit or -1 for random. Never reuse the seed the source image was generated with: use a different one or omit it

### `edit_images` (~455 tokens)

Edit with multiple references

Edit image 1 with the help of other images (up to 10 in all) and an instruction, e.g. put the product from image 2 in the hand of the person in image 1. Order matters: refer to them as image 1, image 2, ... in the prompt. The output follows image 1's aspect ratio unless width/height or aspect_ratio are given. For a new scene that only uses the images as references, use generate_image with reference_images.

Input parameters:

- `aspect_ratio` (string): Aspect ratio such as 1:1, 4:3, 3:4, 16:9, 9:16, or auto (inferred from the prompt)
- `height` (integer)
- `image_paths` (array, required): Reference images in order; refer to them as image 1, image 2, ... in the prompt
- `include_preview` (boolean): Also return a small JPEG preview in the tool result. Default false: images stay local and are not sent to the model.
- `output_path` (string): Optional destination (absolute, or relative to the project). Must be inside the project or the app output folder. Existing files are never overwritten; a numbered name is used instead.
- `prompt` (string, required): The edit instruction, written by you in English and used as is (Kokon does not rewrite it): image 1 is the image being changed; start with Place or Combine, say what is taken from each image (image 2…
- `quality` (string): All run Qwen-Image 2.1 Turbo (8 steps): fast = ~1 MP (the default, fastest); balanced = ~1.5K; quality = native 2K (slowest; edits share 2K with their references)
- `seed` (integer): Seed for reproducible results; omit or -1 for random. Never reuse the seed the source image was generated with: use a different one or omit it
- `width` (integer)

### `outpaint_image` (~298 tokens)

Expand image (outpaint)

Extend an image beyond its borders. Give the expansion per side in pixels or percent; the canvas, mask and model-aligned sizes are built automatically and the original pixels are preserved exactly.

Input parameters:

- `bottom` (number)
- `image_path` (string, required)
- `include_preview` (boolean): Also return a small JPEG preview in the tool result. Default false: images stay local and are not sent to the model.
- `left` (number)
- `output_path` (string): Optional destination (absolute, or relative to the project). Must be inside the project or the app output folder. Existing files are never overwritten; a numbered name is used instead.
- `prompt` (string, required): What the extended area should contain
- `quality` (string): All run Qwen-Image 2.1 Turbo (8 steps): fast = ~1 MP (the default, fastest); balanced = ~1.5K; quality = native 2K (slowest; edits share 2K with their references)
- `right` (number)
- `seed` (integer): Seed for reproducible results; omit or -1 for random. Never reuse the seed the source image was generated with: use a different one or omit it
- `top` (number)
- `units` (string): Units for left/right/top/bottom; percent is relative to the image width (left/right) or height (top/bottom)

### `inpaint_image` (~355 tokens)

Inpaint image

Change only the masked area of an image (mask: white = change, black = keep): edit it, remove what is there, replace it, or add something inside it. The model is shown the area marked on a copy of the image; pixels outside the mask are preserved exactly.

Input parameters:

- `action` (string): edit: change the area as the prompt says; remove: erase what is there and fill with background (prompt optional, e.g. 'the bin'); replace: put the prompt's subject in its place; add: add the prompt's…
- `image_path` (string, required)
- `include_preview` (boolean): Also return a small JPEG preview in the tool result. Default false: images stay local and are not sent to the model.
- `mask_path` (string, required): Mask image: white = area to change, black = keep (or opaque strokes on a transparent layer)
- `output_path` (string): Optional destination (absolute, or relative to the project). Must be inside the project or the app output folder. Existing files are never overwritten; a numbered name is used instead.
- `prompt` (string): The change, or the subject to add/replace with; optional for remove
- `quality` (string): All run Qwen-Image 2.1 Turbo (8 steps): fast = ~1 MP (the default, fastest); balanced = ~1.5K; quality = native 2K (slowest; edits share 2K with their references)
- `seed` (integer): Seed for reproducible results; omit or -1 for random. Never reuse the seed the source image was generated with: use a different one or omit it

### `upscale_image` (~235 tokens)

Upscale image

Enlarge an image (default 2x, or to a width/height up to 8192 px). Runs the upscaler model chosen in Kokon (Superscale-SP by default; seconds on a PC GPU, longer on a Mac; adds no new content). Saves a new file; the input is never overwritten.

Input parameters:

- `height` (integer): Target height in pixels; width follows the aspect ratio unless also given
- `image_path` (string, required): Image to upscale (absolute, or relative to the project)
- `include_preview` (boolean): Also return a small JPEG preview in the tool result. Default false: images stay local and are not sent to the model.
- `output_path` (string): Optional destination (absolute, or relative to the project). Must be inside the project or the app output folder. Existing files are never overwritten; a numbered name is used instead.
- `scale` (number): Enlargement factor, e.g. 2 (default 2 when no width/height is given)
- `width` (integer): Target width in pixels; height follows the aspect ratio unless also given

### `get_image_info` (~48 tokens)

Image info

Width, height, aspect ratio, file type and, for images made by Kokon, the generation metadata (prompt, seed, model, steps...).

Input parameters:

- `image_path` (string, required)

### `get_generator_status` (~33 tokens)

Generator status

Whether the local inference server is running and the model loaded, GPU and VRAM, the active job and the queue.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/gabrielelozupone-kokon/kokon-mcp#diagnostics

## Score history

- 2026-11-05: 78
- 2026-11-04: 77
- 2026-11-03: 77
- 2026-11-02: 76
- 2026-11-01: 76
- 2026-10-31: 75
- 2026-10-30: 75
- 2026-10-29: 74
- 2026-10-28: 74
- 2026-10-27: 73
- 2026-10-26: 58
- 2026-10-25: 73
- 2026-10-24: 57
- 2026-10-23: 57
- 2026-10-22: 71
- 2026-10-21: 71
- 2026-10-20: 55
- 2026-10-19: 70
- 2026-10-18: 69
- 2026-10-17: 69
- 2026-10-16: 69
- 2026-10-15: 68
- 2026-10-14: 68
- 2026-10-13: 40
- 2026-10-12: 40

## Common questions

### What is the Kokon MCP server?

Kokon is an MCP server listed in the public MCP registry as io.github.GabrieleLozupone/kokon. Generate and edit images offline with Qwen-Image 2.1 on your GPU. Needs the Kokon desktop app. This page covers its npm package (kokon-mcp).

### Is the Kokon MCP server safe to use?

Kokon scores 78 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. 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 Kokon MCP server expose?

Kokon exposes 8 tools: generate_image, edit_image, edit_images, outpaint_image, inpaint_image, and 3 more. Their descriptions and schemas cost roughly 2,354 tokens of context every time the server is loaded.

### Is the Kokon MCP server still maintained?

Kokon is still listed as active in the MCP registry. We last reached this channel on 5 November 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 Kokon MCP server under?

Kokon declares the AGPL-3.0-only licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/kokon-mcp
- Socket report: https://socket.dev/npm/package/kokon-mcp
- Repository: https://github.com/GabrieleLozupone/kokon
- Website: https://kokon.app/
- Changelog RSS feed: https://verifymcp.io/servers/gabrielelozupone-kokon/kokon-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/gabrielelozupone-kokon/kokon-mcp.json
- HTML version of this page: https://verifymcp.io/servers/gabrielelozupone-kokon/kokon-mcp
