authentik-aws-mcp
Manage authentik identity provider: list and create groups, create users, add users to groups, provision users with default groups, reset passwords, and send password reset notifications via the Authentik API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@authentik-aws-mcp帮我把 dev@qq.com 加到 awsv1 组,并返回随机密码。"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
authentik-aws-mcp
用于通过 https://authsso.verycloud.cn/api/v3/ 管理 authentik 的 MCP Server。
支持:
列出组
添加组
创建用户
删除用户
批量删除用户
列出用户
禁用/启用用户
用户存在则更新,不存在则创建(upsert)
在组中添加用户
从组中移除用户
同步用户组(merge/replace)
默认开通用户(创建用户并加入默认组)
一句话开通并自动加组(组不存在自动创建,返回随机密码)
批量一句话开通(批量创建并加入同组)
重置用户密码(支持自动生成随机密码并返回)
批量重置用户密码(支持 email/username/user_pk 混合输入)
强制重置并尝试发送邮件通知
查看最近事件(Recent events)
最近一周登录与授权时间序列(Logins and authorizations,按时间桶聚合)
最近安全统计概览(一次输出上面两个维度)
列出应用(Applications,附带绑定的 Provider 概要)
查看单个应用详情(含绑定 Provider)
列出提供程序(Providers,含类型与所属应用)
查看应用及其绑定的 Provider 详细信息
获取 OAuth2/OpenID Provider 完整配置(client_id/secret、回调地址、scope、OIDC 端点)
服务脚本:authentik-aws-mcp.mjs
1) 安装依赖
在项目目录执行:
npm init -y
npm i @modelcontextprotocol/sdk zod
npm pkg set type=moduleRelated MCP server: MCP Authentik
2) MCP 配置示例(token 从 JSON 传入)
将以下配置加入你的 MCP 客户端配置文件:
{
"mcpServers": {
"authentik-aws": {
"command": "node",
"args": [
"/Users/betty/Downloads/authentik-mcp-for-aws-quick/authentik-aws-mcp.mjs"
],
"env": {
"AUTHENTIK_BASE_URL": "https://authsso.verycloud.cn/api/v3",
"AUTHENTIK_TOKEN": "<你的token>",
"AUTHENTIK_DEFAULT_GROUPS": "aws-users,developers",
"AUTHENTIK_PASSWORD_MIN_LENGTH": "12"
}
}
}
}环境变量说明
AUTHENTIK_TOKEN:必填,authentik API tokenAUTHENTIK_BASE_URL:可选,默认https://authsso.verycloud.cn/api/v3AUTHENTIK_DEFAULT_GROUPS:可选,默认开通用户时加入的组(逗号分隔)AUTHENTIK_PASSWORD_MIN_LENGTH:可选,密码最小长度,默认12
3) 输入校验规则
创建用户/默认开通时要求:
username:3-64 位,允许字母/数字/._-name:显示名,1-128 字符email:合法邮箱格式password:满足复杂度:长度 >=
AUTHENTIK_PASSWORD_MIN_LENGTH包含大写、小写、数字、特殊字符
4) 工具与使用示例
以下为工具参数示例(在 MCP 客户端里调用时使用对应 JSON)。
4.1 list_groups
{
"search": "aws",
"page": 1,
"page_size": 50
}4.2 create_group
{
"name": "aws-readonly",
"is_superuser": false,
"if_not_exists": true
}4.3 create_user
{
"username": "zhangsan",
"name": "张三",
"email": "zhangsan@example.com",
"password": "Aa123456!@#",
"is_active": true,
"if_not_exists": true
}4.4 delete_user
删除用户,支持按 email / username / user_pk。
方式 A:按邮箱删除(推荐)
{
"email": "dev@qq.com",
"if_not_exists": true
}方式 B:按用户名删除
{
"username": "dev",
"if_not_exists": true
}方式 C:按 user_pk 删除
{
"user_pk": 123,
"if_not_exists": true
}4.5 add_user_to_group
方式 A(用户名 + 组名):
{
"username": "zhangsan",
"group_name": "aws-readonly"
}方式 B(邮箱 + 组名):
{
"email": "zhangsan@example.com",
"group_name": "aws-readonly"
}方式 C(user_pk + group_pk):
{
"user_pk": 123,
"group_pk": "f6d8a1d2-xxxx-xxxx-xxxx-1a2b3c4d5e6f"
}4.6 provision_user_default
使用默认组(来自 AUTHENTIK_DEFAULT_GROUPS):
{
"username": "lisi",
"name": "李四",
"email": "lisi@example.com",
"password": "Aa123456!@#"
}4.7 quick_add_user_to_group(推荐:一句话开通)
场景:你希望一句话完成“如果组不存在就创建、再创建用户、并自动加到组里、最后返回随机密码”。
示例(你的场景):
{
"email": "dev@qq.com",
"group_name": "awsv1"
}行为说明:
awsv1不存在:自动创建(不提示“组不存在”)用户不存在:创建用户并加入组
用户存在:提示“用户已存在”,并确保用户在组内
新建用户时:返回
generated_password
可选传参(覆盖默认用户名/显示名):
{
"email": "dev@qq.com",
"group_name": "awsv1",
"username": "dev",
"name": "Dev User"
}4.8 reset_user_password
重置用户密码,支持指定密码或自动随机生成。
方式 A:按邮箱重置并自动生成随机密码(推荐)
{
"email": "dev@qq.com"
}方式 B:按用户名并指定新密码
{
"username": "dev",
"password": "Aa123456!@#"
}方式 C:按 user_pk
{
"user_pk": 123
}4.9 force_reset_password_and_notify
强制重置密码,并尝试调用 authentik 邮件通知端点发送通知。
示例 A:按邮箱重置并通知(不强制邮件一定成功)
{
"email": "dev@qq.com"
}示例 B:要求“邮件必须发送成功”,否则报错
{
"email": "dev@qq.com",
"require_email_success": true
}示例 C:指定密码并通知
{
"username": "dev",
"password": "Aa123456!@#",
"require_email_success": false
}返回说明:
reset:密码是否重置成功notify.ok:邮件通知是否成功notify.endpoint:成功使用的通知端点notify.errors:通知失败时,各尝试端点的错误new_password:新密码(请妥善保存)
4.10 list_users
列出用户,支持搜索、分页、按组过滤。
{
"search": "dev",
"group_name": "awsv1",
"page": 1,
"page_size": 50
}4.11 disable_user / enable_user
禁用用户:
{
"email": "dev@qq.com"
}启用用户:
{
"email": "dev@qq.com"
}4.12 remove_user_from_group
把用户从组中移除:
{
"email": "dev@qq.com",
"group_name": "awsv1"
}4.13 bulk_quick_add_users_to_group
批量开通并加入同一组(组不存在自动创建):
{
"group_name": "awsv1",
"users": [
{ "email": "dev1@qq.com", "username": "dev1", "name": "Dev 1" },
{ "email": "dev2@qq.com", "username": "dev2", "name": "Dev 2" }
],
"continue_on_error": true
}返回中会同时包含:
generated_password:明文密码generated_password_b64:Base64 密码(用于避免聊天/表格转义导致复制错误)
4.14 bulk_delete_users
批量删除用户(支持 email / username / user_pk,支持不存在跳过):
{
"users": [
{ "email": "dev1@qq.com" },
{ "username": "dev2" },
{ "user_pk": 123 }
],
"if_not_exists": true,
"continue_on_error": true
}4.15 upsert_user
用户存在则更新,不存在则创建:
{
"username": "dev",
"name": "Dev User",
"email": "dev@qq.com",
"is_active": true
}更新时顺便重置密码:
{
"username": "dev",
"name": "Dev User",
"email": "dev@qq.com",
"password": "Aa123456!@#",
"reset_password_on_update": true
}4.16 sync_user_groups
同步用户组(merge 并集 / replace 完全替换):
{
"email": "dev@qq.com",
"groups": ["awsv1", "developers"],
"mode": "replace",
"create_missing_groups": true
}4.17 bulk_reset_password
批量重置密码(支持混合输入):
{
"users": [
{ "email": "admin1@qq.com" },
{ "username": "admin2" },
{ "user_pk": 123 }
],
"continue_on_error": true
}每个成功项会返回:
new_passwordnew_password_b64
provision_user_default 调用时指定组示例:
{
"username": "wangwu",
"name": "王五",
"email": "wangwu@example.com",
"password": "Aa123456!@#",
"groups": ["aws-users", "aws-admin"],
"create_missing_groups": true
}4.18 list_recent_events
查看最近事件(按时间倒序),可按 action / actions / username 过滤:
{
"actions": ["login", "authorize_application"],
"username": "dev",
"limit": 20,
"page": 1
}返回中每条事件包含:action、user、app、client_ip、created、brand、context。
4.19 get_logins_authorizations_volume
统计最近一周(默认 7 天)的登录与授权事件量,后端按小时聚合并对齐到时间桶:
{
"history_days": 7,
"actions": ["login", "authorize_application"]
}返回 timeseries(每个时间桶含 total 和 by_action)与 summary(grand_total、by_action、bucket_count)。
说明:authentik 面板卡片标签写的是 "per 8 hours",但后端
volume接口实际按小时聚合后对齐到时间桶。本工具直接使用接口返回的time字段,不自行改动粒度,保证与 authentik 一致。
4.20 get_security_overview(最近安全统计,推荐)
一次调用同时输出两个维度:最近事件 + 最近一周登录/授权时间序列。适合"我想查看一下最近的安全统计"这类需求:
{
"history_days": 7,
"recent_limit": 20
}返回结构:
recent_events:最近事件列表logins_and_authorizations:时间序列 + 汇总
参数均可选,不传则使用默认值(7 天、20 条、login + authorize_application)。
4.21 list_applications
列出应用,每个应用附带绑定的 Provider 概要:
{
"search": "aws",
"limit": 50,
"page": 1
}每个应用返回:name、slug、provider_pk、provider(类型/名称/流程)、launch_url 等。
4.22 get_application
按 slug 或名称查看单个应用详情(含绑定 Provider 完整信息):
{
"slug": "newapi"
}或按名称:
{
"name": "newapi"
}4.23 list_providers
列出所有 Provider,含类型(component,如 oauth2provider/saml-provider)与所属应用:
{
"search": "newapi",
"limit": 100
}只看未绑定任何应用的 Provider:
{
"unassigned_only": true
}4.24 get_application_with_provider(应用 + 绑定 Provider 详情)
输入应用 slug 或名称,返回应用信息 + 绑定 Provider(类型与流程)的详细信息:
{
"name": "newapi"
}4.25 get_oauth2_provider_config(OAuth2 完整配置)
获取 OAuth2/OpenID Provider 的完整配置。三种定位方式任选其一:
方式 A:直接传 Provider 数字 PK
{
"provider_id": 22
}方式 B:传应用 slug(自动解析该应用绑定的 Provider)
{
"application_slug": "newapi"
}方式 C:传应用名称
{
"application_name": "newapi"
}返回内容:
provider:client_id、client_secret、redirect_uris(回调地址)、signing_key、sub_mode、各类 token 有效期、流程等scopes:把 property mapping ID 解析为 scope 名称(如 openid/email/profile)+ descriptionoidc_endpoints:issuer/authorize/token/user_info/jwks/logout 等 URL
⚠️ 注意:返回内容包含
client_secret等敏感凭证,请仅在安全渠道使用。可选参数:
include_setup_urls(默认 true)、resolve_scopes(默认 true),需要极简输出时可分别关闭。
5) 自检
node --check authentik-aws-mcp.mjs6) 所有 MCP 调用方法总览(可直接复制给大模型)
下面给你每个工具的两种调用方式:
自然语言口令:你在对话里直接发给大模型
参数 JSON:大模型实际调用工具时使用的参数
6.1 list_groups
自然语言:
请调用
list_groups,搜索aws,第 1 页,每页 50 条。
参数 JSON:
{
"search": "aws",
"page": 1,
"page_size": 50
}6.2 create_group
自然语言:
帮我创建组
awsv1,已存在就跳过。
参数 JSON:
{
"name": "awsv1",
"is_superuser": false,
"if_not_exists": true
}6.3 create_user
自然语言:
创建用户 dev(显示名 Dev,邮箱 dev@qq.com),密码 Aa123456!@#,已存在就跳过。
参数 JSON:
{
"username": "dev",
"name": "Dev",
"email": "dev@qq.com",
"password": "Aa123456!@#",
"is_active": true,
"if_not_exists": true
}6.4 delete_user
自然语言:
删除用户 dev@qq.com;如果不存在就直接跳过,不要报错。
参数 JSON:
{
"email": "dev@qq.com",
"if_not_exists": true
}6.5 add_user_to_group
自然语言:
把用户 dev@qq.com 加入 awsv1 组。
参数 JSON:
{
"email": "dev@qq.com",
"group_name": "awsv1"
}6.6 provision_user_default
自然语言:
默认开通用户:dev01(Dev 01,dev01@qq.com),密码 Aa123456!@#,并加入默认组。
参数 JSON:
{
"username": "dev01",
"name": "Dev 01",
"email": "dev01@qq.com",
"password": "Aa123456!@#"
}6.7 quick_add_user_to_group(一句话开通推荐)
自然语言:
帮我添加 dev@qq.com 到 awsv1 组;如果组不存在就自动创建;如果用户不存在就创建并返回随机密码。
参数 JSON:
{
"email": "dev@qq.com",
"group_name": "awsv1"
}6.8 reset_user_password
自然语言:
帮我重置 dev@qq.com 的密码,并返回新密码。
参数 JSON:
{
"email": "dev@qq.com"
}返回中同时包含:
new_passwordnew_password_b64
若你怀疑复制时被转义,建议优先使用 b64 还原。
6.9 force_reset_password_and_notify
自然语言:
强制重置 dev@qq.com 的密码并发送通知邮件,邮件必须成功。
参数 JSON:
{
"email": "dev@qq.com",
"require_email_success": true
}6.10 list_users
自然语言:
列出 awsv1 组里的用户,搜索 dev,第 1 页每页 50 条。
参数 JSON:
{
"search": "dev",
"group_name": "awsv1",
"page": 1,
"page_size": 50
}6.11 disable_user
自然语言:
禁用用户 dev@qq.com。
参数 JSON:
{
"email": "dev@qq.com"
}6.12 enable_user
自然语言:
启用用户 dev@qq.com。
参数 JSON:
{
"email": "dev@qq.com"
}6.13 remove_user_from_group
自然语言:
把 dev@qq.com 从 awsv1 组移除。
参数 JSON:
{
"email": "dev@qq.com",
"group_name": "awsv1"
}6.14 bulk_quick_add_users_to_group
自然语言:
批量开通 dev1@qq.com 和 dev2@qq.com 到 awsv1,组不存在自动创建。
参数 JSON:
{
"group_name": "awsv1",
"users": [
{ "email": "dev1@qq.com", "username": "dev1", "name": "Dev 1" },
{ "email": "dev2@qq.com", "username": "dev2", "name": "Dev 2" }
],
"continue_on_error": true
}6.15 bulk_delete_users
自然语言:
批量删除 dev1@qq.com、dev2 和 user_pk=123,不存在就跳过。
参数 JSON:
{
"users": [
{ "email": "dev1@qq.com" },
{ "username": "dev2" },
{ "user_pk": 123 }
],
"if_not_exists": true,
"continue_on_error": true
}6.16 upsert_user
自然语言:
upsert 用户 dev@qq.com:存在就更新,不存在就创建。
参数 JSON:
{
"username": "dev",
"name": "Dev User",
"email": "dev@qq.com",
"is_active": true
}6.17 sync_user_groups
自然语言:
把 dev@qq.com 的组同步为 awsv1 和 developers(replace 模式,不在列表里的组都移除)。
参数 JSON:
{
"email": "dev@qq.com",
"groups": ["awsv1", "developers"],
"mode": "replace",
"create_missing_groups": true
}6.18 bulk_reset_password
自然语言:
批量重置 admin1@qq.com 到 admin10@qq.com 的密码,并返回每个人的新密码和 b64。
参数 JSON:
{
"users": [
{ "email": "admin1@qq.com" },
{ "email": "admin2@qq.com" },
{ "email": "admin3@qq.com" }
],
"continue_on_error": true
}6.19 list_recent_events
自然语言:
看一下最近的登录和授权事件,最多 20 条。
参数 JSON:
{
"actions": ["login", "authorize_application"],
"limit": 20
}6.20 get_logins_authorizations_volume
自然语言:
统计最近一周的登录和授权量。
参数 JSON:
{
"history_days": 7
}6.21 get_security_overview(最近安全统计推荐)
自然语言:
我想查看一下最近的安全统计。
参数 JSON:
{}会一次性返回最近事件与最近一周登录/授权时间序列两个维度。
6.22 list_applications
自然语言:
列出所有应用,把每个应用绑定的 Provider 也一起显示。
参数 JSON:
{}6.23 get_application
自然语言:
查看应用 newapi 的详情,包括它绑定的 Provider。
参数 JSON(按 slug):
{
"slug": "newapi"
}或按名称:
{
"name": "newapi"
}6.24 get_application_with_provider
自然语言:
查看应用 newapi 绑定了哪个 Provider,给我详细信息。
参数 JSON:
{
"name": "newapi"
}6.25 list_providers
自然语言:
列出所有 Provider,告诉我每个的类型和所属应用。
参数 JSON:
{}6.26 get_oauth2_provider_config
自然语言:
帮我拉取应用 newapi 的 OAuth2 完整配置,包括 client_id、回调地址和 scope。
参数 JSON(用应用 slug,推荐;不用记数字 PK):
{
"application_slug": "newapi"
}或直接用 Provider 数字 PK:
{
"provider_id": 22
}返回 client_id / client_secret / redirect_uris / scopes / oidc_endpoints。⚠️ 含敏感凭证。
6.27 通用对话模板(推荐)
你可以固定这样对大模型说:
使用
authentik-awsMCP 完成:
工具名:
<tool_name>参数:
<json>输出要求:返回关键结果(用户、组、密码、是否成功)
示例:
使用
authentik-awsMCP,调用quick_add_user_to_group,参数{ "email": "dev@qq.com", "group_name": "awsv1" },返回用户、组和生成密码。
7) 常见问题
启动时报 Missing AUTHENTIK_TOKEN
说明 MCP JSON 的 env 没传 AUTHENTIK_TOKEN,或变量名写错。
创建用户报密码复杂度不满足
请确认密码同时包含:大写、小写、数字、特殊字符,并且长度达到最小值。
加组报未找到组
先调用 create_group,或在 provision_user_default 里传 create_missing_groups: true。
我想一句话开通用户到组,还要随机密码
请直接调用 quick_add_user_to_group,例如:
{
"email": "dev@qq.com",
"group_name": "awsv1"
}我想重置密码并拿到新密码
调用 reset_user_password,如果不传 password,系统会自动生成随机复杂密码并返回。
我想“重置密码 + 发通知邮件”一步完成
调用 force_reset_password_and_notify。
如果你要求“邮件必须成功才算成功”,请传:
{
"email": "dev@qq.com",
"require_email_success": true
}创建后提示密码不对怎么办
请直接调用 reset_user_password 重新设置一次,并使用返回的 new_password 登录。
示例:
{
"email": "dev@qq.com"
}我想查看最近的安全统计
直接说"我想查看一下最近的安全统计"即可,大模型会调用 get_security_overview,一次返回最近事件和最近一周登录/授权时间序列两个维度。
如果只想看其中一个维度,可分别调用 list_recent_events 或 get_logins_authorizations_volume。
批量创建后密码登录失败怎么办
优先排查是否“复制时被转义/变形”:
使用结果里的
generated_password_b64(或new_password_b64)进行还原后再登录若仍失败,直接调用
reset_user_password重新生成一次密码再试
Node 本地还原示例:
node -e "console.log(Buffer.from('这里放b64','base64').toString('utf8'))"This server cannot be deployed
Maintenance
Related MCP Connectors
Manage repositories, users, releases, and automate GitHub workflows
Users, organizations, roles, permissions, applications and feature flags.
Inspect ACC administration data and run bounded, approval-gated bulk user workflows.
- WorkOSOAuthcom.workos
Manage your WorkOS workspace in plain language: orgs, users, SSO, Directory Sync, and AuthKit.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables Claude to interact with Okta's user management system, providing capabilities to retrieve user details, list users with filtering options, and manage user groups.2034 npm22MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for Authentik identity management, enabling natural language management of users, groups, applications, flows, policies, providers, and more.107 npm13MIT
- AlicenseAqualityAmaintenanceMCP server for Authentik identity provider enabling management of users, groups, apps, tokens, flows, and policy bindings through natural language.71MIT
- AlicenseNot gradedqualityDmaintenanceManages Google Workspace users through the Admin Directory API, enabling user listing, creation, suspension, and unsuspension.MIT