Экспериментальный функционал
MCP-сервер — компонент Deckhouse Development Platform (DDP), который реализует протокол MCP (Model Context Protocol) и обеспечивает взаимодействие внешних AI-клиентов (таких как LM Studio, Claude Desktop и других) с платформой. Сервер работает по JSON-RPC 2.0 и предоставляет набор инструментов для работы с ресурсами платформы и проксирования запросов во внешние инфраструктурные сервисы.
MCP — это открытый протокол для взаимодействия AI-моделей с внешними системами. Подробнее о протоколе можно узнать на официальном сайте MCP.
Доступные инструменты
get_resources
Получить список ресурсов.
Параметры: нет.
Возвращает: список ресурсов.
Пример:
Получи список ресурсовget_external_services
Получить список внешних сервисов (GitLab, SonarQube и т. д.).
Параметры: нет.
Возвращает: список внешних сервисов.
Пример:
Получи список внешних сервисовget_resource_entities
Получить все сущности выбранного ресурса.
Параметры:
| Название | Тип | Обязательность | Описание |
|---|---|---|---|
resource_uuid | строка | Да | UUID ресурса |
Возвращает: список сущностей ресурса.
Пример:
Получи все сервисы и покажи название и дату созданияget_entity
Получить одну сущность по UUID.
Параметры:
| Название | Тип | Обязательность | Описание |
|---|---|---|---|
entity_uuid | строка | Да | UUID сущности |
Возвращает: данные одной сущности.
Пример:
Получи сущность с UUID 3fa85f64-5717-4562-b3fc-2c963f66afa6get_entity_relations
Получить связи сущности.
Параметры:
| Название | Тип | Обязательность | Описание |
|---|---|---|---|
resource_uuid | строка | Да | UUID ресурса |
entity_slug | строка | Да | Идентификатор сущности |
Возвращает: список связей сущности.
Пример:
Получи связи сущности «api-gateway» ресурса «Сервисы»get_external_data
Выполнить HTTP-запрос к внешнему сервису с учётными данными пользователя.
Параметры:
| Название | Тип | Обязательность | Описание |
|---|---|---|---|
external_service_uuid | строка | Да | UUID внешнего сервиса |
query | строка | Да | Описание запроса (например: «получить пайплайны проекта 123») |
api_path | строка | Да | Путь к API с параметрами запроса (например, пагинация) |
method | строка | Нет | HTTP-метод. По умолчанию: GET |
body | строка | Нет | Тело запроса для POST/PUT/PATCH (JSON-строка) |
Учётные данные и заголовки берутся из настроек внешнего сервиса в платформе.
Возвращает: результат HTTP-запроса к внешнему сервису.
Пример:
Получи список проектов из внешнего сервиса GitLabget_actions
Получить список действий.
Параметры: нет.
Возвращает: список действий.
Пример:
Получи список действийget_datasources
Получить список источников данных.
Параметры: нет.
Возвращает: список источников данных.
Пример:
Получи список источников данныхget_processes
Получить список процессов.
Параметры: нет.
Возвращает: список процессов.
Пример:
Получи список процессовПодключение MCP-сервера
LM Studio
Получение параметров:
- Войдите в Deckhouse Development Platform.
- Получите ваш API-токен в разделе «Профиль».
- Запишите URL вашей платформы (например,
https://ddp.example.com).
Настройка в LM Studio:
- Откройте LM Studio.
- Перейдите в настройки (Settings).
- Найдите раздел «MCP Servers» или «Model Context Protocol».
- Нажмите «Add Server» или «Добавить сервер».
Конфигурация сервера (заполните следующие поля):
- «Server Name»:
DDP MCP Server(или любое удобное название). - «Server URL»:
https://<DOMAIN>/api/v2/mcp. - «Transport»:
HTTPилиJSON-RPC. - «Authentication»:
- «Type»:
Bearer Tokenили аналог (заголовокAuthorization). - «Header»:
Authorization: Bearer <ваш_api_токен>. - «Token»: вставьте ваш API-токен платформы (из раздела «Профиль»).
- «Type»:
- «Server Name»:
Проверка подключения:
- Сохраните конфигурацию.
- LM Studio попытается подключиться к серверу.
- Если подключение успешно, вы увидите список доступных инструментов:
get_resources— получить список ресурсов.get_external_services— получить список внешних сервисов (GitLab, SonarQube и т. д.).get_resource_entities— получить все сущности выбранного ресурса.get_entity— получить одну сущность по UUID.get_entity_relations— получить связи сущности по ресурсу и идентификатору.get_external_data— выполнить HTTP-запрос к внешнему сервису с учётными данными пользователя.get_actions— получить список действий.get_datasources— получить список источников данных.get_processes— получить список процессов.
После успешного подключения вы можете использовать инструменты в диалогах с моделями.
Все вызовы будут выполняться с вашими правами доступа.
Подключение в других MCP-клиентах
MCP-сервер Deckhouse Development Platform совместим с любыми клиентами, поддерживающими протокол MCP через JSON-RPC 2.0.
Общие шаги подключения:
- «URL эндпоинта»:
https://your-platform.com/api/v2/mcp. - «Протокол»: JSON-RPC 2.0.
- «Аутентификация»:
- Заголовок:
Authorization: Bearer YOUR_API_TOKEN. - Где
YOUR_API_TOKEN— ваш API-токен платформы (раздел «Профиль»).
- Заголовок:
- «Метод»: POST.
Пример запроса к MCP-серверу
HTTP-заголовки:
Authorization: Bearer your-api-token-here
Content-Type: application/jsonТело запроса:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_resource_entities",
"arguments": {
"resource_uuid": "uuid-нужного-ресурса"
}
}
}Пример ответа от MCP-сервера
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "[{\"uuid\":\"...\",\"name\":\"Service 1\",\"properties\":{...}},...]"
}
]
}
}Безопасность
Аутентификация:
- Все запросы к MCP-серверу должны быть аутентифицированы с помощью API-токена из раздела «Профиль». Токен передаётся в заголовке
Authorization: Bearer <api_token>. - Права доступа соответствуют правам вашего пользователя в платформе.
Права доступа:
- Инструменты работают с теми же правами, что и пользователь.
- Если у вас нет доступа к ресурсу, инструмент вернёт ошибку доступа.
- Данные фильтруются в соответствии с вашими правами RBAC.
Устранение неполадок
Не удаётся подключиться к серверу
Если не получается подключиться к серверу:
- Проверьте правильность URL (должен заканчиваться на
/api/v2/mcp). - Убедитесь, что API-токен действителен.
- Проверьте, что платформа доступна с вашего компьютера.
- Проверьте настройки файрвола и прокси.
Ошибка аутентификации
Если не проходит аутентификация:
- Проверьте правильность формата токена.
- Убедитесь, что токен не истёк.
- Убедитесь, что используется заголовок
Authorization: Bearer <api_token>.
Инструмент возвращает ошибку доступа
Если при обращении к инструменту возвращается ошибка доступа:
- Убедитесь, что у вашего пользователя есть права на доступ к запрашиваемому ресурсу.
- Проверьте правильность названия или идентификатора ресурса.
- Обратитесь к администратору платформы для проверки прав доступа.
Данные не возвращаются
В случае отсутствия ответа:
- Проверьте правильность параметров запроса.
- Убедитесь, что ресурс существует и содержит сущности.
- Проверьте логи платформы для получения детальной информации об ошибке.