# Подключение агента к Intellos Hub

Версия инструкции: 1 · 2026-10-08. Читай её целиком перед первым шагом.

Intellos Hub — каталог проверенных решений для платформы Intellos: шаблоны приложений
(DSL Dify), плагины, навыки агентов. Агенту Hub доступен как MCP-сервер:

- адрес: `https://hub.intellos.ru/mcp`
- транспорт: Streamable HTTP
- имя сервера в настройках клиента: `intellos-hub`

## Граница полномочий

Через Hub агент ищет решения, читает карточки, скачивает файлы и подаёт заявки
на доступ — и только с правами человека, который вошёл. Публиковать, править каталог,
видеть чужие заявки агент не может. Скрытое от человека для агента не существует.

**Токены не вписываются никуда, кроме хранилища секретов.** Ни в строку подключения,
ни в файлы проекта, ни в ответ человеку. Личный токен — только через переменную
окружения `HUB_TOKEN` или поле пароля клиента.

## Перед изменением

1. Проверь, не подключён ли уже сервер `intellos-hub` (список MCP-серверов клиента).
   Подключён и отвечает — переходи к проверке связи.
2. Покажи человеку, какую команду выполнишь или какой файл изменишь, и дождись согласия.
3. Меняй настройки проекта, а не глобальные, если человек не сказал иначе.

## Вход

Без входа доступно публичное: `search`, `get_package`, `list_sections`.
Для `download`, `check_updates`, `request_access` нужен вход — два способа:

- **OAuth (по умолчанию).** Клиент сам находит сервер авторизации по метаданным
  `https://hub.intellos.ru/.well-known/oauth-protected-resource/mcp` и открывает браузер: человек входит
  через Intellos ID. Ничего вписывать не нужно.
- **Личный токен Hub** — для клиентов без OAuth и скриптов. Человек выпускает его
  в кабинете `https://hub.intellos.ru/me` и кладёт в переменную окружения `HUB_TOKEN`; клиент шлёт
  заголовок `Authorization: Bearer <токен>`.

## Клиенты

### Claude Code

```bash
claude mcp add --transport http --scope project intellos-hub https://hub.intellos.ru/mcp
```

Вход: в Claude Code команда `/mcp` → `intellos-hub` → Authenticate.
С личным токеном — запись в `.mcp.json` проекта (значение подставится из окружения):

```json
{"mcpServers": {"intellos-hub": {"type": "http", "url": "https://hub.intellos.ru/mcp",
  "headers": {"Authorization": "Bearer ${HUB_TOKEN}"}}}}
```

### Codex

`~/.codex/config.toml`:

```toml
[mcp_servers.intellos-hub]
url = "https://hub.intellos.ru/mcp"
# с личным токеном вместо OAuth:
# bearer_token_env_var = "HUB_TOKEN"
```

Вход OAuth: `codex mcp login intellos-hub`.

### Cursor

`.cursor/mcp.json` проекта:

```json
{"mcpServers": {"intellos-hub": {"url": "https://hub.intellos.ru/mcp"}}}
```

Вход — кнопкой Connect в настройках MCP. С личным токеном добавь
`"headers": {"Authorization": "Bearer ${env:HUB_TOKEN}"}`.

### GitHub Copilot (VS Code)

`.vscode/mcp.json`:

```json
{"servers": {"intellos-hub": {"type": "http", "url": "https://hub.intellos.ru/mcp"}}}
```

Вход VS Code предложит сам. С личным токеном — через поле ввода, не в файле:

```json
{"inputs": [{"type": "promptString", "id": "hub-token",
  "description": "Личный токен Intellos Hub", "password": true}],
 "servers": {"intellos-hub": {"type": "http", "url": "https://hub.intellos.ru/mcp",
  "headers": {"Authorization": "Bearer ${input:hub-token}"}}}}
```

### OpenCode

`opencode.json` проекта:

```json
{"$schema": "https://opencode.ai/config.json",
 "mcp": {"intellos-hub": {"type": "remote", "url": "https://hub.intellos.ru/mcp", "enabled": true}}}
```

Вход OAuth: `opencode mcp auth intellos-hub`. С личным токеном —
`"headers": {"Authorization": "Bearer {env:HUB_TOKEN}"}`.

### Intellos

Подключение Hub к пространству Intellos как инструмента агентов появится в следующей
версии инструкции.

### Другой клиент

Любой клиент MCP с транспортом Streamable HTTP: адрес `https://hub.intellos.ru/mcp`, вход — OAuth 2.1
по метаданным выше или заголовок `Authorization: Bearer` с личным токеном.

## Проверка связи

1. `list_sections` — ответ: список разделов. Пустой ответ или ошибка — связи нет.
2. `search` с запросом по задаче человека — ответ: решения с полем `access`.
3. После входа: `check_updates` с любым `id@версия` из `search` — ответ без ошибки
   «Нужен вход».

## Отчёт человеку

Скажи коротко: сервер подключён (где записан), как выполнен вход (OAuth или токен),
сколько разделов и решений видно, какие инструменты требуют входа.

## Откат

- Claude Code: `claude mcp remove intellos-hub`; другие клиенты — удалить запись
  `intellos-hub` из файла настроек.
- Личный токен — отозвать в кабинете `https://hub.intellos.ru/me`.
- Вход OAuth — завершить сеанс клиента в настройках Intellos ID.

## Ответы сервера

- `401` — нужен вход или токен не принят: войди заново.
- «Нет доступа — отправьте заявку» — `request_access` с комментарием, зачем нужно.
- «Позиция не найдена» — нет такой или не видно этому человеку; одно от другого
  не отличить намеренно.
- `429` — слишком часто: подожди столько секунд, сколько в `Retry-After`.
