keycloak-client-mcp-server

IH8E/keycloak-client-mcp-server

3.2

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.

Tools
4
Resources
0
Prompts
0

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):

  1. kinit_auth - выполнение kinit с указанными учётными данными для получения Kerberos тикета
  2. get_cookies - получение cookies с указанного URL через Kerberos
  3. update_credential - обновление credential в Jenkins
  4. 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