mcplens
mcplens
Семантический поиск по кодовой базе для ИИ-ассистентов — сокращение токенов на 70-85%, 100% локально, нулевая зависимость от облака.
ИИ-ассистенты для программирования, такие как Claude Code, Cursor и Codex, очень мощные, но у них есть фундаментальная проблема: когда вы задаете вопрос, они читают файлы, пытаясь угадать, какие из них релевантны, основываясь на эвристиках путей и имен файлов. В проекте среднего размера один запрос может потреблять 10 000–20 000 токенов контекста только на загрузку файлов, которые могут даже не быть релевантными.
claude-context-optimizer решает эту проблему, предоставляя вашему ИИ-ассистенту семантический поиск по вашей кодовой базе. Вместо того чтобы читать файлы вслепую, он вызывает search_code("how does payment work?") и получает обратно только 5 наиболее релевантных фрагментов кода — проиндексированных локально с использованием эмбеддингов, хранящихся в SQLite, без передачи данных с вашего компьютера.
Как это работает
Когда вы открываете ИИ-ассистента в проекте:
MCP-сервер запускается автоматически (через stdio ассистентом)
Он сравнивает хеши файлов с последним индексом и переиндексирует только то, что изменилось (дельта-индексация)
Файловый наблюдатель поддерживает индекс в актуальном состоянии по мере написания кода
Ваш ассистент теперь имеет доступ к 3 инструментам семантического поиска вместо чтения «сырых» файлов
You ask: "how does the Asaas webhook work?"
Without cco: With cco:
Read AsaasWebhookController.php search_code("asaas webhook")
Read AsaasWebhookService.php → returns 5 relevant chunks
Read PaymentService.php → ~800 tokens total
Read BillingModule.php
Read ...8 more files
→ ~15,000 tokens totalПод капотом
Эмбеддинги: Ollama с
nomic-embed-text(768-dim) — 100% локально, бесплатно, без API-ключаВекторное хранилище: SQLite с косинусным сходством, вычисляемым внутри процесса — никакой дополнительной инфраструктуры
Разбиение на фрагменты (Chunking): с учетом AST через
tree-sitter(разделение по функциям/классам) с резервным вариантом скользящего окнаТранспорт: MCP stdio — ассистент запускает процесс и общается через канал (pipe)
Персистентность: Индекс хранится в
.claude-context/index.dbи сохраняется между сессиями
Related MCP server: LocalNest MCP
Совместимость
claude-context-optimizer работает с любым MCP-совместимым ИИ-ассистентом для программирования. MCP (Model Context Protocol) — это открытый стандарт, поэтому один и тот же сервер работает во всех клиентах без изменений.
Ассистент | Статус | Расположение конфига |
Claude Code | ✅ |
|
Cursor | ✅ |
|
Windsurf | ✅ |
|
Trae | ✅ |
|
Codex | ✅ | MCP config (preview) |
Любой MCP-клиент | ✅ | Следует спецификации MCP stdio |
Команда init определяет, какие ассистенты вы используете, и автоматически регистрирует сервер в нужном месте.
Экономия токенов
Индекс хранится локально. Ассистент получает только то, что релевантно. Цифры говорят сами за себя:
Размер проекта | Без cco | С cco | Экономия |
~200 файлов | ~5k токенов/запрос | ~1.2k токенов/запрос | ~75% |
~1000 файлов | ~10k токенов/запрос | ~1.5k токенов/запрос | ~85% |
~5000 файлов | ~20k+ токенов/запрос | ~2k токенов/запрос | ~90% |
Это контекстные токены — та часть, которую вы контролируете. Экономия масштабируется вместе с размером проекта, так как крупные проекты по умолчанию вызывают больше эвристических чтений файлов.
Доступные инструменты
Инструмент | Когда использовать |
| Концептуальные запросы: "как работает биллинг", "где обрабатывается аутентификация" |
| Точный поиск: "найти PaymentService", "где определен handleWebhook" |
| Отладка: сколько файлов и фрагментов проиндексировано в данный момент |
Добавьте это в CLAUDE.md (или аналогичный файл) вашего проекта, чтобы направлять ассистента:
## Context Search
Always use MCP tools before reading files:
- search_code() — for conceptual or natural language queries
- get_symbol() — for exact class/function/method lookups
Only read full files if both tools return insufficient context.Варианты установки
Вариант А — npm (требуется Ollama)
Нулевые накладные расходы. Лучший выбор для разработчиков, у которых уже установлена Ollama.
npm install -g @vmsfigueredo/mcplens
ollama pull nomic-embed-text:latest
cd your-project && mcplens initСм. INSTALL.md для получения полных инструкций по настройке.
Вариант Б — Docker
Пока недоступно. Дистрибутив Docker (объединяющий Node + Ollama + модель) планируется, но еще не реализован. Следите за прогрессом в Roadmap.
Конфигурация
Файл .claude-context/config.json создается автоматически командой init. Отредактируйте его, чтобы настроить поведение:
{
"embeddings": {
"provider": "ollama",
"ollamaUrl": "http://localhost:11434",
"ollamaModel": "nomic-embed-text:latest"
},
"search": {
"topK": 5,
"minScore": 0.3
},
"ignore": [
"**/tests/fixtures/**"
]
}Чтобы использовать эмбеддинги OpenAI:
{
"embeddings": {
"provider": "openai",
"openaiApiKey": "sk-...",
"openaiModel": "text-embedding-3-small"
}
}Что индексируется
Включено по умолчанию: .ts .tsx .js .jsx .mjs .php .svelte .vue .py .rb .go .rs .css .scss .json .yaml .yml .md .sql
Игнорируется по умолчанию: node_modules, .git, vendor, dist, build, .next, .claude-context
Директория .claude-context/ автоматически добавляется в .gitignore.
Справочник размера индекса
Проект | Файлы | Прибл. размер |
Малый | ~200 файлов | ~15 МБ |
Средний | ~1000 файлов | ~70 МБ |
Большой | ~5000 файлов | ~350 МБ |
Панель управления (Dashboard)
Легкая веб-панель доступна по адресу http://localhost:3000 во время работы сервера:
Обзор — проиндексированные файлы, фрагменты, размер индекса, статус Ollama
Активность — лента событий переиндексации в реальном времени
Поиск — ручное тестирование запросов и просмотр оценок (полезно для калибровки
minScore)Файлы — полный список проиндексированных файлов с количеством фрагментов
Панель управления по умолчанию работает на порту 3333. Если этот порт уже занят (например, открыты два проекта одновременно), порт рассчитывается автоматически на основе имени проекта. Чтобы открыть:
mcplens dashboardЧтобы отключить: добавьте --no-dashboard к аргументам сервера в вашей конфигурации MCP.
Конфиденциальность
Все работает на вашем компьютере:
Эмбеддинги генерируются локально через Ollama — ваш код никогда не покидает машину
Индекс хранится в
.claude-context/index.dbв вашем проектеНикакой телеметрии, никакой аналитики, никаких учетных записей
⚠️ Если вы используете опцию эмбеддингов OpenAI, фрагменты кода отправляются в API OpenAI.
Почему не использовать существующие инструменты?
Инструмент | Язык | Полностью локально? | Сложность установки |
| TypeScript | ❌ требует Zilliz Cloud + OpenAI | Средняя |
| Python | ✅ | Высокая (torch, FAISS, pipx) |
| Python | ✅ | Средняя (pipx, sentence-transformers) |
| Rust | ✅ | Высокая (нужно компилировать Rust) |
@vmsfigueredo/mcplens | Node.js | ✅ | Низкая ( |
Цель — быть самым доступным вариантом для JS/TS разработчиков, а не самым функциональным. Если у вас уже есть Node.js, вас отделяет всего одна команда.
Дорожная карта
[x] Разбиение на фрагменты на основе AST через tree-sitter
[x] Дельта-индексация по хешу файла
[x] Наблюдатель за файлами в реальном времени
[x] Панель управления
[x] Инициализация для нескольких клиентов (Claude Code, Cursor, Windsurf, Trae)
[x] Гибридный поиск (BM25 + семантический)
[ ] Docker-вариант с предустановленной Ollama
[ ] Контекстный поиск (резюме фрагментов, созданные LLM)
[ ] Аналитика использования токенов через хуки Claude Code
Участие в разработке
PR приветствуются. См. INSTALL.md для настройки локальной среды разработки.
Создано с помощью
Этот проект был создан с помощью Claude Code — именно поэтому он существует.
Лицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server for semantic code search & navigation that helps AI agents work efficiently without burning through costly tokens. Instead of reading entire files, agents can search conceptually and jump directly to the specific functions, classes, and code chunks they need.120MIT
- AlicenseBqualityCmaintenanceA local-first MCP server that provides AI agents with safe codebase access through file discovery, hybrid lexical-semantic search, and project introspection. It features durable local memory and semantic indexing while keeping all data and processing entirely on your local machine.74146MIT
- FlicenseNot gradedqualityCmaintenanceA semantic code search MCP server that enables natural language queries against your codebase, supporting features like related file discovery and context expansion, all running locally.2-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI agents structured code understanding and precise code intelligence via local indexing of AST, call graphs, and semantic search.814Apache 2.0