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.
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 installed
Maintenance
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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