# Подключение Claude Desktop / Claude Code

Настройка MCP-клиента Anthropic для работы с 1C MCP Gateway (stdio и HTTP).

## Prerequisites

- Claude Desktop (macOS/Windows) или Claude Code CLI.
- Node.js 22+, репозиторий `/var/www/mwi.yatsuk.pro`.
- Для HTTP mode: running `npm run dev:http` и issued MCP token.
- Профиль 1С создан (см. [QUICK_START.md](./QUICK_START.md)).

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

### Вариант A: Claude Desktop (stdio, локально)

1. Откройте конфиг MCP:
   - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
   - Windows: `%APPDATA%\Claude\claude_desktop_config.json`

2. Добавьте сервер:

```json
{
  "mcpServers": {
    "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",
        "ONEC_MCP_ACTOR": "local-ai-agent"
      }
    }
  }
}
```

3. Полностью перезапустите Claude Desktop.

### Вариант B: Claude Code (stdio)

В корне проекта 1С или gateway создайте `.mcp.json`:

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

Запуск: `claude` в каталоге с конфигом — MCP подключится автоматически.

### Вариант C: Hosted HTTP (team)

```bash
ONEC_MCP_HTTP_TOKEN="team-bootstrap" npm run dev:http
# Выпустите token: POST /api/mcp-tokens
```

В Claude Desktop (если поддерживается remote MCP) или через proxy:

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

Сниппет также доступен: `GET http://localhost:3000/api/ide-config`.

## Copy-ready config

Production HTTP (bind localhost + reverse proxy):

```bash
export ONEC_MCP_HTTP_HOST=127.0.0.1
export ONEC_MCP_HTTP_PORT=3000
export ONEC_MCP_DATA_DIR=/var/lib/onec-mcp-gateway
export ONEC_MCP_ACTOR=web-console
npm run start:http
```

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

В Claude: Settings → Developer → MCP → `1c-mcp-gateway` → список tools.

Минимальная проверка в чате:

```
Вызови tool list_profiles и перечисли profileId, type и environment.
```

Должен вернуться JSON без паролей и token values.

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

```
Ты помощник по разработке 1С. Сначала get_active_profile.
Если активного нет — switch_active_profile на dev-профиль.
Затем bsl_get_context_for_task: «найти обработчик проведения документа Реализация».
Ответь кратко: модуль, процедура, директива, связанные запросы.
```

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

| Симптом | Решение |
|---------|---------|
| Server failed to start | Проверьте `cwd`, `npm` в PATH Claude |
| Empty tools | Перезапуск Claude; логи gateway stderr |
| HTTP 401 | Bearer token, scope `mcp:call` |
| Wrong profile context | Явно `switch_active_profile` после смены базы |
| Spawn EACCES | Права на `/var/www/mwi.yatsuk.pro` |

## Security warning

- Claude получает контент 1С через tools — treat as untrusted (prompt injection).
- Не вставляйте пароли 1С в чат; используйте `passwordEnv` / `tokenEnv`.
- Production profiles: только read tools; не запрашивайте patch/import в prod.
- HTTP tokens: rotation через `/api/mcp-tokens`, короткий TTL для CI.

## Related docs

- [MCP_CONNECTION.md](./MCP_CONNECTION.md) — полный agent workflow
- [QUICK_START.md](./QUICK_START.md) — первый профиль
- [VSCODE_COPILOT_MCP.md](./VSCODE_COPILOT_MCP.md) — альтернативный IDE
- [SECURITY_MODEL.md](./SECURITY_MODEL.md) — scopes и policy
