authentik-mcp
MCP server exposing the full Authentik identity-provider API as six grouped tools plus a version check, for reading, writing, deleting, and administering Authentik resources.
authentik_version— get server version and service status.authentik_read— read-only queries over users, groups, apps, tokens, providers, outposts, crypto, and RBAC.authentik_write— create/update core resources (non-destructive).authentik_delete— destructive, irreversible deletes across all domains.authentik_flows_read— read flows, stages, policies, sources, events, plus policy bindings (app/flow access gates).authentik_flows_write— create/update auth pipeline config, includingCreatePolicyBindingto restrict apps to a group/user.authentik_admin— admin settings, system info, files, admin authenticator devices, lifecycle.Discovery — call any group with
operation="help"for the operation list, oroperation="schema", params={"op": "..."}for the full typed parameter contract (required/optional/nullable).Deployment — stdio by default, or streamable HTTP via
--httpathttp://127.0.0.1:8000/mcp(no auth; put a gateway in front); importable as a library for multi-instance hosting.Scope note — targets Authentik 2026.8.3 only; operations/schemas are generated from the vendored OpenAPI document.
Provides tools for managing Authentik identity provider resources including users, groups, applications, tokens, providers, flows, stages, policies, and admin settings.
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-mcp list all users"
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-mcp
MCP server for Authentik identity provider.
Install
{
"mcpServers": {
"authentik": {
"command": "uvx",
"args": ["--refresh", "--extra-index-url", "https://nikitatsym.github.io/authentik-mcp/simple", "authentik-mcp"],
"env": {
"AUTHENTIK_URL": "https://auth.example.com",
"AUTHENTIK_TOKEN": "your-api-token"
}
}
}
}Where to paste:
Claude Desktop —
~/Library/Application Support/Claude/claude_desktop_config.jsonCursor —
.cursor/mcp.jsonin your projectClaude Code —
~/.claude.jsontop-levelmcpServers
Or use the setup wizard to generate the config.
HTTP
authentik-mcp --http serves streamable HTTP at http://127.0.0.1:8000/mcp (--host, --port) instead of stdio, same environment variables. No authentication: put a gateway in front. The package can also be imported: mcp, Settings, the client class, and client_var (a ContextVar the host sets per request) let one process serve several instances.
Related MCP server: MCP Authentik
Getting an API token
Authentik admin panel → Directory → Tokens and App passwords → Create with API scope.
Groups
Tool | Description |
| Users, groups, apps, tokens, providers, outposts, crypto, RBAC (read-only) |
| Create/update core resources (non-destructive) |
| Delete operations across all domains (destructive) |
| Flows, stages, policies, sources, events (read-only) |
| Create/update auth pipeline config (non-destructive) |
| Admin settings, system info, lifecycle |
Call any group with operation="help" to list available operations.
Application access control
Apps are open to all authenticated users until gated. Restrict an app to a group/user by binding it: CreatePolicyBinding(target=<app pk>, group=<group pk>) (or user=) in authentik_flows_write; inspect gates with ListPolicyBindings / ShowPolicyBinding in authentik_flows_read. Policy bindings live under the authentik_flows_* groups, not the core ones.
Generated API contract
Targets Authentik 2026.8.3 only. Operations and typed parameter schemas are
generated from the vendored OpenAPI document. The hand-maintained tables in
codegen/operations/ supply public names, descriptions, and the six existing
groups. A PUT with a PATCH at the same path is explicitly listed but not exposed.
Call a group with operation="schema", params={"op": "SendRecoveryEmail"} for
its complete required/optional/nullable parameter contract. Recovery email uses
id, email_stage, and optional token_duration (for example "minutes=10").
Group parent relationships use parents, not parent. Application icons are
updated through UpdateApplication(meta_icon=...); an empty string clears one.
ImportBlueprint(file=...) imports flow-export YAML from a server-local file.
See SPEC.md for generation, review, validation, parameter naming, preserved pagination/projections, and endpoint replacements.
uv run python codegen/generate.py
uv run python scripts/bootstrap.py
./dev.py check
./dev.py e2eAvailable Tools
7 toolsauthentik_adminB
Admin-only Authentik operations: settings, system, version, files, admin authenticator devices.
Call with operation="help" to list all available admin operations. Otherwise pass the operation name and a JSON object with parameters.
Example: authentik_admin(operation="GetSystemInfo")
Inputs: operation (required), params.
authentik_deleteA
Delete Authentik resources (destructive, irreversible).
Call with operation="help" to list all available delete operations. Otherwise pass the operation name and a JSON object with parameters.
Example: authentik_delete(operation="DeleteUser", params={"id": 1})
Inputs: operation (required), params.
authentik_flows_readA
Query Authentik auth pipeline config: flows, stages, policies, sources, events (safe, read-only).
Call with operation="help" to list all available operations. Otherwise pass the operation name and a JSON object with parameters.
Example: authentik_flows_read(operation="ListFlows")
Inputs: operation (required), params.
authentik_flows_writeA
Create or update Authentik auth pipeline config: flows, stages, policies, sources (non-destructive).
Call with operation="help" to list all available operations. Otherwise pass the operation name and a JSON object with parameters.
Example: authentik_flows_write(operation="CreateFlow", params={"name": "my-flow", "slug": "my-flow", "designation": "authorization"})
Inputs: operation (required), params.
authentik_readA
Query Authentik data (safe, read-only). Policy bindings (app/flow access gates) are in authentik_flows_read.
Call with operation="help" to list all available read operations. Otherwise pass the operation name and a JSON object with parameters.
Example: authentik_read(operation="ListUsers", params={"search": "admin"})
Inputs: operation (required), params.
authentik_versionA
Get the Authentik MCP server version and service status.
Inputs: no named parameters.
authentik_writeA
Create or update Authentik resources (non-destructive). Application/flow access gating (policy bindings) is in authentik_flows_write.
Call with operation="help" to list all available write operations. Otherwise pass the operation name and a JSON object with parameters.
Example: authentik_write(operation="CreateUser", params={"username": "alice", "name": "Alice"})
Inputs: operation (required), params.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Tools are mostly distinct but there is potential confusion between authentik_write and authentik_flows_write, and between authentik_read and authentik_flows_read, as the domain-specific tools overlap with general ones.
Naming uses a consistent authentik_ prefix and snake_case, but the pattern varies: some tools include a domain (e.g., authentik_flows_write) while others do not (e.g., authentik_write), leading to minor inconsistency.
With 7 tools, the count is well-scoped for an Authentik administration server, covering core operations without being overwhelming or insufficient.
The tool set covers CRUD operations (create/update via write, read via read and flows_read, delete via delete) and admin actions, but lacks a distinct update-only tool; the write tool handles both create and update, which is acceptable but not ideal.
Maintenance
Related MCP Connectors
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP Server that enables natural language interaction with the Open Policy Agent REST API, allowing users to manage policies, decisions, and data through conversational interfaces.1-
- AlicenseNot gradedqualityBmaintenanceMCP server for Authentik identity management, enabling natural language management of users, groups, applications, flows, policies, providers, and more.116 npm16MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides a natural language interface for managing Keycloak identity and access management through its REST API.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for managing Ory Kratos identities, sessions, and authentication flows, enabling AI assistants to perform identity management tasks via natural language.17 npm1MIT