关于 Authentik MCP Server
一组连接 Authentik API 的 MCP 服务,提供 Python 和 Node.js 实现,并包含完整管理版与只读诊断版,供自动化管理和监控使用。
主要功能
- 01Python 和 Node.js 实现
- 02用户、组及应用 CRUD
- 03事件与系统健康监控
- 04诊断版提供只读访问
适用场景
- 01自动创建和更新用户、组及应用
- 02检查认证事件和系统健康
- 03排查应用、流程及访问问题
MCP 相关
向 MCP 客户端提供 Authentik API 工具,可管理用户、组、应用和令牌,也可执行只读诊断与监控。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Authentik MCP 服务
一组用于集成 Authentik API 的模型上下文协议(MCP)服务,提供 Python 和 Node.js 两种实现。
概述
此仓库包含四个用于集成 Authentik 的 MCP 服务:
全功能服务
- authentik-mcp(Python)- 完整集成 Authentik API,支持全部 CRUD 操作
- authentik-mcp(Node.js)- 使用 TypeScript 实现,可完整访问 API
仅用于诊断的服务
- authentik-diag-mcp(Python)- 提供只读诊断和监控功能
- authentik-diag-mcp(Node.js)- 使用 TypeScript 实现,用于诊断和监控
MCP 集成与使用
此仓库旨在与模型上下文协议(MCP)生态系统无缝集成。这些服务应由兼容 MCP 的工具(如 VS Code 扩展、自动化平台或编排系统)运行和管理,而非直接通过命令行运行。
如何通过 MCP 使用
- 安装所需的软件包:
- 完整 API 访问:
authentik-mcp - 诊断/监控:
authentik-diag-mcp
- 完整 API 访问:
- 配置 MCP 工具或平台,使其指向已安装的服务二进制文件(例如
authentik-mcp或authentik-diag-mcp),并通过参数或环境变量提供所需的 Authentik API 令牌和基础 URL。 - 不要直接通过 CLI 运行这些服务。 请让兼容 MCP 的工具管理其生命周期和通信。
- 通过 MCP 工具界面与 Authentik 交互,该界面会提供所有可用的资源和工具,用于自动化、监控和诊断。
示例:VS Code Github Copilot MCP 扩展
GitHub Copilot Workspace(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 Workspace(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 Desktop(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 Desktop(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"
]
}
}
}
快速开始
Python 软件包
注意: 这些软件包不适用于直接通过 CLI 使用。请按照上述说明,将其集成到兼容 MCP 的工具或平台中。
Node.js 软件包
注意: 这些软件包不适用于直接通过 CLI 使用。请按照上述说明,将其集成到兼容 MCP 的工具或平台中。
完整 API 访问
由 MCP 工具管理。无需直接通过 CLI 使用。
仅用于诊断
由 MCP 工具管理。无需直接通过 CLI 使用。
功能对比
| 功能 | 完整 MCP | 诊断 MCP |
|---|---|---|
| 用户管理(CRUD) | ✅ | ❌(只读) |
| 群组管理(CRUD) | ✅ | ❌(只读) |
| 应用程序管理(CRUD) | ✅ | ❌(只读) |
| 事件监控 | ✅ | ✅ |
| 用户信息 | ✅ | ✅(只读) |
| 群组信息 | ✅ | ✅(只读) |
| 应用程序状态 | ✅ | ✅(只读) |
| 流程管理 | ✅ | ✅(只读) |
| 提供商管理 | ✅ | ✅(只读) |
| 令牌管理 | ✅ | ❌ |
| 系统运行状况监控 | ✅ | ✅ |
| 审计跟踪分析 | ✅ | ✅ |
API 令牌设置
完整访问(authentik-mcp)
- 以管理员身份登录 Authentik
- 前往 Directory > Tokens
- 创建具有完整 API 权限的新令牌
- 复制令牌,以便与完整 MCP 服务配合使用
诊断访问(authentik-diag-mcp)
- 以管理员身份登录 Authentik
- 前往 Directory > Tokens
- 创建具有最低只读权限的新令牌
- 复制令牌,以便与诊断 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 # or authentik-diag-mcp
uv sync
uv run authentik-mcp --base-url http://localhost:9000 --token your-token
Node.js 开发
cd nodejs/authentik-mcp # or authentik-diag-mcp
npm install
npm run dev -- --base-url http://localhost:9000 --token your-token
要求
Python
- Python 3.10 或更高版本
- uv 包管理器(推荐)
Node.js
- Node.js 18.0.0 或更高版本
通用要求
- 具有适当权限的有效 Authentik API 令牌
- npm 或 yarn
项目结构
authentik-mcp/
├── python/
│ ├── authentik-mcp/ # Full Python MCP server
│ └── authentik-diag-mcp/ # Diagnostic Python MCP server
├── nodejs/
│ ├── authentik-mcp/ # Full Node.js MCP server
│ └── authentik-diag-mcp/ # Diagnostic Node.js MCP server
├── build.sh # Build all packages
├── publish.sh # Publish all packages
└── README.md # This file
许可证
MIT 许可证 — 详情请参阅各个软件包的 LICENSE 文件。
支持
贡献
欢迎贡献!详情请参阅我们的贡献指南。
更新日志
请参阅各个软件包的 CHANGELOG.md 文件,了解版本历史和变更。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。