🚀 Authentik MCP 服务器
这是一个用于与 Authentik API 集成的模型上下文协议(MCP)服务器集合,提供 Python 和 Node.js 两种实现方式。该项目能够帮助开发者更便捷地与 Authentik 进行交互,实现用户管理、应用配置等功能,同时提供诊断和监控能力,保障系统的安全和稳定运行。
🚀 快速开始
Python 包
注意:这些包不适合直接在命令行中使用。请按照上述说明将它们与支持 MCP 的工具或平台集成。
Node.js 包
注意:这些包不适合直接在命令行中使用。请按照上述说明将它们与支持 MCP 的工具或平台集成。
全 API 访问
由您的 MCP 工具管理,无需直接在命令行中使用。
仅用于诊断
由您的 MCP 工具管理,无需直接在命令行中使用。
✨ 主要特性
本仓库包含四个用于与 Authentik 集成的 MCP 服务器:
全功能服务器
- authentik-mcp(Python) - 具备完整的 CRUD 功能,可实现全面的 Authentik API 集成。
- authentik-mcp(Node.js) - 使用 TypeScript 实现,可完全访问 API。
仅用于诊断的服务器
- authentik-diag-mcp(Python) - 具备只读的诊断和监控功能。
- authentik-diag-mcp(Node.js) - 使用 TypeScript 实现,用于诊断和监控。
📦 安装指南
如何与 MCP 一起使用
- 安装所需的包:
- 若需要全 API 访问:
authentik-mcp
- 若用于诊断/监控:
authentik-diag-mcp
- 配置您的 MCP 工具或平台,使其指向已安装的服务器二进制文件(例如,
authentik-mcp
或 authentik-diag-mcp
),并将所需的 Authentik API 令牌和基本 URL 作为参数或环境变量提供。
- 请勿直接通过命令行运行这些服务器。而是让支持 MCP 的工具管理它们的生命周期和通信。
- 通过 MCP 工具界面与 Authentik 进行交互,该界面将提供所有可用的资源和工具,用于自动化、监控和诊断。
💻 使用示例
基础用法
以下是在 VS Code Github Copilot MCP 扩展中的使用示例:
GitHub Copilot 工作区(settings.json) – Python(uvx)
"mcp": {
"servers": {
"authentik": {
"command": "uvx",
"args": [
"authentik-diag-mcp",
"--base-url", "https://your-authentik-instance",
"--token", "your-api-token"
]
}
}
}
GitHub Copilot 工作区(settings.json) – Node.js(npx)
"mcp": {
"servers": {
"authentik": {
"command": "npx",
"args": [
"@cdmx/authentik-diag-mcp",
"--base-url", "https://your-authentik-instance",
"--token", "your-api-token"
]
}
}
}
Claude 桌面端(claude_desktop_config.json) – Python(uvx)
{
"mcpServers": {
"authentik": {
"command": "uvx",
"args": [
"authentik-diag-mcp",
"--base-url",
"https://your-authentik-instance",
"--token",
"your-api-token"
]
}
}
}
Claude 桌面端(claude_desktop_config.json) – Node.js(npx)
{
"mcpServers": {
"authentik": {
"command": "npx",
"args": [
"@cdmx/authentik-diag-mcp",
"--base-url",
"https://your-authentik-instance",
"--token",
"your-api-token"
]
}
}
}
📚 详细文档
功能比较
属性 |
详情 |
全功能 MCP |
具备完整的用户管理、组管理、应用管理、事件监控、系统健康监控等功能,支持 CRUD 操作。 |
诊断 MCP |
主要用于诊断和监控,部分功能为只读模式,不支持令牌管理。 |
API 令牌设置
全访问权限(authentik-mcp)
- 以管理员身份登录 Authentik。
- 导航至 目录 > 令牌。
- 创建一个具有全 API 权限的新令牌。
- 复制该令牌,供全功能 MCP 服务器使用。
诊断访问权限(authentik-diag-mcp)
- 以管理员身份登录 Authentik。
- 导航至 目录 > 令牌。
- 创建一个具有最小只读权限的新令牌。
- 复制该令牌,供诊断 MCP 服务器使用。
可用工具
全功能 MCP 服务器工具
- 用户管理:
authentik_list_users
- 带过滤功能的用户列表。
authentik_get_user
- 获取用户详细信息。
authentik_create_user
- 创建新用户。
authentik_update_user
- 更新现有用户。
authentik_delete_user
- 删除用户。
- 组管理:
authentik_list_groups
- 列出组。
authentik_get_group
- 获取组详细信息。
authentik_create_group
- 创建新组。
authentik_update_group
- 更新现有组。
authentik_delete_group
- 删除组。
- 应用管理:
authentik_list_applications
- 列出应用程序。
authentik_get_application
- 获取应用程序详细信息。
authentik_create_application
- 创建新应用程序。
authentik_update_application
- 更新现有应用程序。
authentik_delete_application
- 删除应用程序。
- 事件监控:
authentik_list_events
- 列出系统事件。
authentik_get_event
- 获取事件详细信息。
- 流程管理:
authentik_list_flows
- 列出认证流程。
authentik_get_flow
- 获取流程详细信息。
- 提供者管理:
authentik_list_providers
- 列出提供者。
authentik_get_provider
- 获取提供者详细信息。
- 令牌管理:
authentik_list_tokens
- 列出 API 令牌。
authentik_create_token
- 创建新令牌。
诊断 MCP 服务器工具
- 事件监控:
authentik_list_events
- 带过滤功能的系统事件列表。
authentik_get_event
- 获取详细的事件信息。
authentik_search_events
- 根据条件搜索事件。
authentik_get_user_events
- 获取特定用户的事件。
- 用户信息(只读):
authentik_get_user_info
- 获取用户信息。
authentik_list_users_info
- 列出用于诊断的用户。
authentik_get_user_events
- 获取用户事件历史记录。
- 组信息(只读):
authentik_get_group_info
- 获取组信息。
authentik_list_groups_info
- 列出用于诊断的组。
authentik_get_group_members
- 获取组成员。
- 系统健康:
authentik_get_system_config
- 获取系统配置。
authentik_get_version_info
- 获取版本信息。
- 应用/流程/提供者状态(只读):
authentik_get_application_status
- 检查应用程序状态。
authentik_list_applications_status
- 列出应用程序状态。
authentik_get_flow_status
- 检查流程状态。
authentik_list_flows_status
- 列出流程状态。
authentik_get_provider_status
- 检查提供者状态。
authentik_list_providers_status
- 列出提供者状态。
使用场景
全功能 MCP 服务器
- 用户管理:创建、更新和管理用户账户。
- 组管理:将用户组织到具有适当权限的组中。
- 应用设置:配置和部署新应用程序。
- 流程配置:设置和自定义认证流程。
- 系统管理:完成系统管理和配置。
诊断 MCP 服务器
- 安全监控:跟踪认证事件和安全事件。
- 性能分析:监控系统性能和用户体验。
- 合规报告:生成审计报告和合规文档。
- 故障排除:诊断认证和访问问题。
- 健康监控:监控系统健康状况和配置漂移。
安全最佳实践
令牌管理
- 为每种服务器类型使用专用令牌。
- 定期轮换令牌。
- 应用最小权限原则。
- 监控令牌使用情况。
环境安全
- 在生产环境中始终使用 HTTPS。
- 验证 SSL 证书。
- 使用环境变量存储敏感数据。
- 实施适当的访问控制。
监控
- 启用审计日志记录。
- 监控 API 使用模式。
- 为可疑活动设置警报。
- 定期进行安全审查。
开发
构建所有包
chmod +x build.sh
./build.sh
发布所有包
chmod +x publish.sh
./publish.sh
开发设置
Python 开发
cd python/authentik-mcp
uv sync
uv run authentik-mcp --base-url http://localhost:9000 --token your-token
Node.js 开发
cd nodejs/authentik-mcp
npm install
npm run dev -- --base-url http://localhost:9000 --token your-token
要求
Python
- Python 3.10 或更高版本。
- uv 包管理器(推荐)。
Node.js
通用要求
- 具有适当权限的有效 Authentik API 令牌。
- npm 或 yarn。
项目结构
authentik-mcp/
├── python/
│ ├── authentik-mcp/ # 完整的 Python MCP 服务器
│ └── authentik-diag-mcp/ # 诊断用 Python MCP 服务器
├── nodejs/
│ ├── authentik-mcp/ # 完整的 Node.js MCP 服务器
│ └── authentik-diag-mcp/ # 诊断用 Node.js MCP 服务器
├── build.sh # 构建所有包
├── publish.sh # 发布所有包
└── README.md # 本文件
📄 许可证
本项目采用 MIT 许可证,具体细节请参阅各个包的 LICENSE 文件。
支持
贡献
我们欢迎贡献!请参阅我们的 贡献指南 了解详情。
变更日志
各个包的版本历史和变更请参阅其 CHANGELOG.md 文件。