Дверь wiki — подключение ЧТО ЗА НЕЙ: вики через MCP: поиск, страницы, комментарии, пространства — весь её API Инструменты, которые появятся в разговоре (30): wiki_search [читает] Поиск по вики wiki_spaces [читает] Пространства wiki_space [читает] Пространство wiki_space_members [читает] Участники пространства wiki_page [читает] Прочитать страницу wiki_pages_recent [читает] Недавние страницы wiki_sidebar [читает] Дерево страниц wiki_breadcrumbs [читает] Путь до страницы wiki_history [читает] История правок wiki_history_info [читает] Версия страницы wiki_backlinks [читает] Ссылки страницы wiki_labels [читает] Метки страницы wiki_trash [читает] Корзина wiki_comments [читает] Комментарии wiki_groups [читает] Группы вики wiki_members [читает] Участники вики wiki_create [правит] Создать страницу wiki_update [правит] Правка страницы wiki_delete [правит] Удалить страницу wiki_restore [правит] Вернуть из корзины wiki_move [правит] Переместить страницу wiki_move_to_space [правит] Перенести в пространство wiki_duplicate [правит] Копия страницы wiki_label_add [правит] Повесить метки wiki_label_remove [правит] Снять метку wiki_comment [правит] Комментарий wiki_comment_update [правит] Правка комментария wiki_comment_delete [правит] Удалить комментарий wiki_space_create [правит] Создать пространство wiki_space_update [правит] Правка пространства Видно будет не всё: с правом только на чтение пишущие инструменты в перечень не попадут вовсе. Это не поломка — так устроено разграничение. ──────────────────────────────────────────────────────────────────────────── ПОРЯДОК. Четыре шага, третий и четвёртый — в вашем инструменте. ──────────────────────────────────────────────────────────────────────────── 1. ЗАВЕСТИ УЧЁТКУ У БРОКЕРА — регистрация открыта, делается самому: https://id.91-210-171-115.nip.io/realms/smart-platform/account 2. ПОЛУЧИТЬ ГРУППУ. Единственный шаг, который нельзя сделать самому, и единственный по-настоящему блокирующий. Без группы вход ПРОЙДЁТ, а вызовы будут отвечать 403 — выглядит как поломка, но это не она. Напишите администратору платформы — тому, кто прислал вам этот адрес. Скажите: нужна дверь «wiki», только читать или ещё и править. 3. ДОБАВИТЬ ДВЕРЬ В ИНСТРУМЕНТ. Нужны ровно два значения: Адрес https://mcp-wiki.91-210-171-115.nip.io/mcp Client ID desktop Секрет не нужен: клиент публичный, подключение защищает PKCE. Адрес — С «/mcp» НА КОНЦЕ. Корневой (тот, что вы читаете) для подключения не годится: он отдаёт эту страницу, а не протокол. 4. ВОЙТИ. Сам по себе браузер не откроется: инструмент подхватывает новую дверь при старте, а вход предлагает отдельной командой. В Claude Code — перезапустить сессию, затем /mcp, выбрать дверь, Authenticate. В настольных приложениях — кнопка входа в карточке коннектора. Ссылку для браузера инструмент строит САМ из двух значений выше. Если он просит ссылку у вас — значит не получил Client ID, см. ниже. ──────────────────────────────────────────────────────────────────────────── CLIENT ID ОБЯЗАТЕЛЕН, И НА ЭТОМ СПОТЫКАЮТСЯ ВСЕ ──────────────────────────────────────────────────────────────────────────── Многие инструменты, не получив client_id, пробуют зарегистрировать клиента сами (RFC 7591). У нас это запрещено намеренно: иначе клиента в нашем реалме заводит кто угодно. Отказ выглядит как нехватка прав и уводит не туда: Dynamic Client Registration rejected (HTTP 403) Policy 'Allowed Client Scopes' rejected request Это НЕ поломка двери и НЕ нехватка прав. Надо назвать готового клиента. Где его вписать — зависит от инструмента, значения везде одни и те же: настольные приложения настройки коннекторов: поле Client ID рядом с адресом, обычно в дополнительных параметрах инструменты в терминале отдельный ключ при добавлении сервера своя программа параметр client_id в запросе авторизации Готовая строка для Claude Code — как пример; у других инструментов свои ключи, но порядок тот же: claude mcp add --transport http --client-id desktop wiki https://mcp-wiki.91-210-171-115.nip.io/mcp ──────────────────────────────────────────────────────────────────────────── ЕСЛИ ПИШЕТЕ СВОЮ ПРОГРАММУ — всё, что нужно, здесь ──────────────────────────────────────────────────────────────────────────── издатель https://id.91-210-171-115.nip.io/realms/smart-platform обнаружение https://id.91-210-171-115.nip.io/realms/smart-platform/.well-known/openid-configuration client_id desktop (публичный, секрета нет) области openid profile email groups door-wiki PKCE обязателен, S256 возврат http://localhost/<любой порт>/... или http://127.0.0.1/... токен Authorization: Bearer на https://mcp-wiki.91-210-171-115.nip.io/mcp ОБЛАСТЬ «door-wiki» — САМОЕ ВАЖНОЕ ЗДЕСЬ. Именно она кладёт в токен аудиторию этой двери. Без неё вход пройдёт, а дверь ответит 401: токен настоящий, но не для неё. Если инструмент просит ещё и offline_access — это разрешено. ПРО ЛОКАЛЬНЫЙ ПОРТ. Инструмент на время входа поднимает у себя приёмник на случайном свободном порту: браузер не может отдать код авторизации в терминал, поэтому код возвращается на localhost. Наружу этот приёмник не смотрит и после входа исчезает. Поэтому в разрешённых адресах возврата у клиента стоит localhost с любым портом — заранее его номер неизвестен. Обнаружение по RFC 9728 дверь отдаёт сама: https://mcp-wiki.91-210-171-115.nip.io/.well-known/oauth-protected-resource ──────────────────────────────────────────────────────────────────────────── ЕСЛИ НЕ ВЫХОДИТ ──────────────────────────────────────────────────────────────────────────── Отказ о регистрации клиента Client ID не указан вовсе. См. выше. invalid_scope инструмент просит область, которой у клиента нет. Нужны: openid profile email groups door-wiki. В сообщении брокер перечисляет ВСЕ запрошенные области, хотя лишняя обычно одна. «Client not found» Client ID вписан не так, как выше. 401 после успешного входа токен не для этой двери: нет области door-wiki. Удалите подключение и заведите заново, проследив за областями. 403 вход прошёл, группы не хватает. Повторять бесполезно — нужен админ, шаг 2. инструментов меньше, чем у вас право только на чтение. Это не перечислено выше поломка, см. начало страницы. Токен от одной двери не открывает другую — каждая подключается отдельно.