Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

Aperture MCP

de jaysinailabsversión 0.2.0i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.jaysinailabs/aperture-mcp

Instalar

Resumen

Descripción del creador (original en inglés)

Flag when a tracked commitment vanishes verbatim between two versions. A signal, not a judge.

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Otros

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

Necesitas

  • PyPIuv de Python instalado (para el comando uvx)

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json

{
  "mcpServers": {
    "aperture": {
      "command": "uvx",
      "args": [
        "aperture-mcp"
      ]
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add aperture -- uvx aperture-mcp

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "aperture": {
      "command": "uvx",
      "args": [
        "aperture-mcp"
      ]
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "aperture": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "aperture-mcp"
      ]
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub jaysinailabs, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Otrosi

  • Más estrellas que el 0% de los otros 32680 servidores de esta categoría
  • Publicado en el registro más recientemente que el 15% de los otros 32680 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 32680 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro Aperture MCP?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (0.2.0) llegó al registro hace 4 meses.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: Spec Driven Development, Remote Desktop Commander, EmbeddedCI BenchPod

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

Spec Driven Development

de formulahendry

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

Se ejecuta en tu computadora★ 440MITActualizado hace 14 meses
Instalar

Remote Desktop Commander

de desktop-commander

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

Se ejecuta en la nube★ 211Actualizado anteayer
Instalar

EmbeddedCI BenchPod

de embeddedci-com

Drive a BenchPod hardware-in-the-loop bench: power, flash, UART, I2C, CAN, analog and logic.

Se ejecuta en tu computadoraActualizado hoy
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

Aperture

A commitment tripwire · git hook · CI · CLI · MCP

Did an agent quietly drop a commitment from your spec — and no one noticed?

English · 简体中文

AI agents now rewrite the documents that govern your work — specs, plans, ADRs, charters, AGENTS.md files. Somewhere in the edit, a constraint you set earlier can quietly disappear.

**Aperture is a *commitment tripwire*. You name the commitments you care about; it flags — word for word** — when one of them vanishes between two versions of a decision document.

Catching *"a commitment silently vanished"* is a tripwire job: it should fire on an event, deterministically, without asking permission. So Aperture ships that check on the surface that fits it best first — a git pre-commit hook / CI check that runs with no LLM, offline — and also as a CLI and an MCP server for agents to call mid-task. MCP is one adapter, not the whole product.

A signal, not a judge. It trips; *you* investigate.

Opt-in · runs locally · never trains on your data.


What it is (and what it is not)

Aperture compares two text states of the same decision — an earlier version and a later one — and surfaces a narrow, specific kind of decision drift: when a tracked commitment’s exact text disappeared. One engine, several surfaces:

  • git pre-commit hook / CI check — the deterministic form. Fires on the commit / PR event with no model in the loop, and blocks (or warns) automatically.
  • `aperture check` CLI — run the same check by hand between any two git states.
  • MCP server — so an agent can call the check while it edits (weaker as a tripwire, since it only runs if the agent *chooses* to call it — but useful mid-task).

What the engine does and doesn’t do:

  • ✅ It does: flag when a commitment you listed *verbatim* is present in version A and gone from version B — across commits, sessions, or authors. It returns a structured, comparable result with its own blind spots written on the label.
  • ❌ **It does *not*: understand meaning. It matches text as a case-insensitive substring, so it misses** a commitment that was *reworded / softened / paraphrased* (it looks dropped-free even though the promise weakened); it declines/abstains on a commitment that was merely *translated* (it can’t compare verbatim across scripts, so it returns degraded rather than false-flag); and it can still false-flag a commitment that was merely *reformatted* (the words moved, the meaning didn’t). It does not rank options, score quality, or tell you a change was *wrong*. That judgment stays with you. Moving to the deterministic git-hook makes the check *fire reliably* — it does not widen what it can see. Same narrow, verbatim signal.

If you want one sentence: Aperture is `grep` for vanished commitments, wired to fire on commit — and honest enough to admit what it can’t see.


Quickstart (≈2 minutes)

pip install aperture-mcp   # installs the `aperture` CLI + the MCP server (wire the CLI as a git hook — see below)

The PyPI package is named `aperture-mcp` because the bare name aperture was already taken on

PyPI. The -mcp suffix is a historical package-name artifact — the product is Aperture, and

MCP is only one of its surfaces. One pip install gives you all three below.

1. The deterministic tripwire — git pre-commit hook / CI (no LLM, offline)

Create a .aperture.toml — a watchlist of the commitments that must not silently vanish, per file:

fail_on_drop = true

[[watch]] path = "CHARTER.md" commitments = ["never train on your data", "data stays on the device"]

aperture check compares two git states and flags any watched commitment that disappeared verbatim:

aperture check                                    # HEAD vs working tree (default)

aperture check --staged # HEAD vs the staged index — for a pre-commit hook aperture check --ref-a origin/main --ref-b HEAD # any two refs — for CI on a PR

Exit code 1 blocks the commit when a watched commitment dropped (the default); --warn-only prints the finding but never blocks. It’s stdlib-only, makes no network calls, and runs no model.

Wire it as a pre-commit hook — either through the pre-commit framework (uses this repo’s .pre-commit-hooks.yaml):

# .pre-commit-config.yaml

repos:

  • repo: https://github.com/jaysinailabs/aperture-mcp rev: v0.2.0 hooks:
  • id: aperture-commitment-drift

…or as a standalone .git/hooks/pre-commit:

#!/bin/sh

exec aperture check --staged

…or run it in CI as a GitHub Action on every PR (needs fetch-depth: 0 so both sides are available — see examples/github-action/aperture-check.yml):

- uses: actions/checkout@v4

with: { fetch-depth: 0 }

  • run: pip install aperture-mcp
  • run: aperture check --ref-a ${{ github.event.pull_request.base.sha }} --ref-b ${{ github.sha }}

Kick the tires first with the bundled fixture (clone the repo): it trips on a dropped commitment

against checked-in before/after docs, no setup, fully offline —

python3 examples/git_decision_drift/git_decision_drift.py.

2. Mid-task, from an agent — the MCP server

The same check, callable by an agent while it edits. (An MCP tool only fires if the agent *chooses* to call it — a weaker delivery for a tripwire than the git-hook, but handy mid-task.)

{

"mcpServers": { "aperture-mcp": { "command": "aperture-mcp" } } }

Prefer zero-install? Point the client at uvx instead:

{ "command": "uvx", "args": ["aperture-mcp"] }.

3. Or from your own Python
from aperture import compare, Anchor, AnchorKind

result = compare( state_a="We commit to: ci-gates-green before release; data-never-leaves-device.", state_b="We commit to: data-never-leaves-device.", anchors=[Anchor(kind=AnchorKind.COMMITMENT, id="ci-gates-green")], ) print(result.status) # DROPPED_SILENTLY print(result.anchor_violations) # the commitment that vanished


A scene you’ll recognize

On a long task, your agent keeps rewriting the doc it works from — a plan, a spec — across sessions and edits. And every so often, a line that mattered just… vanishes.

*“Always ask before you delete anything.”* Gone. *“User data never leaves the device.”* Gone. *“The free tier stays free.”* Gone.

Nobody meant to drop them; nobody reads all 400 lines of the diff.

Aperture watches the exact lines you name. Put it on the commit — a hook that fires before the drop lands — and it won’t try to understand the doc or judge it; it just tells you which promise was there, word for word, and now isn’t. A tripwire, not a judge — and honest about the rest: soften a line, reword it, or change a number instead of deleting it, and it’ll slip past. Better you hear that now.


What trips it — and what slips past

Aperture is a heuristic. We measured it on our own gold corpus and we publish the numbers instead of a single flattering score, because *knowing where it’s blind is the product* — recall 0.400, precision 0.667 on a 100-case corpus, labeled by an isolated LLM-judge panel (it catches 26 of 65 real drifts; ~1 flag in 3 is noise), full breakdown in docs/measured-limits.md:

Kind of changeDoes Aperture flag it?
A watched commitment deleted verbatim✅ Reliably — this is the one thing it’s good at (24 of 24 in the corpus)
A commitment reworded / softened (“must” → “should”)❌ Missed — the text still “matches”
A commitment paraphrased / restructured❌ Missed
A number / scope / negation quietly changed❌ Missed
A commitment translated to another language⚠️ Declines (abstains) for a *natural-language* anchor — it can’t compare verbatim across scripts, so it returns degraded rather than false-flag (a commitment dropped and translated is missed)

The deterministic surface doesn’t widen the aperture. The git-hook fires reliably — but it still

only catches verbatim deletion. Every ❌ / ⚠️ row above is exactly as blind through the hook as

through MCP. What you gain is *when* it checks (on the commit, without anyone remembering to ask),

not *what* it can see.

Anchor style matters for that last row: the abstain applies to a natural-language anchor. A

code-identifier anchor (the ci-gates-green style the quickstart teaches) is treated as

*translation-stable* — Aperture keeps checking it across languages, so if that exact token disappears

it still flags DROPPED_SILENTLY (usually what you want for a stable identifier).

Takeaway: treat every flag as *“look here,”* never as *“this is wrong”* — and never assume silence means nothing drifted. Aperture catches the verbatim disappearance case well and is honest that it catches little else. That narrow, reliable signal is useful precisely *because* it doesn’t pretend to be more.

Hit one of those misses on your own docs? That's the single most useful thing you can send us —

report it in ~30s (your wording is optional). Real misses guide what

we fix next.

Why not just git diff / grep? You can reproduce the core check by hand. What Aperture adds is

that it’s wired to fire on the commit / PR event (as a hook or CI check) *and* callable

mid-task by an agent (over MCP); it returns a structured, directional result

(ok / degraded / DROPPED_SILENTLY / …); and it reports its own blind spots in the result

so a human can audit the gaps. It’s ergonomics + honesty around a simple, legible check — not a

smarter detector.


Why this exists

Long-running and multi-agent workflows drift. A constraint set in turn 3 / session 1 / by agent A gets quietly edited away forty turns later, in another session, by agent B — and nobody notices until it ships. Aperture is a preflight you can put on the documents agents maintain: name the commitments that must not silently vanish, and get a tripwire when one does — ideally on the commit itself, before the drop ever lands.

It is deliberately small and legible. It is not an AI that decides for you; it is a signal that helps *you* stay consistent with yourself.


Who it’s for

Teams and builders who (a) let AI agents edit repo-resident decision documents — specs, plans, ADRs, charters, and AGENTS.md files — and (b) keep those documents under version control. If your agents touch text that encodes promises, Aperture gives you a cheap, honest tripwire — on the commit, in CI, or mid-task — on the ones you can’t afford to lose silently.


Privacy

  • Opt-in and local. Aperture runs on your machine — the git-hook, the CLI, and the MCP server alike. It makes no network calls.
  • Never trains on your data. Your decision text is yours; it never leaves your process.
  • Usage logging is off by default and, when enabled, records only metadata (timestamp, tool, status, counts) — never your decision text or commitment wording.

Honesty about the demo

The repository ships a small hand-authored fixture ADR (a before/after pair under examples/git_decision_drift/fixtures/), where Aperture corre

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx