LensPR
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.
Related MCP server: codemap
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_passwordSin 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: 3La 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 resolvedRealiza 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 |
|
Cursor | Copia |
Cualquier cliente MCP |
|
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ámico —
getattr,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)
Ideas — abre un issue
Licencia
MIT
Construido porque la IA seguía rompiendo mi código.
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted code graph over MCP: exact callers, dependencies, and cross-repo blast radius for AI agents.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceMCP server for AI coding agents that builds a complete code structure graph and semantic vector index, enabling fast querying of code entities, relationships, and impact analysis.29 npm11-
- AlicenseNot gradedqualityAmaintenanceMCP server for local-first code intelligence, providing structural code graph, semantic search, and impact analysis to AI agents.2MIT
- AlicenseNot gradedqualityAmaintenanceA persistent code-intelligence MCP server that builds a queryable knowledge graph of your codebase, enabling AI assistants to perform cross-file structural reasoning, dependency analysis, and blast radius detection.9MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that provides coding agents with structured repository context, including graph-based navigation, dependency analysis, runtime flow tracing, and configuration surface across supported stacks.75 npmMIT