[English](../../README.md) · [简体中文](README.zh-CN.md) · **Русский** · [हिन्दी](README.hi.md) · [العربية](README.ar.md)
**Инфраструктура интеллектуального анализа кода для AI-агентов.** 65 инструментов, 32 языка, проверенных в CI, 24 рабочих процесса для агентов. Единый бинарный файл Go.
```bash
curl -fsSL https://raw.githubusercontent.com/blackwell-systems/agent-lsp/main/install.sh | sh && agent-lsp init
```
## Что это такое?
agent-lsp — это **MCP-сервер**, который оркестрирует существующие LSP-серверы (gopls, rust-analyzer, jdtls и т. д.), объединяя их в рабочие процессы, ориентированные на агентов.
**Это не LSP-сервер** — это уровень оркестрации, который управляет языковыми серверами и предоставляет пакетные операции, спекулятивное редактирование и многошаговые рабочие процессы через инструменты MCP.
**Архитектура:**
- **Языковые серверы** (gopls, rust-analyzer и т. д.) → предоставляют интеллектуальный анализ кода
- **agent-lsp** (MCP-сервер) → оркестрирует рабочие процессы, поддерживает «прогретую» среду выполнения
- **AI-агенты** → потребляют через протокол MCP
## Зачем нужен agent-lsp?
**Постоянная «прогретая» среда выполнения**
Языковые серверы сохраняют проиндексированное состояние между сессиями агента. Первая сессия: индексирует рабочее пространство (~10 с для типичных проектов). Последующие сессии: мгновенно. Никаких издержек на холодный старт при каждом запросе.
**Пакетные операции**
`blast_radius` → один вызов возвращает все экспорты + всех вызывающих (с разделением на тестовых и нетестовых). Без оркестрации: более 20 последовательных вызовов LSP.
**Спекулятивное редактирование**
`simulate_edit` → предпросмотр изменений в памяти, проверка дельты диагностики, применение или отмена. Тестируйте правки до того, как коснётесь диска.
**Оркестрация рабочих процессов**
24 навыка, которые связывают операции LSP в законченные конвейеры:
- `/lsp-refactor` → анализ влияния → предпросмотр → применение → проверка сборки → запуск тестов
- `/lsp-safe-edit` → предпросмотр → дифф диагностики → применение, если безопасно
- `/lsp-verify` → диагностика LSP → сборка → набор тестов
**Много языков, одна сессия**
Один процесс agent-lsp маршрутизирует `.go` в gopls, `.ts` в tsserver, `.py` в pyright. Никакой переконфигурации при переходе между проектами. Сессия сохраняется между файлами и репозиториями.
> [!TIP]
> **Оптимизированный по токенам вывод:** ответы инструментов кодируются в [GCF](https://gcformat.com) вместо JSON. На 30-84% меньше токенов в зависимости от инструмента (до 92,7% с дедупликацией в рамках сессии). [100%-е понимание LLM на каждой передовой модели](https://gcformat.com/guide/benchmarks.html), 91,2% на сложных графах кода, где JSON в среднем даёт 54,1%. См. [ниже](#token-optimized-output-gcf) измеренную экономию по каждому инструменту.
**Как всё это сочетается:** [LSP](https://microsoft.github.io/language-server-protocol/) (Language Server Protocol) — это способ, которым редакторы получают интеллектуальный анализ кода: автодополнения, диагностику, переход к определению. [MCP](https://modelcontextprotocol.io/) (Model Context Protocol) — стандартный способ, которым AI-инструменты вроде Claude Code обнаруживают и вызывают внешние инструменты. agent-lsp соединяет эти два мира: интеллект языкового сервера, доступный AI-агентам.
## Используйте, когда
- Строите агентные системы генерации кода
- Автоматизируете рефакторинги в больших кодовых базах
- Разрабатываете CI-инструментарий, которому нужен программный интеллектуальный анализ кода
- Любой рабочий процесс, где последовательные вызовы LSP слишком медленны или сложны
### Что говорят агенты
Мы попросили AI-агентов оценить agent-lsp на 10 задачах по написанию кода (найти вызывающих, безопасно переименовать, предпросмотреть правки, обнаружить мёртвый код) и дать честную оценку. Четыре разные модели, четыре независимые оценки, один и тот же вывод:
> **Claude (Opus 4.6):** «Я бы рекомендовал agent-lsp для любого рабочего процесса, связанного с рефакторингом, анализом влияния или безопасным редактированием. Выделяющиеся инструменты — это `blast_radius` (радиус влияния за один вызов, с разделением на тестовых/нетестовых, для воспроизведения которого потребовалось бы 5-10 команд grep), `go_to_implementation` (проверенное типами удовлетворение интерфейсов, чего grep попросту не может), и рабочий процесс сессии симуляции (спекулятивная проверка типов без обращения к диску, у которой вообще нет эквивалента в grep/read).»
> **Cursor (auto):** «Я бы рекомендовал agent-lsp для тяжёлых рефакторингов и навигации по коду, потому что инструменты переименования, ссылок, реализаций, иерархии вызовов и симуляции устраняют массу хрупкой работы с grep и ручным редактированием и делают изменения безопаснее.»
> **GPT-5.5 (через Codex):** «Я бы рекомендовал agent-lsp для работы, учитывающей символы: ссылки, реализации, предпросмотры переименований, диагностика и анализ структуры больших файлов заметно быстрее и менее подвержены ошибкам, чем циклы grep/read.»
> **Gemini 2.5 Pro (через Gemini CLI):** «Я бы настоятельно рекомендовал agent-lsp, потому что он обеспечивает уровень семантической осведомлённости, с которым стандартные инструменты текстового поиска попросту не могут сравниться. Возможность выполнять переименования с высокой уверенностью, находить реализации интерфейсов и предпросматривать диагностическое влияние правок без записи на диск существенно снижает риск внесения регрессий.»
### Проверено, а не предположено
Все прочие реализации MCP-LSP перечисляют поддерживаемые языки в конфигурационном файле. Ни одна из них не запускает реальный языковой сервер в CI, чтобы убедиться, что он работает.
CI agent-lsp запускает **32 реальных языковых сервера** против реальных фикстурных кодовых баз при каждом push: Go, Python, TypeScript, Rust, Java, C, C++, C#, Ruby, PHP, Kotlin, Swift, Scala, Zig, Lua, Elixir, Gleam, Clojure, Dart, Terraform, Nix, Prisma, SQL, MongoDB, MQL и другие. Когда мы говорим «работает с gopls», это проверенное, автоматизированное утверждение, а не надежда.
### Спекулятивное выполнение
Симулируйте изменения в памяти перед записью на диск. Ни одна другая реализация MCP-LSP этого не умеет.
`preview_edit` предпросматривает диагностическое влияние любой правки. Вы точно видите, что сломается, ещё до того, как файл будет затронут. `simulate_chain` оценивает последовательность зависимых правок (переименовать функцию, обновить всех вызывающих, изменить тип возвращаемого значения) и сообщает, какой шаг первым вносит ошибку.
8 инструментов спекулятивного выполнения. Полный рабочий процесс см. в [docs/guide/speculative-execution.md](../../docs/guide/speculative-execution.md).
### Экономия токенов
Структурированные ответы LSP используют **в 5-34 раза меньше токенов**, чем grep/read на тех же задачах. На HashiCorp Consul (319 тыс. строк) анализ радиуса влияния использует 17,7 МБ через grep против 841 КБ через LSP, сокращая 5 534 вызова инструментов до 119. Экономия масштабируется с размером кодовой базы. Полный эксперимент по пяти кодовым базам см. в [docs/guide/token-savings.md](../../docs/guide/token-savings.md).
### Оптимизированный по токенам вывод (GCF)
Ответы инструментов кодируются в [GCF (Graph Compact Format)](https://gcformat.com) вместо JSON. GCF устраняет повторение имён полей, повторение идентификаторов и структурные издержки на каждую запись.
| Профиль | Инструменты | Экономия против JSON |
|---------|-------|----------------|
| Tabular | Все 66 инструментов | **30-51%** |
| Graph | blast_radius, find_callers, explore_symbol, find_references, type_hierarchy, cross_repo, detect_changes, list_symbols | **79-84%** |
| Graph + дедупликация в рамках сессии | То же, через [gcf-proxy](https://github.com/blackwell-systems/gcf-proxy) `--session` | **92,7%** (5-й вызов) |
Сгруппированные/вложенные ответы (вызывающие под символом, диагностика со связанной информацией) тоже табулируются, давая ~14% против JSON на этой форме ([подробности](../../docs/guide/gcf-integration.md#nested-container-responses-grouped-data)).
GCF включён по умолчанию. Чтобы вернуться к JSON:
```bash
export AGENT_LSP_OUTPUT_FORMAT=json
```
Бенчмарк: `go run scripts/gcf-benchmark.go`. Детали архитектуры см. в [docs/guide/gcf-integration.md](../../docs/guide/gcf-integration.md).
**GCF:** [gcformat.com](https://gcformat.com) · [Spec](https://github.com/blackwell-systems/gcf) · [Go](https://github.com/blackwell-systems/gcf-go) · [Python](https://github.com/blackwell-systems/gcf-python) · [TypeScript](https://github.com/blackwell-systems/gcf-typescript) · [Playground](https://gcformat.com/playground.html)
### Почему оркестрация важна
AI-агенты вносят некорректные изменения в код, потому что не видят полной картины: кто вызывает эту функцию, что сломается, если я её переименую, проходит ли сборка по-прежнему. У языковых серверов есть ответы, но сырые инструменты LSP требуют более 20 последовательных вызовов и сложной логики оркестрации.
agent-lsp решает это, кодируя корректные многошаговые операции в единичные вызовы и навыки. `blast_radius` делает за один вызов то, на что у агента ушло бы более 20 вызовов. `/lsp-refactor` связывает влияние → предпросмотр → применение → проверку → тест без пооперационной оркестрации на каждый промпт.
### Режим постоянного демона
Проектам на Python и TypeScript требуются минуты фоновой индексации, прежде чем заработает `find_references`. agent-lsp автоматически порождает постоянный брокер-демон, который переживает переходы между сессиями, так что рабочее пространство остаётся проиндексированным. Первая сессия: демон запускается и индексирует (~10 с для FastAPI). Последующие сессии: мгновенное подключение к прогретому демону. Автоматический выход после 30 минут бездействия. Go, Rust и другие быстро индексируемые языки полностью обходят это (нулевые издержки).
### Принуждение к фазам
Навыки сообщают агентам правильный порядок операций. Принуждение к фазам заставляет среду выполнения *блокировать* нарушения, а не полагаться на то, что агент последует инструкциям.
Когда агент активирует навык, каждый вызов инструмента проверяется на соответствие разрешениям текущей фазы. Вызов `apply_edit` во время анализа радиуса влияния не проходит молча; он возвращает ошибку с конкретным руководством по восстановлению («сначала завершите фазу blast_radius, разрешённые инструменты: [blast_radius, find_references]»). Фазы продвигаются автоматически по мере того, как агент вызывает инструменты из более поздних фаз.
Ни один другой поставщик инструментов MCP не принуждает к порядку рабочего процесса во время выполнения. См. [docs/guide/phase-enforcement.md](../../docs/guide/phase-enforcement.md).
### Анализ конкурентности
Инспектор включает 4 проверки конкурентности, работающие для 25 языков в 4 семействах конкурентности (goroutine, thread, async, actor):
- **Невосстановленная конкурентная точка входа**: goroutine/thread/task без восстановления
- **Непроверенное общее состояние**: голые утверждения типа над sync.Map, ConcurrentHashMap
- **Канал никогда не закрывается**: каналы/очереди, созданные, но никогда не закрытые (утечки goroutine)
- **Общее поле без синхронизации**: поля, к которым обращаются из конкурентных контекстов без синхронизации
`blast_radius` помечает символы как `sync_guarded: true`, когда родительский тип имеет мьютекс. `find_callers` с `cross_concurrent: true` прослеживает цепочки вызовов через границы goroutine/thread. Навык `/lsp-concurrency-audit` формирует отчёт о безопасности на уровне полей для любого типа.
### Автоматическая диагностика
Инструменты редактирования символов (`replace_symbol_body`, `insert_after_symbol`, `insert_before_symbol`, `safe_delete_symbol`) автоматически возвращают счётчики `errors_after` и `warnings_after`. Агенты сразу узнают, сломала ли правка что-либо, без отдельного вызова `get_diagnostics`.
`safe_apply_edit` объединяет предпросмотр и применение в одном вызове: спекулятивно предпросматривает и применяет к диску только если `net_delta == 0` (никаких новых ошибок). Один вызов инструмента вместо трёх.
### Работает с
| AI-инструмент | Транспорт | Настройка |
|---------|-----------|-------|
| [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | stdio | `agent-lsp init` |
| [Cursor](https://cursor.com) | stdio | `agent-lsp init` |
| [Windsurf](https://windsurf.com) | stdio | `agent-lsp init` |
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | stdio | `agent-lsp init` |
| [Continue](https://continue.dev) | stdio | `agent-lsp init` |
| [Cline](https://github.com/cline/cline) | stdio | `agent-lsp init` |
| Любой MCP-клиент | HTTP+SSE | `agent-lsp --http --port 8080` |
Готовые к копированию конфигурации см. в [docs/getting-started/mcp-clients.md](../../docs/getting-started/mcp-clients.md).
## Навыки
Сырые инструменты игнорируются. Навыки используются. Каждый навык кодирует правильную последовательность инструментов, так что рабочие процессы действительно происходят без пооперационных инструкций по оркестрации на каждый промпт. Навыки доступны как слэш-команды [AgentSkills](https://github.com/anthropics/agent-skills) и как MCP-промпты через `prompts/list` / `prompts/get` для любого MCP-клиента.
Полные описания и руководство по использованию см. в [docs/guide/skills.md](../../docs/guide/skills.md).
**Прежде чем что-либо менять**
| Навык | Назначение |
|-------|---------|
| `/lsp-impact` | Анализ радиуса влияния перед тем, как коснуться символа или файла |
| `/lsp-implement` | Найти все конкретные реализации интерфейса |
| `/lsp-dead-code` | Обнаружить экспорты с нулевым числом ссылок перед очисткой |
**Безопасное редактирование**
| Навык | Назначение |
|-------|---------|
| `/lsp-safe-edit` | Спекулятивный предпросмотр до записи на диск; дифф диагностики до/после; выводит действия над кодом при ошибках |
| `/lsp-simulate` | Тестировать изменения в памяти, не касаясь файла |
| `/lsp-edit-symbol` | Редактировать именованный символ, не зная его файла или позиции |
| `/lsp-edit-export` | Безопасное редактирование экспортируемых символов, сначала находит всех вызывающих |
| `/lsp-rename` | Предохранитель `prepare_rename`, предпросмотр всех мест, подтверждение, атомарное применение |
**Начало работы**
| Навык | Назначение |
|-------|---------|
| `/lsp-onboard` | Онбординг проекта в первой сессии: определить языки, составить карту пакетов, найти точки входа и «горячие точки», проверить диагностику |
**Понимание незнакомого кода**
| Навык | Назначение |
|-------|---------|
| `/lsp-explore` | «Расскажи мне об этом символе»: наведение + реализации + иерархия вызовов + ссылки за один проход |
| `/lsp-understand` | Углублённая карта кода для символа или файла: информация о типах, иерархия вызовов, ссылки, исходный код |
| `/lsp-docs` | Трёхуровневая документация: наведение → офлайн-тулчейн → исходный код |
| `/lsp-cross-repo` | Найти все использования символа библиотеки в репозиториях-потребителях |
| `/lsp-local-symbols` | Список символов в рамках файла, поиск использований и информация о типах |
**После редактирования**
| Навык | Назначение |
|-------|---------|
| `/lsp-verify` | Диагностика + сборка + тесты после каждой правки |
| `/lsp-fix-all` | Применить быстрые исправления для всех диагностик в файле |
| `/lsp-test-correlation` | Найти и запустить только те тесты, которые покрывают отредактированный файл |
| `/lsp-format-code` | Отформатировать файл или выделение через форматтер языкового сервера |
**Генерация кода**
| Навык | Назначение |
|-------|---------|
| `/lsp-generate` | Запустить генерацию кода на стороне сервера (заглушки интерфейсов, скелеты тестов, моки) |
| `/lsp-extract-function` | Извлечь блок кода в именованную функцию через действия над кодом |
**Полный рабочий процесс**
| Навык | Назначение |
|-------|---------|
| `/lsp-refactor` | Сквозной рефакторинг: радиус влияния → предпросмотр → применение → проверка → тест |
| `/lsp-inspect` | Полный аудит качества кода (12 проверок): мёртвые символы, покрытие тестами, обработка ошибок, дрейф документации, безопасность конкурентности |
| `/lsp-concurrency-audit` | Аудит безопасности конкурентности на уровне полей для типа: прослеживает конкурентный доступ, помечает несинхронизированные поля |
## Docker
**Режим Stdio** (MCP-клиент порождает контейнер напрямую):
```bash
# Go
docker run --rm -i -v /your/project:/workspace ghcr.io/blackwell-systems/agent-lsp:go go:gopls
# TypeScript
docker run --rm -i -v /your/project:/workspace ghcr.io/blackwell-systems/agent-lsp:typescript typescript:typescript-language-server,--stdio
# Python
docker run --rm -i -v /your/project:/workspace ghcr.io/blackwell-systems/agent-lsp:python python:pyright-langserver,--stdio
```
**Режим HTTP** (постоянная служба, удалённые клиенты подключаются по HTTP+SSE):
```bash
docker run --rm \
-p 8080:8080 \
-v /your/project:/workspace \
-e AGENT_LSP_TOKEN=your-secret-token \
ghcr.io/blackwell-systems/agent-lsp:go \
--http --port 8080 go:gopls
```
Образы по умолчанию запускаются от имени пользователя без прав root (uid 65532). Устанавливайте `AGENT_LSP_TOKEN` через переменную окружения, никогда через `--token` в командной строке. Образы также зеркалируются на Docker Hub (`blackwellsystems/agent-lsp`). Полный список тегов, настройку режима HTTP и параметры усиления безопасности см. в [DOCKER.md](../../DOCKER.md).
## Настройка
### Шаг 1: Установите agent-lsp
```bash
curl -fsSL https://raw.githubusercontent.com/blackwell-systems/agent-lsp/main/install.sh | sh
```
Альтернативные методы установки
**macOS / Linux**
```bash
brew install blackwell-systems/tap/agent-lsp
```
**Windows**
```powershell
# PowerShell (no admin required)
iwr -useb https://raw.githubusercontent.com/blackwell-systems/agent-lsp/main/install.ps1 | iex
# Scoop
scoop bucket add blackwell-systems https://github.com/blackwell-systems/agent-lsp
scoop install blackwell-systems/agent-lsp
# Winget
winget install BlackwellSystems.agent-lsp
```
**Все платформы**
```bash
# pip
pip install agent-lsp
# npm
npm install -g @blackwell-systems/agent-lsp
# Go install
go install github.com/blackwell-systems/agent-lsp/cmd/agent-lsp@latest
```
### Шаг 2: Установите языковые серверы
Установите серверы для вашего стека. Распространённые:
| Язык | Сервер | Установка |
|----------|--------|---------|
| TypeScript / JavaScript | `typescript-language-server` | `npm i -g typescript-language-server typescript` |
| Python | `pyright-langserver` | `npm i -g pyright` |
| Go | `gopls` | `go install golang.org/x/tools/gopls@latest` |
| Rust | `rust-analyzer` | `rustup component add rust-analyzer` |
| C / C++ | `clangd` | `apt install clangd` / `brew install llvm` |
| Ruby | `solargraph` | `gem install solargraph` |
Полный список из 32 поддерживаемых языков в [docs/reference/language-support.md](../../docs/reference/language-support.md).
### Шаг 3: Проверьте настройку
```bash
agent-lsp doctor
```
Проверяет каждый настроенный языковой сервер и сообщает о его возможностях. Устраните любые сбои перед продолжением. Команды установки и особенности конкретных серверов см. в [поддержке языков](../../docs/reference/language-support.md).
### Шаг 4: Настройте ваш AI-инструмент
```bash
agent-lsp init
```
Обнаруживает языковые серверы в вашем PATH, спрашивает, какой AI-инструмент вы используете, записывает правильную конфигурацию MCP и устанавливает правила осведомлённости о навыках для вашего AI-провайдера (CLAUDE.md для Claude Code, `.cursor/rules/` для Cursor, `.clinerules` для Cline, `.windsurfrules` для Windsurf, `GEMINI.md` для Gemini CLI). Для CI или скриптового использования: `agent-lsp init --non-interactive`.
Сгенерированная конфигурация выглядит так:
```json
{
"mcpServers": {
"lsp": {
"type": "stdio",
"command": "agent-lsp",
"args": [
"go:gopls",
"typescript:typescript-language-server,--stdio",
"python:pyright-langserver,--stdio"
]
}
}
}
```
Каждый аргумент имеет вид `language:server-binary` (аргументы сервера разделяются запятыми).
### Шаг 5: Установите навыки
```bash
git clone https://github.com/blackwell-systems/agent-lsp.git /tmp/agent-lsp-skills
cd /tmp/agent-lsp-skills/skills && ./install.sh --copy
```
Навыки — это файлы промптов, копируемые в конфигурацию вашего AI-инструмента. `--copy` означает, что клон затем можно безопасно удалить.
Навыки также доступны как **MCP-промпты**: любой MCP-клиент может обнаружить их через `prompts/list` и получить полные инструкции рабочего процесса через `prompts/get`, без ручной установки. Путь `install.sh` предназначен для клиентов, совместимых с AgentSkills (слэш-команды Claude Code).
### Шаг 6: Разрешите права инструментов (Claude Code)
Для Claude Code добавьте `mcp__lsp__*` в свой список разрешений, чтобы все 65 инструментов были доступны без запросов на подтверждение по каждому инструменту:
```json
// ~/.claude/settings.json
{
"permissions": {
"allow": ["mcp__lsp__*"]
}
}
```
Без этого Claude Code будет запрашивать разрешение при каждом вызове инструмента. Другие MCP-клиенты обрабатывают разрешения иначе; сверьтесь с документацией вашего клиента.
Навыки — это многоинструментальные рабочие процессы, кодирующие надёжные процедуры: проверка радиуса влияния перед правкой, спекулятивный предпросмотр перед записью, запуск тестов после изменения. Полный список см. в [docs/guide/skills.md](../../docs/guide/skills.md).
### Шаг 7: Начните работать
Ваш AI-агент вызывает инструменты автоматически. Первый вызов инициализирует рабочее пространство:
```
start_lsp(root_dir="/your/project")
```
Это то, что делает агент, а не то, что вы вводите. Затем используйте любой из 65 инструментов. Сессия остаётся прогретой; при переключении файлов перезапуск не нужен.
## Что уникально в agent-lsp
| Возможность | Детали |
|------------|---------|
| Инструменты | **65** |
| Языки (проверенные в CI) | **32**, сквозные интеграционные тесты при каждом push |
| Рабочие процессы агентов (навыки) | **24**, именованные многошаговые процедуры, обнаруживаемые через MCP `prompts/list` |
| Спекулятивное выполнение | **8 инструментов**, симуляция изменений перед записью на диск |
| Принуждение к фазам | **4 навыка**, среда выполнения блокирует внеочередные вызовы инструментов с руководством по восстановлению |
| Модель соединения | **постоянная**, прогретый индекс между файлами и проектами |
| Иерархия вызовов | **✓**, единый инструмент, параметр направления |
| Иерархия типов | **✓**, проверено в CI |
| Межрепозиторные ссылки | **✓**, многокорневое рабочее пространство |
| Автослежение | **✓**, всегда включено, отслеживание файлов с антидребезгом |
| Транспорт HTTP+SSE | **✓**, аутентификация по bearer token, Docker без root |
| Распространение | **единый бинарный файл Go**, 10 каналов установки |
## Сценарии использования
- **Мультипроектные сессии**: направьте свой AI на `~/code/`, работайте в любом проекте без переконфигурации
- **Полиглотная разработка**: бэкенд на Go + фронтенд на TypeScript + скрипты на Python в одной сессии
- **Большие монорепозитории**: один сервер обрабатывает все языки, маршрутизирует по расширению файла
- **Миграция кода**: рефакторинг между репозиториями с полным отслеживанием межрепозиторных ссылок
- **CI-конвейеры**: проверка против реального поведения языкового сервера
- **Нишевые языковые стеки**: Gleam, Elixir, Prisma, Zig, Clojure, Nix, Dart, Scala, MongoDB — всё проверено в CI
## Поддержка нескольких языков
32 языка, сквозная проверка в CI против реальных языковых серверов при каждом запуске CI. Ни одна другая реализация MCP-LSP не тестирует в CI ни одного языка.
Go, Python, TypeScript, Rust, Java, C, C++, C#, Ruby, PHP, Kotlin, Swift, Scala, Zig, Lua, Elixir, Gleam, Clojure, Dart, Terraform, Nix, Prisma, SQL, MongoDB, JavaScript, YAML, JSON, Dockerfile, CSS, HTML, MQL.
Полную матрицу покрытия см. в [docs/reference/language-support.md](../../docs/reference/language-support.md).
## Инструменты
65 инструментов, охватывающих навигацию, анализ, рефакторинг, редактирование символов, композитное исследование, безопасное редактирование, спекулятивное выполнение и жизненный цикл сессии. Всё проверено в CI.
Полный справочник с параметрами и примерами см. в [docs/reference/tools.md](../../docs/reference/tools.md).
## Дополнительное чтение
### Документация
- [Справочник по инструментам](../../docs/reference/tools.md): полный справочник по инструментам с параметрами и примерами
- [Справочник по навыкам](../../docs/guide/skills.md): справочник по навыкам, рабочие процессы, сценарии использования и композиция
- [Поддержка языков](../../docs/reference/language-support.md): матрица покрытия языков
- [Архитектура](../../docs/architecture/architecture.md): системный дизайн и внутреннее устройство
- [Спекулятивное выполнение](../../docs/guide/speculative-execution.md): рабочие процессы «симулируй, потом применяй»
- [Соответствие LSP](../../docs/reference/lsp-conformance.md): покрытие спецификации LSP 3.17
- [Docker](../../DOCKER.md): теги Docker, compose и кэширование томов
### Участие в разработке
- [Заметки по CI](../../docs/architecture/ci-notes.md): особенности CI и детали тестовой оснастки
- [Распространение](../../docs/architecture/distribution.md): каналы установки и конвейер релизов
## Разработка
```bash
git clone https://github.com/blackwell-systems/agent-lsp.git
cd agent-lsp && go build ./...
go test ./... # unit tests
go test ./... -tags integration # integration tests (requires language servers)
```
## Использование как библиотеки
Пакеты `pkg/lsp`, `pkg/session` и `pkg/types` предоставляют стабильный Go API для непосредственного использования LSP-клиента agent-lsp без запуска MCP-сервера.
```go
import "github.com/blackwell-systems/agent-lsp/pkg/lsp"
client := lsp.NewLSPClient("gopls", []string{})
client.Initialize(ctx, "/path/to/workspace")
defer client.Shutdown(ctx)
locs, err := client.GetDefinition(ctx, fileURI, lsp.Position{Line: 10, Character: 4})
```
Полный API пакетов см. в [docs/architecture/architecture.md](../../docs/architecture/architecture.md).
## Лицензия
MIT