Skip to main content
Glama
cvandesande

project-code-intelligence

by cvandesande

Project Code Intelligence

Интеллект репозитория и доказательства безопасности изменений для агентов кодирования.

Project Code Intelligence (PCI) индексирует Git-репозитории и предоставляет агентам кодирования структурированные доказательства для исследований, рефакторинга, сопровождения и работы по безопасности. Агенты могут искать по концепции или идентификатору, проверять кандидатные связи, оценивать радиус поражения изменения, находить повторяющиеся формы реализации и запрашивать результаты статического анализа перед редактированием кода.

PCI не является автономным рецензентом, а его граф — не граф вызовов компиляторного уровня. Он сужает область поиска и предоставляет доказательства; агент по-прежнему проверяет важные выводы в исходном коде.

С чем он помогает

Исследование и ориентация

  • Поиск точных идентификаторов, имён файлов, ключей конфигурации и известных строк.

  • Поиск по поведению, когда соответствующие имена неизвестны.

  • Просмотр языков репозитория, ролей файлов, снимков, покрытия парсером и свежести индекса.

  • Получение ограниченных записей с путями, диапазонами строк, метаданными и фрагментами исходного кода.

  • Работа с несколькими репозиториями через именованные коллекции и фильтры репозиториев.

Более безопасные изменения

  • Поиск кандидатных вызывающих, вызываемых, ссылок, тестов и связей на уровне модулей.

  • Проверка доказательств радиуса поражения перед удалением, переименованием или изменением символа.

  • Выявление сигналов точек входа, осиротевших элементов и покрытия тестами.

  • Внедрение близлежащих доказательств в поддерживаемых агентов кодирования при добавлении или удалении определений.

Сопровождение и избыточность

  • Поиск групп функций, повторяющих мотив формы вызова.

  • Ранжирование кандидатов на избыточность по сходству, оценке стоимости абстракции и вероятной чистой ценности.

  • Проведение аудита репозитория на устаревшие индексы, дублирующиеся имена, кандидатов на избыточность и статические находки.

Безопасность и статический анализ

  • Приём отчётов SARIF вместе с записями исходного кода.

  • Поиск нормализованных находок по инструменту, правилу, уровню, состоянию базовой линии или пути.

  • Получение диагностики, потоков кода и метаданных запуска без необходимости разбирать агентом сырые артефакты SARIF.

Related MCP server: Graft

Как это работает

pci index разбирает файлы репозитория в ограниченные записи, извлекает метаданные и кандидатные связи и сохраняет снимки в Postgres/pgvector. Семантические эмбеддинги необязательны: лексический поиск и большинство структурных доказательств остаются доступными с --no-embed.

pci mcp предоставляет доступ к индексу через локальный MCP-сервер stdio. Агенты кодирования используют его инструменты, ориентированные на фильтры, для обнаружения вероятно релевантного кода, а затем читают и проверяют живой исходный код перед действием.

Архитектура локального развёртывания по умолчанию:

  • Postgres/pgvector: Docker или Podman Compose.

  • Сервисы эмбеддингов для Linux: модули Podman Quadlet, управляемые пользовательским systemd.

  • Эмбеддинги на Apple Silicon: нативный сервис MLX.

  • Интеграция с агентами: MCP-сервер stdio с опциональными хуками для доказательств изменений.

Удалённые Postgres и OpenAI-совместимые конечные точки эмбеддингов поддерживаются, когда такой компромисс осознан.

Быстрый старт

Установите CLI из клона:

uv tool install /path/to/project-code-intelligence
export PATH="$HOME/.local/bin:$PATH"

Запустите встроенную базу данных и лучший доступный локальный бэкенд эмбеддингов:

pci doctor --start
pci doctor

Индексируйте Git-репозиторий:

cd /path/to/repo
pci index .

Установите конфигурацию MCP для вашего агента кодирования:

pci mcp install --target codex

Поддерживаемые цели включают claude, codex, opencode, pi, vscode, copilot, cline и zed. См. docs/MCP_SETUP.md для настройки под конкретного клиента, ограничения проекта и обработки учётных данных.

Для лексического поиска без эмбеддингов:

pci doctor --start-db
pci index --no-embed .

Основные инструменты агента

Инструмент

Назначение

code_intel_status

Свежесть индекса, область действия, количество записей и возможности запросов.

list_code_intel_files

Инвентаризация файлов, отфильтрованных по языку, роли, пути или статусу сгенерированности/тестов.

search_code_intel_text

Точный индексированный поиск символов, имён файлов, ключей и известных строк.

search_code_intel_semantic

Поиск по концепции, когда идентификаторы неизвестны.

get_code_intel_record

Получение полных индексированных записей и метаданных.

related_code_intel

Кандидатные доказательства вызывающих, вызываемых, ссылок и связанных символов.

blast_radius

Вызывающие, тесты, связи, сигналы точек входа и семантические соседи для предлагаемого изменения.

find_redundancy

Повторяющиеся группы форм вызова, ранжированные по вероятной ценности рефакторинга.

search_static_findings

Фильтрация нормализованных находок SARIF.

get_static_finding

Получение диагностики, потоков кода и деталей запуска статического анализа.

Запустите pci audit для отчёта о доказательствах по всему дереву.

Доказательства, а не вердикты

PCI намеренно различает более сильные индексированные факты и приблизительные или эвристические доказательства.

  • Кандидатные рёбра связей не являются фактами графа вызовов с проверкой типов.

  • Радиус поражения не может доказать, что изменение безопасно.

  • Оценки избыточности не могут решить, должны ли две функции разделять абстракцию.

  • Статические находки сохраняют ограничения своего исходного анализатора.

  • Индекс может быть устаревшим после незакоммиченных или недавно закоммиченных изменений.

  • Семантический поиск может пропустить релевантный код или вернуть правдоподобных соседей.

Проверяйте важных вызывающих и находки в живом исходном коде. Используйте прямое чтение файлов для известных путей и небольших ограниченных вопросов; PCI наиболее полезен, когда местоположение, имя или влияние ещё неизвестны.

Установка

Python CLI

Установите для текущего пользователя с помощью uv:

uv tool install /path/to/project-code-intelligence

Для редактируемой установки для разработки:

cd /path/to/project-code-intelligence
python -m venv .venv
. .venv/bin/activate
python -m pip install -e .

Nix

На NixOS или другом Linux-хосте с включёнными flakes:

nix build
nix run . -- doctor --skip-db --embedding skip
nix develop

Установите постоянно в пользовательский профиль:

nix profile install .#project-code-intelligence

Закрытие Nix содержит CLI, MCP-сервер, зависимости Python и встроенные ресурсы Compose и Quadlet. Тяжёлые среды выполнения эмбеддингов для Linux остаются в контейнерах Podman, а не становятся нативными зависимостями Nix на хосте.

Локальная база данных

Запустите только встроенную базу данных Postgres/pgvector:

pci doctor --start-db

Установленный файл Compose материализуется в пользовательский кэш. Чтобы использовать собственную копию:

export PCI_COMPOSE_FILE=/path/to/docker-compose.yml
pci doctor --start-db

Локальный сервис эмбеддингов

CLI включает шаблоны сервисов; отдельного пакета эмбеддингов PCI нет. На Linux установите Podman и убедитесь, что systemctl --user работает, затем выполните:

pci doctor
pci doctor --start-embedding

PCI обнаруживает доступное оборудование, материализует только выбранный бэкенд в ~/.config/containers/systemd/, перезагружает пользовательский systemd и запускает его. Устаревшие модули PCI для других бэкендов эмбеддингов останавливаются и удаляются. Образы и модели по умолчанию загружаются при первом использовании.

Выберите бэкенд явно, когда это необходимо:

# AMD GPU
pci doctor --start-embedding --embedding-backend rocm

# NVIDIA GPU
pci doctor --start-embedding --embedding-backend cuda

# Portable CPU fallback
pci doctor --start-embedding --embedding-backend fastembed

# AMD Ryzen AI NPU (experimental)
pci doctor --start-embedding --embedding-backend lemonade

Доступные селекторы: auto, fastembed, lemonade, rocm, cuda и apple. PCI отклоняет запрошенный бэкенд, если его требуемое оборудование или среда выполнения недоступны. apple работает нативно, а не через Quadlet.

Чтобы запустить базу данных и явный бэкенд вместе:

pci doctor --start --embedding-backend rocm

Контейнеризованные бэкенды публикуют OpenAI-совместимую конечную точку по адресу http://127.0.0.1:18081/v1/embeddings по умолчанию. Запускайте один локальный бэкенд за раз, так как они используют эту конечную точку совместно.

Оборудование

Бэкенд

Примечания по среде выполнения

CPU

FastEmbed

Переносимый запасной вариант; Podman Quadlet.

Apple Silicon

MLX

Нативный процесс с использованием GPU Apple.

AMD Ryzen AI NPU

Lemonade FLM

Экспериментально; требует поддерживаемого оборудования XDNA, драйвера и прошивки.

AMD GPU

llama.cpp ROCm

Podman Quadlet с /dev/kfd и /dev/dri.

NVIDIA GPU

llama.cpp CUDA

Требует драйвера NVIDIA, Container Toolkit и поддержки CDI в Podman.

Остановите сервисы эмбеддингов, не затрагивая базу данных:

pci doctor --stop-embedding

Удалите сгенерированные локальные сервисы, кэши и встроенный том базы данных:

pci doctor --clean

--clean разрушителен и запрашивает подтверждение перед удалением данных.

Удалённые эмбеддинги

Запустите только базу данных, затем настройте доверенного OpenAI-совместимого провайдера:

pci doctor --start-db
export PCI_ALLOW_REMOTE_EMBEDDING=1
export PCI_EMBEDDING_ENDPOINT=https://api.openai.com/v1/embeddings
export PCI_EMBEDDING_ENDPOINT_MODEL=text-embedding-3-small
export OPENAI_API_KEY=...
pci doctor

Удалённые конечные точки получают текст, производный от исходного кода. Включайте их только тогда, когда это приемлемо для индексируемых репозиториев.

Индексация репозиториев

Индексируйте один репозиторий:

pci index /path/to/repo

Индексируйте несколько репозиториев как рабочее пространство:

cd /path/to/workspace
pci index service-api web-ui shared-lib

PCI выводит имена коллекций и репозиториев из путей. MCP-клиенты фильтруют по этим логическим именам, а не по абсолютным путям файловой системы. Индексация инкрементальна: неизменённые файлы повторно используются, когда существуют совместимые снимки.

Отчёты SARIF, найденные в путях индексируемых репозиториев, автоматически загружаются. Сбросьте и пересоберите один репозиторий с помощью:

pci index --reset /path/to/repo

Используйте pci status для просмотра запусков индексации и pci index --help для параметров парсера, эмбеддингов, коллекций и базы данных.

MCP и хуки агента

Создайте учётные данные базы данных только для чтения с областью проекта и выведите конфигурацию MCP:

pci index --init-db --mcp-config codex .

Установите или удалите конфигурацию MCP без повторной индексации:

pci mcp install --target codex
pci mcp install --target codex --uninstall

Сгенерированная конфигурация клиента не содержит пароля базы данных. Учётные данные хранятся в каталоге конфигурации PCI пользователя с режимом 0600. Pi использует мост MCP в локальном для проекта .pi/extensions/. Cline требует --config-path, так как его файл настроек ограничен пользователем.

Опциональные хуки могут напоминать агенту об использовании индекса и внедрять доказательства рядом с правками, которые добавляют или удаляют определения:

pci hook install --target codex

Поддержка хуков и детали установки различаются в зависимости от клиента. Хуки — это помощь, а не механизм принуждения или корректности. См. docs/MCP_SETUP.md и docs/SYSTEM_PROMPT.md.

Конфиденциальность и безопасность

Локальный вариант по умолчанию хранит записи и эмбеддинги, производные от исходного кода, на машине. Это не делает каждый артефакт безопасным для публикации.

Не коммитьте и не распространяйте дампы базы данных, артефакты восстановления, вывод SARIF, кэши эмбеддингов, файлы моделей, векторные индексы, сгенерированные данные из частных репозиториев или локальные файлы учётных данных MCP. Они могут содержать фрагменты исходного кода, пути, символы, находки, метаданные и эмбеддинги, производные от исходного кода.

Коллекции организуют репозитории, но не являются границей безопасности. Используйте отдельные базы данных или пользователей базы данных, когда репозитории требуют более сильной изоляции. Учётные данные MCP с областью проекта ограничивают обычный доступ, но не заменяют безопасность хоста и базы данных.

Когда PCI подходит

PCI обычно помогает, когда:

  • репозиторий или рабочее пространство велико или незнакомо;

  • идентификаторы неизвестны в начале задачи;

  • сгенерированные файлы делают широкие чтения дорогими или шумными;

  • рефакторинг требует доказательств вызывающих, тестов и связей;

  • работы по сопровождению требуют обнаружения повторяющихся шаблонов;

  • статические находки необходимо сопоставлять с исходным кодом;

  • несколько репозиториев должны быть доступны через один интерфейс.

Он может добавить мало ценности для небольшого знакомого репозитория, известного файла и диапазона строк или вопроса, на который отвечает одно ограниченное rg или чтение файла. Цель — не заменить стандартные инструменты разработчика, а улучшить неопределённое обнаружение и этапы планирования изменений вокруг них.

Сокращение токенов и затрат может быть полезным побочным эффектом, но PCI этого не обещает. Измеряйте, улучшает ли индекс реальные сеансы, с помощью docs/EVALUATING_VALUE.md и подсказки для ретроспективы сеанса.

Разработка

MCP-сервер использует stdio; Docker Compose предназначен для локальной базы данных, а не для размещения процесса MCP. Запустите полный шлюз разработки с помощью:

nix develop
make check

Для изменений в поведении приёма, базы данных или MCP также выполните:

docker compose up -d pgvector
make integration-smoke

См. CONTRIBUTING.md и AGENTS.md для соглашений проекта и мер защиты публикации.

Документация

Лицензия

MIT. См. LICENSE.

Install Server
A
license - permissive license
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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 Servers

  • A
    license
    A
    quality
    A
    maintenance
    Local-first code intelligence MCP server with hybrid BM25 + ONNX vector search, symbol-level impact analysis, diff-aware PR review with risk scoring, and persistent memory tied to git state.
    36
    695
    76
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Local-first codebase context engine that parses code into a ranked dependency graph and serves it to AI tools via MCP for deep structural understanding.
    5
    8
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 159 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.
    15
    40,154
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A local code-intelligence engine for AI agents that indexes repositories into a PostgreSQL-backed code graph and serves structured, token-budgeted context over MCP and HTTP, enabling targeted queries on symbols, dependencies, contracts, and impact analysis.
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.

  • Enterprise code intelligence for M&A, security audits, and tech debt. Hosted server with 200k free.

  • Deterministic context layer for your codebase: change impact, blast radius, answers with receipts.

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/cvandesande/project-code-intelligence'

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