PDF Reader

Lee texto, metadatos y número de páginas de archivos PDF de forma segura dentro del contexto del proyecto.

Documentación

Citra

Dale ojos a tu agente de IA para PDFs — con pruebas.

Evidencia PDF local-primero para agentes. Texto estructurado, tablas, OCR, recortes visuales y citas a nivel de página que tu agente puede defender — no inventar.

Paquete canónico @sylphx/citra · bin citra · MCP io.github.SylphxAI/citra · live 5.0.0

npm version License: MIT stars

Configuración cero en una línea

npx -y @sylphx/citra

Sin Docker. Sin clave de API. Sin instalación global. Lanza un servidor MCP stdio que los agentes pueden usar de inmediato.

ClienteConfiguración
Cualquier agente / CLInpx -y @sylphx/citra
Claude Codeclaude mcp add citra -- npx -y @sylphx/citra
Claude Desktop / Cursor / VS Code / Codex"command": "npx", "args": ["-y", "@sylphx/citra"]
CLI globalnpm i -g @sylphx/citracitra

Por qué Citra se siente injustamente bueno

Las herramientas de PDF en texto plano hacen que los agentes adivinen. Citra devuelve un Gemelo de Documento de Agente que pueden citar.

Dolor hoyCon Citra
Números de página inventados o faltantesPágina + geometría + procedencia
Tablas aplanadas en sopaFilas · columnas · celdas · cuadros delimitadores
Los PDFs escaneados se vuelven ruidoRuta OCR vinculada a evidencia
Instalación / configuración / “esperar que funcione”npx -y — listo
Retrocesos silenciosos del motorCierre seguro si falta el binario nativo

Cinco razones por las que los equipos eligen Citra

  1. Configuración cero — MCP real de npx, no un arranque de 20 pasos.
  2. Evidencia, no vibraciones — citas que los agentes pueden mostrar a un humano.
  3. Local-primero — los PDFs permanecen en la máquina; sin API de visión en la nube requerida.
  4. Marca única — un paquete, un binario, una historia (@sylphx/citra / citra).
  5. Familia de instrumentos — compón con Iris (imagen), Cue (video), Spine, Lookout, Locus.

Ve la diferencia

Plain text vs evidence

Sin evidenciaCon Citra
“Los ingresos fueron de aproximadamente $12M”“Página 14, Tabla 3, celda (fila 4, col 2) = $12.4M
Estructura de tabla perdidaFilas, columnas, celdas, cuadros delimitadores
PDF escaneado = texto basuraOCR con evidencia vinculada a página
Texto oculto / adversarial ignoradoSeñales de confianza cuando se solicitan

Lo que obtienes

Tres herramientas. Una superficie de producto.

HerramientaPara qué la usan los agentes
read_pdfPredeterminado inteligente: markdown, tablas, estructura, OCR, citas
search_pdfEncuentra coincidencias de página + fragmento antes de la lectura profunda
pdf_evidenceRecortes, renderizados, inspección, operaciones de evidencia enfocadas

Llamada mínima:

{
  "sources": [{ "path": "/absolute/path/to/report.pdf" }]
}

Casos de uso principales

  1. Informes financieros — extrae celdas de tabla que los agentes pueden citar por página y geometría
  2. Artículos de investigación — encabezados, orden de lectura, citas a nivel de página
  3. Documentos escaneados — ruta OCR con evidencia, no una sopa de texto

Plataformas

Un paquete nativo opcional se selecciona solo para tu host:

PlataformaPaquete nativo
macOS arm64@sylphx/citra-darwin-arm64
macOS x64@sylphx/citra-darwin-x64
Linux x64@sylphx/citra-linux-x64-gnu
Linux arm64@sylphx/citra-linux-arm64-gnu
Windows x64@sylphx/citra-win32-x64-msvc

Nativo faltante → cierre seguro (sin motor PDF TypeScript silencioso).

Documentación del producto

DocPropósito
docs/POSITIONING.mdPosicionamiento estratégico
docs/COMPETITIVE.mdAnclas de pares y cuña
docs/EVIDENCE_CONTRACT.mdEvidencia = contrato de resultados
docs/TOOL_SURFACE.mdPolítica de pocas herramientas claras
docs/PRODUCT_INDEPENDENCE.mdEste repositorio es la SSOT
docs/IPPB.mdBarra de producto pública independiente
docs/PUBLISH.mdEstado de publicación npm / git
docs/guide/installation.mdConfiguración de instalación y host
skills/citra/SKILL.mdSuperficie de habilidades del agente

Superficies (MCP · CLI · SDK)

MCP (ruta de agente predeterminada)

npx -y @sylphx/citra

Claude Desktop / Cursor / VS Code / Codex

{
  "mcpServers": {
    "citra": {
      "command": "npx",
      "args": ["-y", "@sylphx/citra"]
    }
  }
}

Los hosts de doble era que envían server/discover antes de initialize (p. ej. Gemini Antigravity CLI) son compatibles en stdio.

CLI

npx -y @sylphx/citra --help

SDK

  • @sylphx/citra/sdkCitra (read / search / evidence)
  • @sylphx/citra/pure-rust → helpers de cliente de bajo nivel
  • Mismas herramientas que MCP: read_pdf · search_pdf · pdf_evidence
  • Requiere el paquete nativo opcional de la plataforma (igual que MCP)

Huella de instalación (honesta)

Compara instalaciones limpias completas, no “tarball de envoltorio JS vs ejecutable nativo”:

Métrica (instalación limpia medida, linux-x64)TS histórico 3.0.14Linaje Sole-Rust 4.1.0
Paquete principal en disco~403 KB~77 KB
node_modules completo~82.3 MiB~24.4 MiB (~3.4× más pequeño)
Archivos instalados4,10120 (~205× menos)
Dependencias npm de producciónPDF.js + SDK TS de MCP + más{} + un nativo de plataforma

El binario nativo ocupa varios megabytes porque es el motor PDF. Eso es esperado — y sigue siendo una instalación más limpia que distribuir PDF.js + un árbol JS grande.

Detalles: comparación de huella de instalación

Rendimiento (acotado por método)

A/B de doble modo mismo-host linux-x64 controlado vs @sylphx/pdf-reader-mcp@3.0.14 histórico, usando nativos sole-Rust instalados desde el registro (medido en el linaje 4.1.x; el método aplica a los paquetes sole-Rust actuales):

ModoQué mideResultado
persistent_warmservidor de larga duración, read_pdf local idéntico repetido después del calentamientomejora de latencia mediana de ≥ ~10× en las 8 clases de fixtures requeridas
startup_inclusivespawn + inicialización + una tareagran ventaja en los mismos fixtures

persistent_warm incluye una caché local al proceso para path+opciones locales idénticos. La primera solicitud en un proceso aún paga el costo completo de análisis.

No es una garantía multi-host. Detalles: informe 4.1.0 · política de afirmaciones

Nota del motor

La producción actual es un motor Rust nativo en plataformas compatibles a través de un lanzador Node delgado.

Local-primero. Cinco paquetes de plataforma. Una instalación limpia. Cierre seguro sin el nativo correspondiente.

Los CMaps ToUnicode con formato inusual o rotos se manejan sin fallar; el binario de release es panic-unwind, por lo que un pánico en un hilo de trabajo falla la solicitud en lugar de abortar el proceso (#608).

Historial de ingeniería y pines de recuperación: docs/migration.md — no es el discurso del producto.

Prueba del producto y enlaces


Detén las alucinaciones de PDF. Dales pruebas a los agentes.

npx -y @sylphx/citra