Skip to main content
Glama

Alpha (0.1.x): funciona en proyectos reales y el autor lo usa a diario. Espera asperezas.

Los asistentes de IA editan tu código un archivo a la vez. No ven las dependencias. Hacen grep, leen, adivinan — y rompen cosas a tres archivos de distancia.

LensPR construye un grafo de dependencias de tu base de código y le da a tu IA una comprensión estructural antes de que cambie nada.

Inicio rápido

Requiere Python 3.11+, macOS o Linux. Para proyectos TypeScript/JS, también Node.js 18+.

pip install 'lenspr[all]'
lenspr init .
lenspr setup .

Reinicia tu IDE. Listo. Tu IA ahora tiene las herramientas lens_*.

Añade .lens/ a tu .gitignore: el grafo es local y se reconstruye a partir del código fuente.


Qué hace

"¿Qué depende de esta función?"

Una sola llamada devuelve el código fuente, quién lo llama, a qué llama y las pruebas relacionadas:

> lens_context("auth.login_handler")

source: 42 lines
callers: auth_routes.create_routes, test_auth.test_login_success
callees: db.get_user, crypto.verify_password, jwt.create_token
tests: test_login_success, test_login_wrong_password

Sin LensPR, tu IA hace de 5 a 7 llamadas de grep/lectura y aun así se le escapan cosas. Con LensPR: una llamada, panorama completo.

"¿Qué se rompe si cambio esto?"

Antes de cualquier modificación, la IA ve el radio de explosión:

> lens_check_impact("models.User")

severity: CRITICAL
direct_dependents: 15
indirect_dependents: 23
affected_modules: auth, payments, notifications
tests_covering: 3

La IA te avisa, cambia su enfoque o pide confirmación. Se acabaron las ediciones a ciegas.

"¿Cómo de saludable es esta base de código?"

> lens_vibecheck()

score: 86/100 (B)
  test_coverage:    17/25 — 67% functions tested
  dead_code:        20/20 — 0% dead code
  circular_imports: 15/15 — 0 cycles
  architecture:     12/15 — 1 violation
  documentation:     8/10 — 81% documented
  graph_confidence: 14/15 — 94% edges resolved

Realiza un seguimiento de si la base de código mejora o degrada con el tiempo.

Visibilidad entre lenguajes

LensPR conecta el frontend y el backend en un único grafo:

LoginModal.tsx → fetch("/api/auth/login")
                        ↓ CALLS_API
Backend:  @router.post("/login") → login_handler()
            → db.query(User)        [reads: users]
            → verify_password()
            → create_jwt_token()

También realiza un seguimiento de: tablas de bases de datos, servicios Docker, variables de entorno, flujos de trabajo CI/CD, migraciones SQL.


Funciona con

IDE

Configuración

Claude Code

lenspr setup . — automático

Cursor

Copia .mcp.json a .cursor/mcp.json

Cualquier cliente MCP

lenspr serve <path>

Lenguajes: Python (resolución del 95%+ mediante Jedi/Pyright) y TypeScript/JavaScript (85-95% mediante tree-sitter + TS Compiler API).

Infraestructura: archivos .sql, Dockerfiles, docker-compose.yml, flujos de trabajo de GitHub Actions, archivos .env — todo se analiza en el mismo grafo.

Todo se ejecuta localmente. Tu código nunca sale de tu máquina.


Características principales

Análisis de impacto

Severidad (LOW → CRITICAL) antes de cualquier cambio

Contexto en una llamada

Fuente + llamadores + llamados + pruebas en una sola solicitud

Entre lenguajes

HTTP del frontend → rutas del backend, tablas de BD, Docker, variables de entorno, CI/CD

Ediciones quirúrgicas

Búsqueda y reemplazo específicos dentro de una función — sin reescribir archivos completos

Código muerto

Encuentra funciones inalcanzables (puntos de entrada de Django, FastAPI, Celery)

Reglas de arquitectura

Aplica límites de capas — las violaciones avisan antes de aplicar los cambios

Git por función

Blame, historial y alcance de commits a nivel de función

Memoria de sesión

La IA retoma donde lo dejó entre reinicios de contexto

Auto-sincronización

Un vigilador de archivos actualiza el grafo en cada guardado

Puntuación de salud

Puntuación de 0 a 100 en 6 dimensiones — realiza un seguimiento de la calidad con el tiempo

Más de 60 herramientas organizadas en 12 grupos: habilita solo lo que necesites con lenspr tools.

Navegación y búsqueda (8): lens_context, lens_get_node, lens_search, lens_grep, lens_find_usages, lens_get_structure, lens_list_nodes, lens_get_connections

Modificación (6): lens_update_node, lens_patch_node, lens_add_node, lens_delete_node, lens_rename, lens_batch

Análisis (6): lens_check_impact, lens_validate_change, lens_health, lens_dead_code, lens_dependencies, lens_diff

Calidad (7): lens_vibecheck, lens_nfr_check, lens_test_coverage, lens_security_scan, lens_dep_audit, lens_fix_plan, lens_generate_test_skeleton

Arquitectura (9): lens_arch_rule_add, lens_arch_rule_list, lens_arch_rule_delete, lens_arch_check, lens_class_metrics, lens_project_metrics, lens_largest_classes, lens_compare_classes, lens_components

Git (4): lens_blame, lens_node_history, lens_commit_scope, lens_recent_changes

Infraestructura (5): lens_api_map, lens_db_map, lens_env_map, lens_ffi_map, lens_infra_map

Pruebas y trazado (3): lens_run_tests, lens_trace, lens_trace_stats

Anotaciones (5): lens_annotate, lens_save_annotation, lens_batch_save_annotations, lens_annotate_batch, lens_annotation_stats

Sesión (4): lens_session_write, lens_session_read, lens_session_handoff, lens_resume

Temporal (2): lens_hotspots, lens_node_timeline

Explicación (1): lens_explain


Limitaciones conocidas

  • Windows — no compatible. Solo macOS y Linux.

  • Llamadas a self.method() — el parser estático no puede resolver por completo el despacho de métodos de instancia. Solución: lens_trace (Python 3.12+) las resuelve en tiempo de ejecución.

  • Go, Rust, Java — aún no compatibles. La interfaz de parser está lista para colaboradores.

  • Código dinámicogetattr, eval, las importaciones dinámicas no se pueden rastrear estáticamente.


Contribuciones

Pruébalo. Si se rompe, dímelo.

  • Informes de errores — incluso "esto no funciona" es útil

  • Parsers de lenguajes — Go, Rust, Java (la interfaz BaseParser está lista)

  • Ideasabre un issue

Licencia

MIT


Construido porque la IA seguía rompiendo mi código.

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Hosted MCP server for structured code review passes on human- and AI-written code. Free tier.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • An MCP server that gives your AI access to the source code and docs of all public github repos

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kyrylopr/lenspr'

If you have feedback or need assistance with the MCP directory API, please join our Discord server