# Copilot видит ваш workspace. Maguyva составляет карту репозитория.

Canonical source: https://maguyva.ai/ru/for-vscode

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Агент в VS Code читает файлы, которые вы прикрепили, и те, что нашёл сам. Maguyva индексирует весь репозиторий и отдаёт его через MCP, поэтому перед правкой агент спрашивает, где находится символ и кто его вызывает.

> Одна запись servers в .vscode/mcp.json: URL и заголовок Authorization.

## Что нужно знать о VS Code

Четыре факта, специфичных для VS Code.

### .vscode/mcp.json

Серверы размещаются в `servers`, а не в `mcpServers`. Чтобы сервер работал во всех workspace, выполните `MCP: Open User Configuration` и добавьте ту же запись в `mcp.json` профиля.

### type: http

VS Code подключается к эндпоинту Maguyva по Streamable HTTP и переходит на SSE, только если сервер его не поддерживает. Локально ничего не запускается.

### Ссылка на переменную окружения

Заголовок выглядит как `Bearer ${env:MAGUYVA_API_KEY}`: VS Code подставляет значение из окружения, в котором был запущен, так что ключ не попадает в коммитимый файл. Хотите, чтобы ключ запрашивался? Переменная ввода спросит его один раз и сохранит.

### Доверие к рабочей области

Серверы из `.vscode/mcp.json` запускаются без отдельного запроса, как только вы доверяете workspace, и никогда — в ограниченном режиме. Кнопка Configure Tools в поле ввода чата включает и выключает отдельные инструменты.

## Пользовательские инструкции — это рабочее соглашение. Используйте их.

```text
# .github/copilot-instructions.md
- Запускай npm test, прежде чем считать изменение готовым.
- Никогда не правь сгенерированные файлы в src/gen/.
```

VS Code читает инструкции для всего проекта из `.github/copilot-instructions.md` или `AGENTS.md`, а точечные — из файлов `.github/instructions/*.instructions.md` с шаблоном `applyTo`. Используйте их для:

- Команд сборки, тестов и lint.
- Соглашений, в которых агент раз за разом ошибается.
- Папок, которые агенту трогать нельзя.

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

## Где заканчивается обзор workspace

Три вещи, которые агент не узнает из открытых файлов.

### // прикреплённое — ещё не всё

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

### // совпадение текста — не ссылка

Поиск по workspace находит строку. Он не отличит настоящий вызов от комментария, mock-объекта или одноимённого метода другого класса.

### // каждое чтение стоит контекста

Каждый файл, который агент открывает, чтобы сориентироваться, съедает контекст, нужный для самой правки. Один ранжированный ответ с file:line обходится дешевле десяти разведочных чтений.

## Maguyva как MCP-сервер в VS Code

Одна запись servers даёт агенту:

- **11 инструментов для вашего проиндексированного репозитория**: семантический, структурный (AST), графовый и текстовый поиск, а также поиск символов, зависимые и получение файлов.
- **Ответы с путями к файлам и номерами строк**: по более чем 285 языкам, чтобы агент сразу открывал нужный файл.
- **Инструменты только для чтения**: Инструменты Maguyva только запрашивают индекс. Ни один из них не меняет ваши файлы, так что каждое подтверждение касается чтения, а не записи.

> VS Code даёт агенту *ваш workspace*.
> Maguyva даёт агенту *карту репозитория*.

## Два рабочих процесса

Сначала спросите карту, потом редактируйте.

### 01. Найти тесты до изменения парсера

```text
vscode agent> какие тесты проходят через parseConfig?

dependency_search("parseConfig", dependents)
  tests/config/parse.test.ts:12
  tests/cli/flags.test.ts:88

→ После правки агент запускает эти два файла, а не весь набор тестов.
[exit 0]
```

Ответ называет два тестовых файла, которые доходят до парсера, и агент проверяет изменение там, где оно может сломаться.

### 02. Оценить переименование до первой правки

```text
vscode agent> переименуй OrderStatus.PENDING в OrderStatus.QUEUED

find_symbol("OrderStatus", references)
  23 ссылки в 9 файлах

→ Агент планирует один проход по девяти файлам.
[exit 0]
```

Число ссылок известно до правки, а не после того, как упадёт проверка типов.

## Настройка в VS Code

Три шага. Тариф Free: 3 репозитория, До 50 тыс. проиндексированных строк, без банковской карты.

### 01. Проиндексируйте репозиторий на maguyva.ai

Выберите тот, который вы уже знаете, чтобы оценить ответы.

### 02. Добавьте Maguyva в .vscode/mcp.json

`.vscode/mcp.json`

```json
{
  "servers": {
    "maguyva": {
      "type": "http",
      "url": "https://maguyva.tools/mcp",
      "headers": {
        "Authorization": "Bearer ${env:MAGUYVA_API_KEY}"
      }
    }
  }
}
```

### 03. Задайте ключ и запустите сервер

Задайте `MAGUYVA_API_KEY` в окружении, из которого запускаете VS Code, и запустите сервер кнопкой запуска над его записью. Задайте агенту вопрос, ответ на который вы уже знаете.

В [документации MCP](https://code.visualstudio.com/docs/agent-customization/mcp-servers) для VS Code описаны переменные ввода, переносимый формат .mcp.json и доверие к серверам.

## Проиндексируйте один репозиторий, который вы уже знаете.

Подключите VS Code через MCP и задайте вопрос, который можно проверить.
