LensPR
Альфа (0.1.x) — работает на реальных проектах, автор пользуется ежедневно. Возможны шероховатости.
ИИ-ассистенты редактируют ваш код по одному файлу за раз. Они не видят зависимости. Они делают grep, читают, предполагают — и ломают что-то через три файла.
LensPR строит граф зависимостей вашего кода и даёт вашему ИИ структурное понимание до того, как он что-либо изменит.
Быстрый старт
Требуются Python 3.11+, macOS или Linux. Для TypeScript/JS проектов также Node.js 18+.
pip install 'lenspr[all]'
lenspr init .
lenspr setup .Перезапустите вашу IDE. Готово. Теперь у вашего ИИ есть инструменты lens_*.
Добавьте
.lens/в ваш.gitignore— граф локальный и пересобирается из исходников.
Что это делает
«Что зависит от этой функции?»
Один вызов возвращает исходный код, кто его вызывает, что он вызывает и связанные тесты:
> 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Без LensPR ваш ИИ делает 5-7 вызовов grep/чтения и всё равно упускает детали. С LensPR — один вызов, полная картина.
«Что сломается, если я это изменю?»
Перед любым изменением ИИ видит радиус поражения:
> lens_check_impact("models.User")
severity: CRITICAL
direct_dependents: 15
indirect_dependents: 23
affected_modules: auth, payments, notifications
tests_covering: 3ИИ предупреждает вас, меняет подход или запрашивает подтверждение. Никаких слепых правок.
«Насколько здорова эта кодовая база?»
> 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Отслеживайте, улучшается или деградирует кодовая база со временем.
Межъязыковая видимость
LensPR соединяет фронтенд и бэкенд в единый граф:
LoginModal.tsx → fetch("/api/auth/login")
↓ CALLS_API
Backend: @router.post("/login") → login_handler()
→ db.query(User) [reads: users]
→ verify_password()
→ create_jwt_token()Также отслеживает: таблицы баз данных, Docker-сервисы, переменные окружения, CI/CD-пайплайны, SQL-миграции.
Совместимость
IDE | Настройка |
Claude Code |
|
Cursor | Скопируйте |
Любой MCP-клиент |
|
Языки: Python (разрешение 95%+ через Jedi/Pyright) и TypeScript/JavaScript (85-95% через tree-sitter + TS Compiler API).
Инфраструктура: .sql-файлы, Dockerfile, docker-compose.yml, workflow-файлы GitHub Actions, .env-файлы — всё парсится в единый граф.
Всё работает локально. Ваш код никогда не покидает вашу машину.
Ключевые возможности
Анализ влияния | Серьёзность (LOW → CRITICAL) до любого изменения |
Контекст одним вызовом | Исходный код + вызывающие + вызываемые + тесты за один запрос |
Межъязыковой | HTTP фронтенда → маршруты бэкенда, таблицы БД, Docker, переменные окружения, CI/CD |
Точечные правки | Адресный find/replace внутри функции — без переписывания файла целиком |
Мёртвый код | Поиск недостижимых функций (точки входа Django, FastAPI, Celery) |
Правила архитектуры | Контроль границ слоёв — нарушения предупреждают до применения изменений |
Git для функции | Blame, история, область коммита на уровне функции |
Память сессии | ИИ продолжает с того места, где остановился, после сброса контекста |
Автосинхронизация | Наблюдатель за файлами обновляет граф при каждом сохранении |
Оценка здоровья | Оценка 0-100 по 6 измерениям — отслеживание качества во времени |
60+ инструментов в 12 группах — включайте только то, что нужно, через lenspr tools.
Навигация и поиск (8): lens_context, lens_get_node, lens_search, lens_grep, lens_find_usages, lens_get_structure, lens_list_nodes, lens_get_connections
Изменение (6): lens_update_node, lens_patch_node, lens_add_node, lens_delete_node, lens_rename, lens_batch
Анализ (6): lens_check_impact, lens_validate_change, lens_health, lens_dead_code, lens_dependencies, lens_diff
Качество (7): lens_vibecheck, lens_nfr_check, lens_test_coverage, lens_security_scan, lens_dep_audit, lens_fix_plan, lens_generate_test_skeleton
Архитектура (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
Инфраструктура (5): lens_api_map, lens_db_map, lens_env_map, lens_ffi_map, lens_infra_map
Тестирование и трассировка (3): lens_run_tests, lens_trace, lens_trace_stats
Аннотации (5): lens_annotate, lens_save_annotation, lens_batch_save_annotations, lens_annotate_batch, lens_annotation_stats
Сессия (4): lens_session_write, lens_session_read, lens_session_handoff, lens_resume
Временной анализ (2): lens_hotspots, lens_node_timeline
Объяснение (1): lens_explain
Известные ограничения
Windows — не поддерживается. Только macOS и Linux.
Вызовы
self.method()— статический парсер не может полностью разрешить диспетчеризацию методов экземпляра. Обходной путь:lens_trace(Python 3.12+) разрешает их во время выполнения.Go, Rust, Java — пока не поддерживаются. Интерфейс парсера готов для контрибьюторов.
Динамический код —
getattr,eval, динамические импорты нельзя отследить статически.
Участие
Попробуйте. Если что-то сломается — расскажите мне.
Отчёты об ошибках — даже «это не работает» полезно
Языковые парсеры — Go, Rust, Java (интерфейс BaseParser готов)
Идеи — откройте issue
Лицензия
MIT
Создано, потому что ИИ постоянно ломал мой код.
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