{{ currentTabMeta.title }}
Обзор базы знаний
Запись базы знаний
{{ formatJson(deepLinkItem.metadata) }}
| Название | Права | Запись | Лимит | Активен | Действия |
|---|---|---|---|---|---|
| Загрузка… | |||||
| Ключей пока нет | |||||
| {{ key.name }} | {{ key.scope }} | {{ keyWriteLabel(key) }} | {{ key.rateLimit }} | {{ key.isActive ? 'Да' : 'Нет' }} | |
{{ marketplaceAddCmd }}
{{ claudeInstallCmd }}
knowledge-hub из marketplace вашей организации, затем выполните claude plugin install knowledge-hub@<marketplace> --config knowledge_key=ВАШ_КЛЮЧ, подставив имя вашего marketplace и ключ из шага ниже.kostya-macbook), область full. Секрет kh_… показывается один раз: вставьте его вместо ВАШ_КЛЮЧ.
Сам Claude Code ключ не спросит: без флага --config установка пройдёт, но подключение останется в состоянии ! Needs authentication. Если плагин уже установлен без ключа — выполните в сессии {{ claudeConfigureCmd }}.
Отдельный claude mcp add не нужен: MCP-сервер объявлен плагином. Ключ хранится в защищённом хранилище (Keychain на macOS, ~/.claude/.credentials.json на прочих) и в репозиторий не попадает.
claude mcp list
knowledge-hub со статусом ✓ Connected. В новой сессии попросите агента упомянуть клиента или API — он сам вызовет search_knowledge.knowledge-hub — сначала claude mcp remove knowledge-hub (User-scope перекрывает плагин), затем включите плагин.claude.ai и Claude Desktop (без терминала)
{{ connectMcpUrl }}
Claude Desktop: запасной путь через файл настроек
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows); открыть можно из меню Claude → Settings → Developer → «Edit Config». Допишите раздел внутрь mcpServers, не трогая соседние, подставьте свой ключ из «Моих ключей» и полностью выйдите из приложения и запустите заново.{{ desktopConfigSnippet }}
Codex
{{ codexMarketplaceAddCmd }}
{{ codexInstallCmd }}
knowledge-hub из marketplace вашей организации.{{ codexMcpOauthCmd }}
dcr работает, DCR отклоняется. Прервавшийся вход повторяется командой codex mcp login knowledge-hub. Проверка: codex mcp get knowledge-hub покажет enabled: true, transport: streamable_http и прочерки в строках про заголовки — ключа в конфигурации нет.[mcp_servers.knowledge-hub] в ~/.codex/config.toml, url = "{{ connectMcpUrl }}", env_http_headers = { "X-API-Key" = "KNOWLEDGE_KEY" } — здесь указывают имя переменной, а не сам ключ. Для этого способа codex mcp add не годится: из заголовков она умеет только Bearer. После установки откройте /hooks и доверьте hook definitions.Headless-агент / X-API-Key (без браузера)
X-API-Key: kh_… напрямую на MCP-эндпоинт.{{ connectMcpUrl }}
KNOWLEDGE_URL={{ connectMcpUrl }} (прод-URL подставляется по умолчанию).| Название | Область | Организация | Лимит | Активен | Последнее использование | Создан | Кем создан | Действия |
|---|---|---|---|---|---|---|---|---|
|
Загрузка ключей…
Получаем список машинных ключей. |
||||||||
|
Ключи не найдены
Создайте первый ключ, если нужен доступ для MCP или внешнего сервиса. |
||||||||
|
{{ key.name }}
{{ key.id }}
|
{{ key.scope }} |
{{ tenantNameById(key.tenantId) }}
запись: {{ keyWriteLabel(key) }}
|
{{ formatNumber(key.rateLimit) }} | {{ key.isActive ? 'Да' : 'Нет' }} | {{ formatDateTime(key.lastUsed) }} | {{ formatDateTime(key.createdAt) }} | {{ renderUserRef(key.createdBy) }} |
|
{{ node.space.description }}
| Название | Slug | Тип | Записей | Активна | Действия |
|---|---|---|---|---|---|
|
Загрузка организаций…
Получаем список организаций и счётчики записей. |
|||||
|
Пока только платформенная организация — создайте первую внешнюю
|
|||||
|
{{ t.name }}
{{ t.id }}
|
{{ t.slug }} | {{ t.kind === 'platform' ? 'платформа' : 'внешняя' }} | {{ formatNumber(t.count) }} |
|
|
{{ oauthClients.connectionUrl || '—' }}
X-API-Key.Расширенно: ручная регистрация клиента
Нужно только для клиентов без поддержки Dynamic Client Registration (DCR) или с фиксированным client_id+secret. Для claude.ai обычно не требуется.
| Клиент | Тип | Пользователи | Redirect URIs | Активен | Действия |
|---|---|---|---|---|---|
|
Загрузка клиентов…
Получаем список подключённых клиентов. |
|||||
|
Подключённых клиентов нет
Вставьте URL подключения в claude.ai — клиент появится здесь после первого входа. |
|||||
|
{{ client.name }}
{{ client.clientId }} |
{{ client.origin === 'dcr' ? '🔄 авто (DCR)' : '✋ ручной' }}
{{ client.isPublic ? 'public (PKCE)' : 'confidential' }}
|
{{ u }}
—
|
{{ uri }}
|
{{ client.isActive ? 'Да' : 'Нет' }} |
|
| Логин / Email | Роль | Домашнее пространство | Чтение | Запись | Ключи | Лимит | Активен | Последний вход | Действия |
|---|---|---|---|---|---|---|---|---|---|
|
Загрузка пользователей…
Получаем список административных учётных записей. |
|||||||||
|
Пользователи не найдены
Добавьте первого пользователя, чтобы открыть доступ коллегам. |
|||||||||
{{ user.username }} {{ user.email || 'без email' }} |
{{ user.role }} | {{ user.homeSpace || 'не задано' }} | {{ user.readScope }} | {{ user.canWrite ? 'Да' : 'Нет' }} | {{ user.maxActiveKeys }} | {{ user.maxRateLimit }}/мин | {{ user.isActive ? 'Да' : 'Нет' }} | {{ formatDateTime(user.lastLoginAt) }} |
|
Получаем провайдеров и привязки действий.
| Название | Адрес API | Тип | Ключ задан | Действия |
|---|---|---|---|---|
|
Провайдеры не найдены
Добавьте первый провайдер через форму слева. |
||||
|
{{ provider.label }}
{{ provider.id }}
|
{{ provider.baseUrl }} | {{ provider.kind }} | {{ provider.apiKeySet ? 'Да' : 'Нет' }} |
|
| Действие | Тип | Провайдер | Модель | Действия |
|---|---|---|---|---|
|
{{ action.label }}
{{ action.id }}
|
{{ action.allowedKinds.join(', ') }} |
Нет провайдеров нужного типа.
|
|
|
{{ quality.reportsError }}
Процессы ещё не отрабатывали.
Raw JSON
{{ formatJson(r.report) }}
{{ quality.pendingError }}
| Запись | Классификация | Действия |
|---|---|---|
Загрузка… | ||
Очередь пуста Нет записей на ревью. | ||
{{ (p.item.content || '').slice(0, 220) }} {{ p.item.id }}Похожих записей для выбора цели нет. |
{{ p.item.knowledgeType || '—' }} {{ p.item.domain || '—' }} {{ (p.item.tags || []).filter(t => t.startsWith('for:')).join(', ') || '—' }} |
|
{{ quality.mergeCandidatesError }}
| Сходство | Первая запись | Вторая запись | Обнаружено |
|---|---|---|---|
| Загрузка… | |||
Кандидатов нет Серверная очередь дублей пуста. | |||
| {{ Math.round(Number(candidate.similarity || 0) * 100) }}% | {{ candidate.pair.first.space || 'общий слой' }} · {{ candidate.pair.first.domain || 'без домена' }} |
{{ candidate.pair.second.space || 'общий слой' }} · {{ candidate.pair.second.domain || 'без домена' }} |
{{ formatDateTime(candidate.discoveredAt) }} {{ formatNumber(candidate.ageSeconds) }} сек. назад |