Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Easel

von GemberkoekjeVersion 0.8.0i★ –iLäuft auf deinem Computer
Name in der Registryio.github.Gemberkoekje/easel

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

A headless painting engine for AI agents: brushes, paint load, wet blending, canvas texture.

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Sonstiges

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Die Registry nennt keinen Schlüssel zum Eintragen.

Du brauchst

  • PyPIuv für Python installiert (für den Befehl uvx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "easel": {
      "command": "uvx",
      "args": [
        "easel-paint"
      ]
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add easel -- uvx easel-paint

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "easel": {
      "command": "uvx",
      "args": [
        "easel-paint"
      ]
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "easel": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "easel-paint"
      ]
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto Gemberkoekje bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Sonstigesi

  • Mehr Sterne als 0 % der anderen 32623 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 52 % der anderen 32623 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 32623 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Easel sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.8.0) kam vor 37 Tagen in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Draugr

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Spec Driven Development

von formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Läuft auf deinem Computer★ 440MITAktualisiert vor 14 Monaten
Installieren

Remote Desktop Commander

von desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Läuft in der Cloud★ 211Aktualisiert vorgestern
Installieren

Draugr

von draugr-dev

Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.

Läuft auf deinem ComputerAktualisiert heute
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

Easel

Can an LLM paint with real brush strokes, rather than draw with pixels? Yes — this is the API for it.

Easel is a headless painting engine for AI agents: brushes, paint load, wet blending and canvas texture, driven from Python, from a shell, or over MCP. A brush carries a finite load of paint and runs out along a stroke. Paint lands wet and mixes with what is already there, in a pigment model where blue and yellow make green rather than grey. The canvas has tooth, and a brush low on paint catches only the high points — so dry brush is not a special effect, it is what happens when you run out of paint on rough canvas. Between strokes you look at your own work, which is the whole point: the engine is built for an agent that can see what it just did.

It is not a drawing library, not a rasteriser, and not an image generator — nothing here turns a prompt into a picture. You choose and make every mark. There are no layers, and no undo that costs nothing: you work in passes, and when something is wrong you paint over it.

You have to be able to see images. Every pass of the method ends by looking at what it did — s.look(), the rehearsal, the post-pass check — and none of that reaches a painter who cannot take an image back. A model without image input can drive the whole API and will get a picture out of the far end, but it cannot tell whether any of it landed; one painter in the 0.5.0 cohort said exactly that of its own finished painting. Vision is a requirement here, not a feature.

Read the guide before you paint. The engine is only the brush; PAINTER.md is the method, and six measured runs say the method is the half that matters. It ships inside the package, so there is nothing to go and find: `easel guide` prints its first page — the whole workflow, about 1,000 words — and easel guide --full prints the rest.

from easel import Session, blob, cell

s = Session(1024, 768, texture="linen", ground="toned_grey", seed=7) s.palette["shadow"] = s.palette.mix("ultramarine", "burnt_umber", 0.4)

s.block_in(blob(cell("D5")), brush="bristle", color="shadow", density=0.8) s.look(values=True) # check the value structure s.stroke([(0.2, 0.6), (0.6, 0.55), (0.9, 0.62)], "bristle", "yellow_ochre") s.export("painting.png")

Paintings, made this way

*Inside a car wash, from the driver's seat — 206 strokes of a 300 budget, 1152×720 linen, no reference photograph. The nineteen pass scripts it was painted from are beside it.*

*A laundromat at night, from across the street — 286 strokes of a 300 budget, 1024×768 linen, no reference photograph. The fourteen pass scripts it was painted from are beside it.*

*A heron in a flooded parking lot at dawn — 253 strokes of a 320 budget, 1024×768 rough canvas, no reference photograph. The same subject was painted twice by the same painter to separate two kinds of fault; PAINTINGS.md has both attempts side by side.*

Every one of these was painted by a language model working from PAINTER.md, one call to this API at a time, with no human hand on the canvas and nothing traced. Every stroke is in the log, every time-lapse was rebuilt from it, and the notes beside each painting say what went wrong as well as what went right. PAINTINGS.md gathers the record, and *The worked examples* below says what each one is made of.

If you are about to paint from the guide yourself: have you decided what to paint? If you have, these are yours to study and the scripts beside them are the best thing here. If you have not, do not look — a worked example names a subject and a named subject chooses for you, as six of six fresh sessions once demonstrated by painting a noun the guide had merely listed in passing. Decide first, then look.

The brushes themselves

*Every brush, size and pressure profile, on each canvas texture. Regenerate with python scripts/make_brush_sampler.py — this sheet is the project's primary test artefact, and looking at it catches what the test suite cannot.*

*A mass does not have to be a rectangle. Each row is one way of building a shape, each column a way of sweeping it; the last column is the box that mass would have been. Regenerate with python scripts/make_shape_sampler.py.*

Install

Requires Python 3.12 or newer. Only numpy and Pillow — nothing that is painful to build on Windows.

pip install easel-paint          # the engine, the CLI and the Python API

pip install "easel-paint[mcp]" # and the MCP server

from easel import Session, blob, cell      # the import the documents teach

import easel_paint # the same engine under the installed name

The distribution is `easel-paint`, never `easel`. PyPI carries an unrelated package called easel, so pip install easel gets somebody else's. Both import names work here — easel_paint re-exports easel — and every example is written with the short one.

From a checkout, pip install -e . and pip install -e ".[mcp]" do the same two things.

Either installs an easel command. Pip puts it in the interpreter's scripts directory, which is often not on PATH (it warns when it is not), so python -m easel ... is always available as the same command by another name.

The MCP server is an opt-in extra because nothing else in the engine imports it. See *MCP server* below.

If you are an LLM agent, read PAINTER.md

PAINTER.md is the guide written for you. It teaches the *workflow* — tone the ground, paint back to front, check values, refine, edges, highlights last — rather than listing functions, and it opens with *the first hour*: the whole method on one page, so the ten warm-up exercises come before anything else.

If you have already installed the package you do not need that link. All six documents ship inside the wheel: python -m easel guide prints the first hour, --full prints the rest, and easel.docs.read() hands you any of them as text. The sixth is DIAGNOSIS.md, an index of symptoms rather than a document to read — you have rehearsed a pass, it is wrong, and easel diagnose concentric rings prints the passage that measured it.

It is one file of five, and every rule in the five is stated once, in the file it belongs to, and linked from everywhere else. PAINTER.md is held to a word budget by the test suite so that it stays the file a painter can hold in their head; the numbers it quotes are measured in CALIBRATION.md, and what painters reported about their own sessions is kept there too rather than beside the rules.

PAINTER.mdthe method: the loop, the order of work, the mistakes, the exercises, the checklist. Held in your head
RECIPES.mdone situation at a time: the calls in order, what it looks like when it goes wrong, and the number behind it
PAINTING.mdhow the paint, the brushes and the planning tools behave; copying a photograph, in its last chapter. The reasons, and easel explain prints the one a notice points at
REFERENCE.mdthe facts: units, defaults, what each argument does
CALIBRATION.mdthe measurement behind every number the other four quote, each with what it was measured on

The engine is designed around one habit:

Look every five to fifteen strokes. A stroke you did not look at was a guess.

llms.txt is the same signpost in the format a model fetching this repository is increasingly told to look for: the summary, what to know before reading further, and where each document is, in about 1,500 words.

What is in the box

PieceWhat it does
SessionThe one object you hold. Canvas, palette, seed, history, look().
CanvasLinear-light RGB plus wetness, thickness, sketch (graphite) and canvas height (tooth).
Brushesround_soft, round_hard, liner, flat, bristle, knife, smudge. Procedural tips, and tip_wobble gives a round one a silhouette of its own, redrawn per mark.
PaletteA limited pigment set with no black. Mix, tint, shade, and name your mixes.
Regionsregion("top-left"), cell("D6"), horizon(0.4), below(...), between(...).
ShapesA mass that is not a box: blob, ellipse, hull, union, ribbon, polygon, and s.circle() for one that is round in pixels on any canvas. smooth() cuts the corners off an outline and roughen() walks it off its own line, for anything nobody ruled. Any of them goes where a region goes, and group() moves several as one; rotated() turns a shape or a group in pixels. s.px(x, y) draws in pixels, and s.frame() gives a thing its own coordinates, tilted in pixels.
Massesblock_in(place, ...) fills a rectangle *or a shape* with overlapping passes, stopping at the silhouette, or drawing its contour with edge="clean"; solid=True when it has to be solid paint, because density spaces the passes rather than filling them. sweep(edge, ...) lays a mass as passes along its own boundary, stepped inward. Both emit ordinary strokes.

| Passages and repairs | scumble(band, a, b, n) lays a soft passage as n overlapping passes stepping between two values — the thing a gradient tool would be

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen