MCP Authentik

MCP serverDev tools

Manage Authentik through AI assistants

Unavailable. This server has no hosted endpoint yet, so ahel can't serve it.

Connect ahel once, and every AI you use reads what you have installed.

From the project's README

As published by samik081/mcp-authentik in README.md.

MCP server for Authentik identity management. Manage users, groups, applications, flows, policies, providers, and more through natural language in Cursor, Claude Code, and Claude Desktop.

Features

  • 297 tools across 22 categories covering the complete Authentik API
  • Read-only mode via AUTHENTIK_ACCESS_TIER=read-only for safe monitoring
  • Category filtering via AUTHENTIK_CATEGORIES to expose only the tools you need
  • Type-safe SDK client via @goauthentik/api
  • Docker images for linux/amd64 and linux/arm64 on GHCR
  • Remote MCP via HTTP transport (MCP_TRANSPORT=http) using the Streamable HTTP protocol
  • TypeScript/ESM with full type safety

API Compatibility

Built for Authentik 2026.5.

Quick Start

Run the server directly with npx:

AUTHENTIK_URL="https://auth.example.com" \
AUTHENTIK_TOKEN="your-api-token" \
npx -y @samik081/mcp-authentik

The server validates your Authentik connection on startup and fails immediately with a clear error if credentials are missing or invalid.

Docker

Run with Docker (stdio transport, same as npx):

docker run --rm -i \
  -e AUTHENTIK_URL=https://auth.example.com \
  -e AUTHENTIK_TOKEN=your-api-token \
  ghcr.io/samik081/mcp-authentik

To run as a remote MCP server with HTTP transport:

docker run -d -p 3000:3000 \
  -e MCP_TRANSPORT=http \
  -e AUTHENTIK_URL=https://auth.example.com \
  -e AUTHENTIK_TOKEN=your-api-token \
  ghcr.io/samik081/mcp-authentik

The MCP endpoint is available at http://localhost:3000 and a health check at http://localhost:3000/health.

Configuration

Claude Code CLI (recommended):

# Using npx
claude mcp add --transport stdio authentik \
  --env AUTHENTIK_URL=https://auth.example.com \
  --env AUTHENTIK_TOKEN=your-api-token \
  -- npx -y @samik081/mcp-authentik

# Using Docker
claude mcp add --transport stdio authentik \
  --env AUTHENTIK_URL=https://auth.example.com \
  --env AUTHENTIK_TOKEN=your-api-token \
  -- docker run --rm -i ghcr.io/samik081/mcp-authentik

# Using remote HTTP (connect to a running Docker container or HTTP server)
claude mcp add --transport http authentik http://localhost:3000

JSON config (works with Claude Code .mcp.json, Claude Desktop claude_desktop_config.json, Cursor .cursor/mcp.json):

{
  "mcpServers": {
    "authentik": {
      "command": "npx",
      "args": ["-y", "@samik081/mcp-authentik"],
      "env": {
        "AUTHENTIK_URL": "https://auth.example.com",
        "AUTHENTIK_TOKEN": "your-api-token"
      }
    }
  }
}

Docker (stdio):

{
  "mcpServers": {
    "authentik": {
      "command": "docker",
      "args": ["run", "--rm", "-i",
        "-e", "AUTHENTIK_URL=https://auth.example.com",
        "-e", "AUTHENTIK_TOKEN=your-api-token",
        "ghcr.io/samik081/mcp-authentik"
      ]
    }
  }
}

Remote MCP (connect to a running Docker container or HTTP server):

{
  "mcpServers": {
    "authentik": {
      "type": "streamable-http",
      "url": "http://localhost:3000"
    }
  }
}

Access Tiers

Control which tools are available using the AUTHENTIK_ACCESS_TIER environment variable:

TierToolsDescription
full (default)297Read and write -- full control
read-only144Read only -- safe for monitoring, no state changes
  • full: All 297 tools. Includes creating, updating, and deleting users, groups, applications, flows, providers, and all other resources.
  • read-only: 144 tools. Listing and viewing resources only. No state changes.

Tools that are not available in your tier are not registered with the MCP server. They will not appear in your AI tool's tool list, keeping the context clean.

Environment Variables

VariableRequiredDefaultDescription
AUTHENTIK_URLYes--Authentik instance URL (e.g., https://auth.example.com)
AUTHENTIK_TOKENYes--API token with appropriate permissions
AUTHENTIK_ACCESS_TIERNofullread-only for read-only tools only, full for all tools
AUTHENTIK_CATEGORIESNo(all)Comma-separated category allowlist (e.g., core,admin,flows)
AUTHENTIK_TOOL_BLACKLISTNo(none)Comma-separated list of tool names to exclude (e.g., authentik_users_delete)
AUTHENTIK_TOOL_WHITELISTNo(none)Comma-separated list of tool names to force-include, bypassing access tier and category filters
DEBUGNofalseEnable debug logging to stderr
MCP_TRANSPORTNostdioTransport mode: stdio (default) or http
MCP_PORTNo3000HTTP server port (only used when MCP_TRANSPORT=http)
MCP_HOSTNo0.0.0.0HTTP server bind address (only used when MCP_TRANSPORT=http)
MCP_SESSION_IDLE_TIMEOUTNo1800Seconds of inactivity after which an HTTP session is closed and its memory released (sessions with a connected SSE stream are never closed). 0 disables. Only used when MCP_TRANSPORT=http
MCP_EXCLUDE_TOOL_TITLESNofalseSet true to omit tool titles from registration (saves tokens)

Available Categories

admin, authenticators, core, crypto, endpoints, enterprise, events, flows, managed, oauth2, outposts, policies, property-mappings, providers, rac, rbac, reports, root, sources, ssf, stages, tenants

Tools

mcp-authentik provides 297 tools organized by category. Each tool's Access column shows the minimum tier required: read-only (available in both tiers) or full (requires full tier). The Hints column shows tool behavior: read-only (no state changes), destructive (modifies existing state), idempotent (same result if called twice).

ToolDescriptionAccessHints
authentik_admin_system_infoGet system information including HTTP host, runtime environment, server time, and embedded outpost statusread-onlyread-only, idempotent
authentik_admin_versionGet Authentik version information including current version and build hashread-onlyread-only, idempotent
authentik_admin_settings_getGet current system settingsread-onlyread-only, idempotent
authentik_admin_settings_updateUpdate system settings (partial update)fulldestructive, idempotent
authentik_admin_appsList installed Django applications in the Authentik instanceread-onlyread-only, idempotent
authentik_admin_modelsList all data models available in the Authentik instanceread-onlyread-only, idempotent
authentik_admin_version_historyList Authentik version history entriesread-onlyread-only, idempotent
authentik_admin_system_task_triggerTrigger all system tasks (e.g., cleanup, cache clear)full
ToolDescriptionAccessHints
authentik_authenticators_listList all authenticator devices across all types for the current userread-onlyread-only, idempotent
authentik_authenticators_admin_by_type_listList authenticator devices of a specific type (admin view)read-onlyread-only, idempotent
authentik_authenticators_admin_by_type_getGet a single authenticator device by type and ID (admin view)read-onlyread-only, idempotent
authentik_authenticators_admin_by_type_deleteDelete an authenticator device by type and ID (admin view)fulldestructive
authentik_authenticators_user_by_type_listList authenticator devices of a specific type for the current userread-onlyread-only, idempotent

Users

ToolDescriptionAccessHints
authentik_users_listList users with optional filters for username, email, name, active status, superuser status, path, groups, and searchread-onlyread-only, idempotent
authentik_users_getGet a single user by their numeric IDread-onlyread-only, idempotent
authentik_users_createCreate a new userfull
authentik_users_updateUpdate an existing user (partial update)fulldestructive, idempotent
authentik_users_deleteDelete a user by their numeric IDfulldestructive
authentik_users_meGet information about the currently authenticated userread-onlyread-only, idempotent
authentik_users_set_passwordSet a new password for a userfulldestructive, idempotent
authentik_users_create_service_accountCreate a new service account user with an optional associated group and tokenfull
authentik_users_generate_recovery_linkGenerate a temporary recovery link for a user to regain account accessfull
authentik_users_send_recovery_emailSend a recovery email to a user using a specified email stagefull
authentik_users_list_pathsList all user paths configured in the systemread-onlyread-only, idempotent
authentik_users_account_lockdownLock down a user account, deactivating it and terminating its active sessionsfulldestructive
authentik_users_exportTrigger an export of users with optional filters, producing a downloadable export artifactfull

Groups

ToolDescriptionAccessHints
authentik_groups_listList groups with optional filters for name, superuser status, members, and searchread-onlyread-only, idempotent
authentik_groups_getGet a single group by its UUIDread-onlyread-only, idempotent
authentik_groups_createCreate a new group with optional parent group UUIDs, superuser status, users, and custom attributesfull
authentik_groups_updateUpdate an existing group (partial update)fulldestructive, idempotent
authentik_groups_deleteDelete a group by its UUIDfulldestructive
authentik_groups_add_userAdd a user to a group by group UUID and user IDfullidempotent
authentik_groups_remove_userRemove a user from a group by group UUID and user IDfulldestructive

Applications

ToolDescriptionAccessHints
authentik_apps_listList applications with optional filters for name, slug, group, search, and moreread-onlyread-only, idempotent
authentik_apps_getGet a single application by its slugread-onlyread-only, idempotent
authentik_apps_createCreate a new application with name, slug, and optional provider, group, and metadatafull
authentik_apps_updateUpdate an existing application (partial update)fulldestructive, idempotent
authentik_apps_set_icon_urlSet an application's icon to an external URL (sets the meta_icon field), or clear the current icon with clear: truefulldestructive, idempotent
authentik_apps_deleteDelete an application by its slugfulldestructive
authentik_apps_check_accessCheck whether a specific user has access to an applicationread-onlyread-only, idempotent
authentik_apps_update_transactionalCreate or update an application and its provider in a single atomic transactionfulldestructive, idempotent
authentik_app_entitlements_listList application entitlements with optional filtersread-onlyread-only, idempotent
authentik_app_entitlements_getGet a single application entitlement by its UUIDread-onlyread-only, idempotent
authentik_app_entitlements_createCreate a new application entitlementfull
authentik_app_entitlements_updateUpdate an existing application entitlement (partial update)fulldestructive, idempotent
authentik_app_entitlements_deleteDelete an application entitlement by its UUIDfulldestructive

Tokens

ToolDescriptionAccessHints
authentik_tokens_listList tokens with optional filters for identifier, intent, managed status, and searchread-onlyread-only, idempotent
authentik_tokens_getGet a single token by its identifierread-onlyread-only, idempotent
authentik_tokens_createCreate a new token with an identifier, optional intent, description, and expiration settingsfull
authentik_tokens_updateUpdate an existing token (partial update)fulldestructive, idempotent
authentik_tokens_deleteDelete a token by its identifierfulldestructive
authentik_tokens_view_keyView the raw key value of a token (privileged, logged)fullread-only, idempotent
authentik_tokens_set_keySet a custom key value for a tokenfulldestructive, idempotent

Brands

ToolDescriptionAccessHints
authentik_brands_listList brands with optional filters for UUID, domain, and searchread-onlyread-only, idempotent
authentik_brands_getGet a single brand by its UUIDread-onlyread-only, idempotent
authentik_brands_createCreate a new brand with domain, branding settings, flow assignments, and optional attributesfull
authentik_brands_updateUpdate an existing brand (partial update)fulldestructive, idempotent
authentik_brands_deleteDelete a brand by its UUIDfulldestructive
authentik_brands_currentGet the brand configuration for the current domainread-onlyread-only, idempotent
ToolDescriptionAccessHints
authentik_crypto_listList certificate keypairs with optional filtersread-onlyread-only, idempotent
authentik_crypto_getGet a single certificate keypair by its UUIDread-onlyread-only, idempotent
authentik_crypto_createCreate a new certificate keypair from PEM-encoded certificate and optional private key datafull
authentik_crypto_updateUpdate an existing certificate keypair (partial update)fulldestructive, idempotent
authentik_crypto_deleteDelete a certificate keypair by its UUIDfulldestructive
authentik_crypto_generateGenerate a new self-signed certificate keypair (RSA, ECDSA, ED25519, or ED448)full
authentik_crypto_view_certificateView the PEM-encoded certificate data for a keypairread-onlyread-only, idempotent
authentik_crypto_view_private_keyView the PEM-encoded private key data for a keypair (sensitive)fullread-only, idempotent

Enterprise device and endpoint management: managed devices, device access groups, device-to-policy bindings, and connectors for agents, enrollment, Fleet, Google Chrome, and Apple ISE-PSSO.

Devices

ToolDescriptionAccessHints
authentik_endpoints_devices_listList managed endpoint devices with optional filtering by name or identifier, search, and orderingread-onlyread-only, idempotent
authentik_endpoints_devices_getRetrieve a single endpoint device by its UUIDread-onlyread-only, idempotent
authentik_endpoints_devices_summaryRetrieve aggregate summary statistics about managed endpoint devicesread-onlyread-only, idempotent
authentik_endpoints_devices_updateUpdate an endpoint device (partial update)fulldestructive, idempotent
authentik_endpoints_devices_deleteDelete an endpoint device by its UUID (irreversible)fulldestructive

Device Access Groups

ToolDescriptionAccessHints
authentik_endpoints_device_access_groups_listList device access groups with optional filtering by name, search, and orderingread-onlyread-only, idempotent
authentik_endpoints_device_access_groups_getRetrieve a single device access group by its UUIDread-onlyread-only, idempotent
authentik_endpoints_device_access_groups_createCreate a new device access group (bundles devices for policy targeting)full
authentik_endpoints_device_access_groups_updateUpdate a device access group (partial update)fulldestructive, idempotent
authentik_endpoints_device_access_groups_deleteDelete a device access group by its UUID (irreversible)fulldestructive

Device Bindings

ToolDescriptionAccessHints
authentik_endpoints_device_bindings_listList device-to-user policy bindings with optional filteringread-onlyread-only, idempotent
authentik_endpoints_device_bindings_getRetrieve a single device binding by its UUIDread-onlyread-only, idempotent
authentik_endpoints_device_bindings_createCreate a new device binding linking a policy, group, or user to a target with an evaluation orderfull
authentik_endpoints_device_bindings_updateUpdate a device binding (partial update)fulldestructive, idempotent
authentik_endpoints_device_bindings_deleteDelete a device binding by its UUID (irreversible)fulldestructive

Agent Connectors

ToolDescriptionAccessHints
authentik_endpoints_agent_connectors_listList endpoint agent connectors with optional filteringread-onlyread-only, idempotent
authentik_endpoints_agent_connectors_getRetrieve a single agent connector by its UUIDread-onlyread-only, idempotent
authentik_endpoints_agent_connectors_createCreate a new endpoint agent connectorfull
authentik_endpoints_agent_connectors_updateUpdate an agent connector (partial update)fulldestructive, idempotent
authentik_endpoints_agent_connectors_deleteDelete an agent connector by its UUID (irreversible)fulldestructive

Enrollment Tokens

ToolDescriptionAccessHints
authentik_endpoints_enrollment_tokens_listList agent enrollment tokens with optional filteringread-onlyread-only, idempotent
authentik_endpoints_enrollment_tokens_getRetrieve a single enrollment token by its UUIDread-onlyread-only, idempotent
authentik_endpoints_enrollment_tokens_createCreate a new agent enrollment token bound to a connector (used to enroll devices)full
authentik_endpoints_enrollment_tokens_updateUpdate an enrollment token (partial update)fulldestructive, idempotent
authentik_endpoints_enrollment_tokens_deleteDelete an enrollment token by its UUID (irreversible)fulldestructive

Fleet Connectors

ToolDescriptionAccessHints
authentik_endpoints_fleet_connectors_listList Fleet device-management connectors with optional filteringread-onlyread-only, idempotent
authentik_endpoints_fleet_connectors_getRetrieve a single Fleet connector by its UUIDread-onlyread-only, idempotent
authentik_endpoints_fleet_connectors_createCreate a new Fleet connector pointing at a Fleet device-management instancefull
authentik_endpoints_fleet_connectors_updateUpdate a Fleet connector (partial update)fulldestructive, idempotent
authentik_endpoints_fleet_connectors_deleteDelete a Fleet connector by its UUID (irreversible)fulldestructive

Google Chrome Connectors

ToolDescriptionAccessHints
authentik_endpoints_google_chrome_connectors_listList Google Chrome device-management connectors with optional filteringread-onlyread-only, idempotent
authentik_endpoints_google_chrome_connectors_getRetrieve a single Google Chrome connector by its UUIDread-onlyread-only, idempotent
authentik_endpoints_google_chrome_connectors_createCreate a new Google Chrome connector with service-account credentialsfull
authentik_endpoints_google_chrome_connectors_updateUpdate a Google Chrome connector (partial update)fulldestructive, idempotent
authentik_endpoints_google_chrome_connectors_deleteDelete a Google Chrome connector by its UUID (irreversible)fulldestructive

ISE-PSSO Agents

ToolDescriptionAccessHints
authentik_endpoints_psso_ise_listList Apple Independent Secure Enclave (ISE-PSSO) agents with optional filteringread-onlyread-only, idempotent
authentik_endpoints_psso_ise_getRetrieve a single ISE-PSSO agent by its UUIDread-onlyread-only, idempotent
authentik_endpoints_psso_ise_deleteDelete an ISE-PSSO agent by its UUID (irreversible)fulldestructive

Connectors (generic registry)

ToolDescriptionAccessHints
authentik_endpoints_connectors_listList all endpoint connectors across types (generic registry view)read-onlyread-only, idempotent
authentik_endpoints_connectors_getRetrieve a single endpoint connector by its UUID from the generic registryread-onlyread-only, idempotent
authentik_endpoints_connectors_deleteDelete an endpoint connector by its UUID from the generic registry (irreversible)fulldestructive
ToolDescriptionAccessHints
authentik_enterprise_license_listList enterprise licenses with optional filtersread-onlyread-only, idempotent
authentik_enterprise_license_getGet a single enterprise license by its UUIDread-onlyread-only, idempotent
authentik_enterprise_license_createInstall a new enterprise license keyfull
authentik_enterprise_license_updateUpdate an existing enterprise license (partial update)fulldestructive, idempotent
authentik_enterprise_license_deleteDelete an enterprise license by its UUIDfulldestructive
authentik_enterprise_license_summaryGet the total enterprise license status summaryread-onlyread-only, idempotent
authentik_enterprise_license_forecastForecast how many users will be required in a year based on current growthread-onlyread-only, idempotent
authentik_enterprise_install_idGet the authentik installation ID (used for license generation)read-onlyread-only, idempotent

Events

Shortened here. Read the whole README on GitHub.

Signals

GitHub stars
10
Forks
1
Last commit
Sep 2026
Advanced
Delivery
mcp-authentik MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
Catalog kind
mcp-server
Gateway key
io-github-samik081-mcp-authentik
Source
github.com/samik081/mcp-authentik