凭证 MCP 服务器
使用Kerberos认证管理凭证的MCP服务器。
🚀 表情符号“🚀”通常表示火箭、发射、快速前进或突破等含义,可以翻译为“🚀(火箭/发射/快速前进等)”。具体翻译可能需要根据上下文来确定最准确的表述。 快速启动见 QUICK_START.md 翻译为中文是:“快速入门指南.md” 或者 “快速开始指南.md”(其中“.md”表示这是一个Markdown格式的文件)\ 🐳 这个表情符号在中文里通常被解释为“海豚”,所以可以翻译为“海豚”。不过,具体翻译可能还取决于上下文和使用场景。 Docker 文档见 \ 🔐 Kerberos配置见 KERBEROS_SETUP.md 翻译为中文是:“KERBEROS 安装指南.md” 或 “KERBEROS 设置说明.md”(具体翻译可能根据上下文有所调整,但核心意思是“关于KERBEROS的安装或设置说明的Markdown文件”)
目前,我们通过本地或MCP工具获取kerberos票据:
# Локально (для систем с поддержкой --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\可以翻译为“Kerberos认证初始化”或“Kerberos身份验证启动”。这个术语通常与网络安全和身份验证系统相关,特别是在使用Kerberos协议进行身份验证时,\kinit\命令用于获取票据授予票据(TGT),而 \kinit_auth\可能是指与该过程相关的某种认证或初始化步骤。不过,具体的翻译可能需要根据上下文来确定 - 使用指定的凭据执行kinit以获取Kerberos票据 - 获取cookies - 通过Kerberos从指定的URL获取cookies
- 更新凭证 - 在Jenkins中更新凭证
- 获取cookie并更新 - 综合操作:获取cookies和更新Jenkins凭证
安装
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通过辅助脚本启动
# Сборка образа
./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")在Jenkins中更新凭证
update_credential(
jenkins_url="https://jenkins.example.com",
credentials_id="your-credential-id",
secret_value="your-secret-value"
)一次性获取cookies并更新凭证
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模式
适用于:
- 本地开发和测试
- 与通过stdin/stdout工作的MCP客户端的集成
- 通过Claude Desktop或其他本地MCP客户端启动
SSE模式(HTTP)
适用于:
- 远程访问MCP服务器
- 在微服务架构中的应用
- 通过REST API访问
- 在Kubernetes或其他编排器中启动
使用示例
通过MCP使用kinit
# Сначала выполните 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