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

Cornea, deterministic visual inspection

von AbduljabbarBXRVersion 0.2.2i★ –iLäuft auf deinem Computer
Name in der Registryio.github.AbduljabbarBXR/cornea

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Deterministic visual inspection for AI agents. Overlap, overflow, contrast, quality.

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.

Der Entwickler hat in der Registry keine Installationsangaben gemacht. Sieh dir unten die README des Entwicklers an.

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 8. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto AbduljabbarBXR 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 18486 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 32 % der anderen 18486 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 18486 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 Cornea, deterministic visual inspection 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.2.2) kam vor 2 Monaten 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 Rust auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Compose Preview Catalogs

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

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

Spec Driven Development

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

von formulahendryAm Anfang↓ 66/Wo.★ 440Aktualisiert vor 14 Monaten

Läuft auf deinem Computer

Remote Desktop Commander

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

von desktop-commanderWachsend★ 211Aktualisiert vor 3 Tagen

Läuft in der Cloud✓ desktopcommander.app

Compose Preview Catalogs

Browse, inspect and render Jetpack Compose Material 3 and Wear component catalogs.

von yschimkeGanz neuAktualisiert heute

Läuft in der Cloud

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.

Cornea

Deterministic visual inspection for AI agents. The eyes a coding agent never had.

Cornea gives a coding agent that builds web pages a real way to *see* them. As a token-cheap, deterministic structural model it can reason over exactly, instead of megabytes of screenshots and raw DOM dumped into context.

An agent doesn't need a *photo* of a page. It needs to know is my layout broken, and how. Cornea computes an abstract *visual geometry model* of every element (box, position, z-order, computed styles) and derives inspection conclusions. overlap, overflow, contrast, quality. Then exposes them as native tools on three surfaces: CLI, MCP, and HTTP API.

One promise holds everything together: same input → byte-identical output. No Chromium, no sub-pixel variance, no server. A single ~1.4 MB binary.


Quick start

# Build (Rust 1.98+, edition 2024)

cargo build --release

Inspect a file, the simplest way to use Cornea

./target/release/cornea tests/fixtures/sample-bugs.html 360

Requires only cargo. No browser, no Node, no system dependencies. Builds fine on a phone-class device.

Or install the `cornea` command from npm (no Rust toolchain needed):

npm install -g optrex   # provides the cornea command

cornea --help


Visual guide: what Cornea does

Take this page below. It looks fine as source. But it's hiding four layout bugs. Cornea finds every one.

<!-- tests/fixtures/sample-bugs.html (excerpt) -->

Card 1 Card 2 Card 3

Left overlap Right overlap ... Hard to read on white

Run it and Cornea reports the damage instantly:

$ ./target/release/cornea tests/fixtures/sample-bugs.html 360

{ "html_file": "tests/fixtures/sample-bugs.html", "viewport_w": 360.0, "element_count": 17, "est_tokens": 1068, // <-- entire page read for ~1k tokens "report": { "total_elements": 17, "visible_elements": 14, "overlaps": [ ... 7 collisions ... ], "overflows": [ ... 1 clipped ... ], "contrast": [ ... 2 AA failures ... ], "quality": { "score": 0.06, "label": "broken" } } }

Each finding is precise and actionable:

FindingDetail
Overlapsection.row ⇄ div.overlap-right, area 20000 px². The absolutely-positioned boxes cover the cards
Overflowdiv.overflow-bad: right edge 600 exceeds viewport 360 → clipped
Contrastblack on blue: ratio 2.44:1. Fails WCAG AA (needs 4.5)
Contrast#cccccc on white: ratio 1.61:1. Fails WCAG AA

That is the value: hundreds of tokens, not hundreds of kilobytes, and a deterministic answer the agent can act on and re-verify.


Visual guide: the three surfaces

Cornea is one engine, three doors. All three returns identical inspection JSON because they funnel through a single shared dispatch.

1. CLI. Inspect a file
cornea <file.html | http(s)://url> [viewport_width] [viewport_height] [--js]
$ cornea page.html 360

{ "html_file": "page.html", "viewport_w": 360.0, "element_count": 42, "json_bytes": 8124, "est_tokens": 2193, "report": { "total_elements": 42, "visible_elements": 38, "overlaps": [], "overflows": [], "contrast": [], "quality": { "score": 1.0, "label": "good" } } }

2. MCP. Native agent tools over stdio
cornea --serve

An agent calls layout.* tools directly; it passes the page source, or a live URL (see URL capture below), per call:

→ {"method":"tools/call","params":{"name":"layout.overlaps",

"arguments":{"html":" A ..." ,"width":360}}} ← {"id":1,"result":{"content":[{"text":"[{\"a_sel\":\"...div \u21c4 ...div\",\"area\":20000}]"}]}}

ToolReturns
layout.inspectFull visual model + report
layout.overlapsElements whose boxes collide
layout.overflowClipped / collapsed / off-screen
layout.contrastWCAG AA ratios for text elements
layout.quality0..1 health score + issue list
layout.fidelityWhich CSS features are exact vs approximated
3. HTTP API. Call from anything
cornea --serve-http [addr]        # default 127.0.0.1:8080
curl -s -X POST http://127.0.0.1:8080/inspect \

-H 'Content-Type: application/json' \ -d '{"html":" bady ","width":360}'

{"total_elements":1,"contrast":[{"selector":"...>p","fg":"#cccccc","bg":"#ffffff",

"ratio":1.61,"pass_aa":false}]}

RouteMethodReturns
/inspectPOSTFull report
/overlapsPOSTCollisions
/overflowPOSTClipped / collapsed / off-screen
/contrastPOSTWCAG ratios
/qualityPOSTHealth score
/fidelityGETEngine capabilities
/healthGETLiveness

Watching a live page (URL capture)

Every surface accepts a URL where the HTML would go. Cornea fetches the page, inlines its external stylesheets and external scripts (relative URLs resolved against the page), then inspects what a browser would actually show. That is the live coding session loop: run your dev server, point cornea at it, read the layout verdict.

cornea http://localhost:3000 390
{ "url": "http://localhost:3000", "width": 390, "height": 844 }  // HTTP /inspect
{ "method": "tools/call", "params": { "name": "layout.quality",

"arguments": { "url": "http://localhost:3000", "width": 390 } } } // MCP

Honesty around capture:

  • Failed fetches leave the original tag in place and record a note, so the report warnings still flag what did not load.
  • A positive height emulates a fixed viewport (screenshot frame, iframe, email) and enables below the fold clipping checks. Default 0 means an unbounded scrolling page.
  • Capture is a snapshot in time. Determinism holds engine side: the same fetched bytes always produce the same report.
  • Plain HTTP is supported natively. HTTPS pages need a TLS stack, which the binary does not carry; capture from a local http dev server or pre inline the page with a fetch layer of your own.

Architecture

                    ┌─────────────────────────────────────┐

HTML + CSS ──► │ cornea (one binary) │ │ │ │ dom.rs html5ever ──► tree │ │ css.rs + inline │ │ │ │ layout.rs deterministic layout │ │ (block/inline/flex, │ │ box model, z-index) │ │ │ │ │ model.rs Visual Geometry Model │ │ │ │ │ inspect.rs overlap / overflow / │ │ contrast / quality │ │ │ │ │ rest.rs canonical dispatch │ └───────┬─────────────┬───────────────┘ │ │ ┌─────┴────┐ ┌────┴───────────────┐ │ CLI │ │ MCP (stdio) / HTTP│ │ cornea │ │ layout.* / REST │ └──────────┘ └────────────────────┘

Read the full technical spec: CORNEA-ARCHITECTURE.md


Fidelity. Honest about what's approximate

Cornea never silently fakes precision. layout.fidelity tells an agent exactly what it can trust, and every report carries its own warnings for sources the engine saw but did not apply (external stylesheets, external scripts, media queries, unresolved colors):

{

"exact": ["box model", "block flow", "inline text estimates", "flex row/column (no wrap)", "z-index", "visibility", "absolute/fixed left/top", "inline styles", "class/id/tag selectors", "WCAG contrast (hex, rgb, hsl, alpha)"], "approximate": ["text glyph width (not shaping)", "flex-grow/flex-basis distribution", "percentage widths", "overlap semantics ignore intentional stacking"], "deferred": ["grid (parsed as block flow)", "media queries", "border-radius", "external stylesheet when not captured", "complex selectors (combinators, pseudo)"], "js": { "engine": "boa", "phase": "A", "enabled": "opt-in via --js / js:true", "dom_shim": "static HTML mirrored in first; getElementById; innerHTML parses markup", "unsupported": ["async APIs", "event dispatch", "selector engine", "React/SPA mounting (Phase B)"] } }

JavaScript built-in pages (Phase A)

Cornea can execute inline ` ` that builds its DOM via a minimal shim, then run the result through the same deterministic layout engine:

cornea page.html 360 --js            # inline scripts build the DOM first
{ "html": "<p>…</p>", "width": 360, "js": true }   // HTTP /inspect and MCP layout.*
  • Static HTML is mirrored into the shim before scripts run, so scripts can attach to existing nodes via document.getElementById, and innerHTML parses real markup into elements. Static content survives script runs.
  • style.* assignments are serialized back to style="…" and participate in overlap/contrast checks.
  • Async APIs are rejected (setTimeout, fetch, …) rather than hung. Any such use is surfaced in the report's js_notes, so determinism stays a guarantee.
  • External runs only when a capture layer (URL capture) inlined its body first.
  • Full React/SPA mounting is Phase B (experimental). Tracked in ROADMAP-JS.md.

Visual guide: testing (battle-tested)

54 tests run clean with cargo test; CI enforces fmt, clippy `-D warnings`, release build, tests, and a CLI smoke test on every push.

$ cargo test

Running unittests src/lib.rs ... 36 passed // determinism, overlap, overflow, Running unittests src/main.rs ... 9 passed // contrast, inline flow, flex, Running tests/endpoints.rs ... 9 passed // nesting, empty input, MCP, CLI, JS, capture

  • Determinism. Same page inspected twice gives byte-identical JSON (the core thesis).
  • Bug detection. The fixture's overlaps, overflows, and contrast failures are all asserted.
  • End-to-end. The compiled binary is spawned and layout.* is called over real stdio MCP.
  • HTTP. The TCP server boots on an ephemeral port and real requests are made.
  • Live capture. A real page is served over a local socket; linked CSS must change a contrast verdict.
  • Edge cases. Empty HTML, deep nesting (no crash), display:none, long text, flex row/col, inline wrapping.

Layout support (v1 scope)

FeatureStatus
Block flow, box model (content/border-box)exact
Inline text runs (horizontal, wrapping)exact
Flex row / column (simplified, no wrap)approximate
Absolute / fixed positioning (left/top)exact
z-index, visibility, display:noneexact
.class / #id / tag selectors + inline stylesexact

| WCAG contrast (hex, rgb, hsl, al

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

PopNx fragen