# Подключение VS Code Copilot MCP

Интеграция 1C MCP Gateway с VS Code и GitHub Copilot через MCP extension (stdio или HTTP).

## Prerequisites

- VS Code 1.99+ с включённым GitHub Copilot и поддержкой MCP servers.
- Node.js 22+, проект `/var/www/mwi.yatsuk.pro`.
- Расширение MCP для VS Code (встроенное или `@modelcontextprotocol` ecosystem).
- Профиль 1С и активная база (Web Console или stdio tools).

## Пошаговая настройка

### 1. User settings MCP

Файл `settings.json` (User или Workspace):

```json
{
  "mcp.servers": {
    "1c-mcp-gateway": {
      "command": "npm",
      "args": ["run", "dev:gateway"],
      "cwd": "/var/www/mwi.yatsuk.pro",
      "env": {
        "ONEC_MCP_DATA_DIR": "/var/www/mwi.yatsuk.pro/.data"
      }
    }
  }
}
```

Альтернатива — `.vscode/mcp.json` в workspace 1С-проекта (EDT export root).

### 2. Workspace для 1С-кода

```json
{
  "folders": [
    { "path": "/opt/1c-projects/my-config" },
    { "path": "/var/www/mwi.yatsuk.pro", "name": "gateway" }
  ]
}
```

Copilot Chat видит локальные файлы + MCP tools gateway.

### 3. HTTP transport (remote team)

```json
{
  "mcp.servers": {
    "1c-mcp-gateway-http": {
      "url": "http://localhost:3000/mcp",
      "transport": "streamable-http",
      "headers": {
        "Authorization": "Bearer <issued-http-mcp-token>",
        "X-MCP-Client-ID": "vscode"
      }
    }
  }
}
```

Запуск backend:

```bash
ONEC_MCP_HTTP_TOKEN="dev-token" npm run dev:http
```

### 4. Docs snippet из Web Console

`http://localhost:3000` → Project → **Docs Snippet** — copy VS Code block из `/api/ide-config`.

### 5. Agent workflow

Рекомендуемый порядок tools (см. [MCP_CONNECTION.md](./MCP_CONNECTION.md)):

1. `list_profiles` → `switch_active_profile`
2. `discover_1c_context` → `bsl_get_context_for_task`
3. `bsl_run_diagnostics` при ошибках

## Copy-ready config

```bash
# Terminal 1 — gateway
cd /var/www/mwi.yatsuk.pro
export ONEC_MCP_ACTOR=local-ai-agent
npm run dev:gateway

# Terminal 2 — проверка (optional HTTP)
npm run dev:http
curl -s http://localhost:3000/api/ide-config | jq .
```

## Проверка tools/list

Copilot Chat → `@1c-mcp-gateway` → список tools или команда:

```
/tools list 1c-mcp-gateway
```

(зависит от версии MCP UI). Убедитесь в наличии `bsl_search`, `list_profiles`.

## Первый тестовый prompt

```
@1c-mcp-gateway Вызови list_profiles и get_active_profile.
Для активного профиля выполни bsl_search по запросу «ОбработкаПроведения»
и покажи top-3 совпадения с путями модулей.
```

## Типовые ошибки

| Симптом | Решение |
|---------|---------|
| MCP server not found | Проверьте ключ `mcp.servers` vs docs вашей версии VS Code |
| Copilot ignores tools | Explicit `@server` mention; включите agent mode |
| Dual gateway conflict | Не запускайте stdio и HTTP с одним data dir без lock awareness |
| Path with spaces | Экранируйте `cwd` или используйте symlink |
| 403 on HTTP | Token scopes, `allowedClients: ["vscode"]` |

## Security warning

- Workspace может содержать secrets в `.env` — добавьте в `.gitignore`, не передавайте Copilot raw credentials.
- HTTP endpoint bind `127.0.0.1` по умолчанию; не expose `:3000` в internet без TLS и WAF.
- Production read-only: отключите write toolsets в policy org.

## Related docs

- [MCP_CONNECTION.md](./MCP_CONNECTION.md) — transports, tokens
- [CLAUDE_MCP_SETUP.md](./CLAUDE_MCP_SETUP.md) — аналог для Claude
- [WINDSURF_CONTINUE_MCP.md](./WINDSURF_CONTINUE_MCP.md) — Continue config
- [QUICK_START.md](./QUICK_START.md)
