IH8E/keycloak-client-mcp-server
If you are the rightful owner of keycloak-client-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Credentials MCP Server is designed for managing credentials using Kerberos authentication, providing tools for secure and efficient credential handling.
Credentials MCP Server
MCP-сервер для управления credentials с использованием Kerberos аутентификации.
🚀 Быстрый старт: см.
🐳 Docker документация: см.
🔐 Настройка Kerberos: см.
На данный момент тикеты kerberos получаем локально или через MCP инструмент:
# Локально (для систем с поддержкой --password-file, например macOS/Debian)
kinit --password-file=./password.txt user@EXAMPLE.COM
# Локально через stdin (работает везде, включая Alpine Linux)
echo "your-password" | kinit user@EXAMPLE.COM
# Через MCP инструмент (универсальный способ, работает на всех платформах)
kinit_auth(username="user@EXAMPLE.COM", password="your-password")
Возможности
Сервер предоставляет четыре инструмента (tools):
- kinit_auth - выполнение kinit с указанными учётными данными для получения Kerberos тикета
- get_cookies - получение cookies с указанного URL через Kerberos
- update_credential - обновление credential в Jenkins
- get_cookies_and_update - комплексная операция: получение cookies и обновление Jenkins credential
Установка
pip install -r requirements.txt
# или
pipenv install
Использование
Запуск сервера
Локальный запуск
# STDIO режим (для локального использования)
python server.py
# SSE режим (HTTP сервер на порту 8000)
python server.py --sse
# Или через pipenv
pipenv run python server.py
Запуск в Docker
📚 Подробная документация по Docker: см.
Сборка образа
docker build -t keycloak-mcp-server .
Запуск через docker-compose
# SSE режим (HTTP сервер)
docker-compose up mcp-server-sse -d
# STDIO режим
docker-compose up mcp-server-stdio
Запуск через Makefile (рекомендуется)
# Показать все доступные команды
make help
# Сборка образа
make build
# Запуск в режиме SSE (HTTP на порту 8000)
make run-sse
# Запуск в режиме STDIO
make run-stdio
# Выполнение kinit в контейнере
make kinit
# Просмотр логов
make logs
# Открыть shell в контейнере
make shell
# Остановка контейнера
make stop
# Полная очистка (удаление контейнера и образа)
make clean
# Пересборка образа с нуля
make rebuild
# Статус контейнеров
make status
Запуск через helper-скрипт
# Сборка образа
./docker-run.sh build
# Запуск в режиме SSE (HTTP на порту 8000)
./docker-run.sh run-sse
# Запуск в режиме STDIO
./docker-run.sh run-stdio
# Выполнение kinit в контейнере
./docker-run.sh kinit
# Просмотр логов
./docker-run.sh logs
# Открыть shell в контейнере
./docker-run.sh shell
# Остановка контейнера
./docker-run.sh stop
# Полная очистка (удаление контейнера и образа)
./docker-run.sh clean
Прямой запуск Docker
# STDIO режим
docker run -it --rm \
-v $(pwd)/krb5.conf:/etc/krb5.conf:ro \
keycloak-mcp-server
# SSE режим (HTTP сервер)
docker run -d \
--name keycloak-mcp-server \
-p 8000:8000 \
-v $(pwd)/krb5.conf:/etc/krb5.conf:ro \
keycloak-mcp-server \
python server.py --sse
Использование инструментов
Выполнение kinit
kinit_auth(
username="user@EXAMPLE.COM",
password="your-password"
)
Получение cookies
get_cookies(url="https://your-platform.com")
Обновление credential в Jenkins
update_credential(
jenkins_url="https://jenkins.example.com",
credentials_id="your-credential-id",
secret_value="your-secret-value"
)
Получение cookies и обновление credential одной операцией
get_cookies_and_update(
source_url="https://your-platform.com",
jenkins_url="https://jenkins.example.com",
credentials_id="your-credential-id"
)
Требования
- Настроенная Kerberos аутентификация
- Доступ к Jenkins серверу
- Python 3.10+
- Docker и docker-compose (для запуска в контейнере)
Настройка Kerberos
Локальная настройка
Для работы с Kerberos необходимо создать файл /etc/krb5.conf или ~/krb5.conf:
# Скопируйте пример конфигурации
cp krb5.conf.example krb5.conf
# Отредактируйте конфигурацию под ваше окружение
# Укажите правильные значения для:
# - default_realm
# - kdc
# - admin_server
Настройка в Docker
При запуске через Docker конфигурация Kerberos монтируется из файла krb5.conf:
# Убедитесь, что файл krb5.conf существует
ls -l krb5.conf
# Если файла нет, создайте его из примера
cp krb5.conf.example krb5.conf
Режимы работы
STDIO режим
Подходит для:
- Локальной разработки и тестирования
- Интеграции с MCP клиентами, работающими через stdin/stdout
- Запуска через Claude Desktop или другие локальные MCP клиенты
SSE режим (HTTP)
Подходит для:
- Удаленного доступа к MCP серверу
- Использования в микросервисной архитектуре
- Доступа через REST API
- Запуска в Kubernetes или других оркестраторах
Примеры использования
Использование kinit через MCP
# Сначала выполните kinit для получения Kerberos тикета
kinit_auth(
username="user@EXAMPLE.COM",
password="your-password"
)
# Затем используйте другие инструменты
get_cookies(url="https://your-platform.com")
Использование в Docker
# 1. Соберите образ
./docker-run.sh build
# 2. Запустите сервер в режиме SSE
./docker-run.sh run-sse
# 3. Выполните kinit внутри контейнера
./docker-run.sh kinit
# 4. Используйте MCP инструменты через HTTP API на http://localhost:8000