Skip to main content
Glama
authentik-mcp

authentik-mcp

by nikitatsym

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.json

  • Cursor — .cursor/mcp.json in your project

  • Claude Code — ~/.claude.json top-level mcpServers

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

authentik_read

Users, groups, apps, tokens, providers, outposts, crypto, RBAC (read-only)

authentik_write

Create/update core resources (non-destructive)

authentik_delete

Delete operations across all domains (destructive)

authentik_flows_read

Flows, stages, policies, sources, events (read-only)

authentik_flows_write

Create/update auth pipeline config (non-destructive)

authentik_admin

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 e2e

Available Tools

7 tools
authentik_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

    A3.7/5.0

    Scored across 7 tools

    Disambiguation4/5

    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 Consistency4/5

    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.

    Tool Count5/5

    With 7 tools, the count is well-scoped for an Authentik administration server, covering core operations without being overwhelming or insufficient.

    Completeness4/5

    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

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      MCP server for Authentik identity management, enabling natural language management of users, groups, applications, flows, policies, providers, and more.
      116 npm
      16
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol (MCP) server that provides a natural language interface for managing Keycloak identity and access management through its REST API.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      MCP server for managing Ory Kratos identities, sessions, and authentication flows, enabling AI assistants to perform identity management tasks via natural language.
      17 npm
      1
      MIT