Authentik MCP Server

平台与服务

by samik081

让 AI assistants 管理 Authentik,支持身份认证相关配置、查询与运维操作。

什么是 Authentik MCP Server

让 AI assistants 管理 Authentik,支持身份认证相关配置、查询与运维操作。

README

npm version Docker image License: MIT Node.js Version

MCP Authentik

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

  • 245 tools across 20 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 2025.6.3.

Quick Start

Run the server directly with npx:

bash
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):

bash
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:

bash
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):

bash
# 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):

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

Docker (stdio):

json
{
  "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):

json
{
  "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)245Read and write -- full control
read-only121Read only -- safe for monitoring, no state changes
  • full: All 245 tools. Includes creating, updating, and deleting users, groups, applications, flows, providers, and all other resources.
  • read-only: 121 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_EXCLUDE_TOOL_TITLESNofalseSet true to omit tool titles from registration (saves tokens)

Available Categories

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

Tools

mcp-authentik provides 245 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).

<details> <summary>Admin (8 tools)</summary>
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
</details> <details> <summary>Authenticators (5 tools)</summary>
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
</details> <details> <summary>Core (44 tools)</summary>

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

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, 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 icon from a URL, or clear itfulldestructive, 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
</details> <details> <summary>Crypto (8 tools)</summary>
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 keypairfull
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
</details> <details> <summary>Enterprise (8 tools)</summary>
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
</details> <details> <summary>Events (24 tools)</summary>

Events

ToolDescriptionAccessHints
authentik_events_listList audit events with optional filters for action, username, client IP, and moreread-onlyread-only, idempotent
authentik_events_getGet a single audit event by its UUIDread-onlyread-only, idempotent
authentik_events_createCreate a new audit eventfull
authentik_events_actions_listList all available event action typesread-onlyread-only, idempotent
authentik_events_top_per_userGet the top N events grouped by user countread-onlyread-only, idempotent
authentik_events_volumeGet event volume data for specified filters and timeframeread-onlyread-only, idempotent
authentik_events_rules_listList notification rules with optional filtersread-onlyread-only, idempotent
authentik_events_rules_getGet a single notification rule by its UUIDread-onlyread-only, idempotent
authentik_events_rules_createCreate a new notification rulefull
authentik_events_rules_updateUpdate an existing notification rule (partial update)fulldestructive, idempotent
authentik_events_rules_deleteDelete a notification rule by its UUIDfulldestructive
authentik_events_transports_listList notification transports with optional filtersread-onlyread-only, idempotent
authentik_events_transports_getGet a single notification transport by its UUIDread-onlyread-only, idempotent
authentik_events_transports_createCreate a new notification transportfull
authentik_events_transports_updateUpdate an existing notification transport (partial update)fulldestructive, idempotent
authentik_events_transports_deleteDelete a notification transport by its UUIDfulldestructive
authentik_events_transports_testSend a test notification using the specified transportfull
authentik_events_notifications_listList notifications for the current user with optional filtersread-onlyread-only, idempotent
authentik_events_notifications_updateUpdate a notification, typically to mark it as seen or unseenfulldestructive, idempotent
authentik_events_notifications_deleteDelete a notification by its UUIDfulldestructive
authentik_events_notifications_mark_all_seenMark all notifications as seen for the current userfulldestructive, idempotent

System Tasks

ToolDescriptionAccessHints
authentik_tasks_listList system tasks with optional filters by name, status, or UIDread-onlyread-only, idempotent
authentik_tasks_getGet details of a specific system task by UUIDread-onlyread-only, idempotent
authentik_tasks_retryRetry a failed system task by UUIDfull
</details> <details> <summary>Flows (15 tools)</summary>
ToolDescriptionAccessHints
authentik_flows_listList flows with optional filters for search, designation, and orderingread-onlyread-only, idempotent
authentik_flows_getGet a single flow by its slugread-onlyread-only, idempotent
authentik_flows_createCreate a new flow with name, slug, title, and designationfull
authentik_flows_updateUpdate an existing flow (partial update)fulldestructive, idempotent
authentik_flows_deleteDelete a flow by its slugfulldestructive
authentik_flows_diagramGet a visual diagram of a flow showing its stages and bindingsread-onlyread-only, idempotent
authentik_flows_exportExport a flow as YAMLread-onlyread-only, idempotent
authentik_flows_importImport a flow from YAML contentfull
authentik_flows_cache_infoGet information about cached flowsread-onlyread-only, idempotent
authentik_flows_cache_clearClear the flow cachefulldestructive, idempotent
authentik_flows_bindings_listList flow stage bindings with optional filtersread-onlyread-only, idempotent
authentik_flows_bindings_getGet a single flow stage binding by its UUIDread-onlyread-only, idempotent
authentik_flows_bindings_createCreate a new flow stage binding to attach a stage to a flowfull
authentik_flows_bindings_updateUpdate an existing flow stage bindingfulldestructive, idempotent
authentik_flows_bindings_deleteDelete a flow stage binding by its UUIDfulldestructive
</details> <details> <summary>Managed (7 tools)</summary>
ToolDescriptionAccessHints
authentik_blueprints_listList managed blueprint instances with optional filtersread-onlyread-only, idempotent
authentik_blueprints_getGet a single blueprint instance by its UUIDread-onlyread-only, idempotent
authentik_blueprints_createCreate a new managed blueprint instancefull
authentik_blueprints_updateUpdate an existing blueprint instance (partial update)fulldestructive, idempotent
authentik_blueprints_deleteDelete a blueprint instance by its UUIDfulldestructive
authentik_blueprints_availableList all available blueprint files that can be used to create blueprint instancesread-onlyread-only, idempotent
authentik_blueprints_applyApply a blueprint instance, executing its configurationfulldestructive, idempotent
</details> <details> <summary>OAuth2 (9 tools)</summary>
ToolDescriptionAccessHints
authentik_oauth2_access_tokens_listList OAuth2 access tokens with optional filtersread-onlyread-only, idempotent
authentik_oauth2_access_tokens_getGet a single OAuth2 access token by its numeric IDread-onlyread-only, idempotent
authentik_oauth2_access_tokens_deleteDelete (revoke) an OAuth2 access token by its IDfulldestructive
authentik_oauth2_auth_codes_listList OAuth2 authorization codes with optional filtersread-onlyread-only, idempotent
authentik_oauth2_auth_codes_getGet a single OAuth2 authorization code by its numeric IDread-onlyread-only, idempotent
authentik_oauth2_auth_codes_deleteDelete an OAuth2 authorization code by its IDfulldestructive
authentik_oauth2_refresh_tokens_listList OAuth2 refresh tokens with optional filtersread-onlyread-only, idempotent
authentik_oauth2_refresh_tokens_getGet a single OAuth2 refresh token by its numeric IDread-onlyread-only, idempotent
authentik_oauth2_refresh_tokens_deleteDelete (revoke) an OAuth2 refresh token by its IDfulldestructive
</details> <details> <summary>Outposts (15 tools)</summary>
ToolDescriptionAccessHints
authentik_outposts_listList outpost instances with optional filtersread-onlyread-only, idempotent
authentik_outposts_getGet a single outpost instance by its UUIDread-onlyread-only, idempotent
authentik_outposts_createCreate a new outpost instancefull
authentik_outposts_updateUpdate an existing outpost instance (partial update)fulldestructive, idempotent
authentik_outposts_deleteDelete an outpost instance by its UUIDfulldestructive
authentik_outposts_healthGet the current health status of an outpostread-onlyread-only, idempotent
authentik_outposts_default_settingsGet the global default outpost configurationread-onlyread-only, idempotent
authentik_outposts_service_connections_listList all service connections (Docker and Kubernetes) with optional filtersread-onlyread-only, idempotent
authentik_outposts_service_connections_stateGet the current state of a service connectionread-onlyread-only, idempotent
authentik_outposts_service_connections_typesList all available service connection typesread-onlyread-only, idempotent
authentik_outposts_docker_createCreate a new Docker service connectionfull
authentik_outposts_docker_updateUpdate an existing Docker service connection (partial update)fulldestructive, idempotent
authentik_outposts_kubernetes_createCreate a new Kubernetes service connectionfull
authentik_outposts_kubernetes_updateUpdate an existing Kubernetes service connection (partial update)fulldestructive, idempotent
authentik_outposts_service_connections_deleteDelete a service connection by its UUIDfulldestructive
</details> <details> <summary>Policies (19 tools)</summary>

Policies use a type+config pattern. Cross-type tools operate on any policy, while per-type tools accept a policy_type parameter. Available types: dummy, event_matcher, expression, geoip, password, password_expiry, reputation, unique_password.

ToolDescriptionAccessHints
authentik_policies_listList all policies across all types with optional filtersread-onlyread-only, idempotent
authentik_policies_getGet a single policy by its UUID (cross-type)read-onlyread-only, idempotent
authentik_policies_deleteDelete a policy by its UUID (cross-type)fulldestructive
authentik_policies_types_listList all available policy typesread-onlyread-only, idempotent
authentik_policies_testTest a policy against a specific user to see if it passes or failsread-onlyread-only, idempotent
authentik_policies_cache_infoGet information about cached policiesread-onlyread-only, idempotent
authentik_policies_cache_clearClear the policy cachefulldestructive, idempotent
authentik_policies_by_type_listList policies of a specific type with optional filtersread-onlyread-only, idempotent
authentik_policies_by_type_getGet a single policy of a specific type by its UUIDread-onlyread-only, idempotent
authentik_policies_by_type_createCreate a new policy of a specific typefull
authentik_policies_by_type_updateUpdate an existing policy of a specific typefulldestructive, idempotent
authentik_policies_by_type_deleteDelete a policy of a specific type by its UUIDfulldestructive
authentik_policy_bindings_listList policy bindings with optional filtersread-onlyread-only, idempotent
authentik_policy_bindings_getGet a single policy binding by its UUIDread-onlyread-only, idempotent
authentik_policy_bindings_createCreate a new policy binding to attach a policy to a targetfull
authentik_policy_bindings_updateUpdate an existing policy bindingfulldestructive, idempotent
authentik_policy_bindings_deleteDelete a policy binding by its UUIDfulldestructive
authentik_reputation_scores_listList reputation scores with optional filtersread-onlyread-only, idempotent
authentik_reputation_scores_deleteDelete a reputation score by its UUIDfulldestructive
</details> <details> <summary>Property Mappings (10 tools)</summary>

Property mappings use a type+config pattern. Cross-type tools operate on any mapping, while per-type tools accept a mapping_type parameter. Available types: notification, provider_google_workspace, provider_microsoft_entra, provider_rac, provider_radius, provider_saml, provider_scim, provider_scope, source_kerberos, source_ldap, source_oauth, source_plex, source_saml, source_scim.

ToolDescriptionAccessHints
authentik_property_mappings_listList all property mappings across all typesread-onlyread-only, idempotent
authentik_property_mappings_getGet a single property mapping by its UUID (cross-type)read-onlyread-only, idempotent
authentik_property_mappings_deleteDelete a property mapping by its UUIDfulldestructive
authentik_property_mappings_types_listList all available property mapping typesread-onlyread-only, idempotent
authentik_property_mappings_testTest a property mapping by UUIDfullread-only, idempotent
authentik_property_mappings_by_type_listList property mappings of a specific typeread-onlyread-only, idempotent
authentik_property_mappings_by_type_getGet a single property mapping by type and UUIDread-onlyread-only, idempotent
authentik_property_mappings_by_type_createCreate a new property mapping of a specific typefull
authentik_property_mappings_by_type_updateUpdate an existing property mapping by type and UUIDfulldestructive, idempotent
authentik_property_mappings_by_type_deleteDelete a property mapping by type and UUIDfulldestructive
</details> <details> <summary>Providers (11 tools)</summary>

Providers use a type+config pattern. Cross-type tools operate on any provider, while per-type tools accept a provider_type parameter. Available types: oauth2, saml, ldap, proxy, radius, scim, rac, google_workspace, microsoft_entra.

ToolDescriptionAccessHints
authentik_providers_listList all providers across all types with optional filtersread-onlyread-only, idempotent
authentik_providers_getGet a single provider by its numeric ID (cross-type)read-onlyread-only, idempotent
authentik_providers_deleteDelete a provider by its numeric ID (cross-type)fulldestructive
authentik_providers_types_listList all available provider typesread-onlyread-only, idempotent
authentik_providers_by_type_listList providers of a specific type with optional filtersread-onlyread-only, idempotent
authentik_providers_by_type_getGet a single provider of a specific type by its numeric IDread-onlyread-only, idempotent
authentik_providers_by_type_createCreate a new provider of a specific typefull
authentik_providers_by_type_updateUpdate an existing provider of a specific typefulldestructive, idempotent
authentik_providers_by_type_deleteDelete a provider of a specific type by its numeric IDfulldestructive
authentik_providers_oauth2_setup_urlsGet OAuth2 provider setup URLs (authorize, token, userinfo, etc.)read-onlyread-only, idempotent
authentik_providers_saml_metadataGet SAML provider metadata XMLread-onlyread-only, idempotent
</details> <details> <summary>RAC (8 tools)</summary>
ToolDescriptionAccessHints
authentik_rac_endpoints_listList RAC (Remote Access Control) endpoints with optional filtersread-onlyread-only, idempotent
authentik_rac_endpoints_getGet a single RAC endpoint by its UUIDread-onlyread-only, idempotent
authentik_rac_endpoints_createCreate a new RAC endpoint for remote accessfull
authentik_rac_endpoints_updateUpdate an existing RAC endpoint (partial update)fulldestructive, idempotent
authentik_rac_endpoints_deleteDelete a RAC endpoint by its UUIDfulldestructive
authentik_rac_connection_tokens_listList RAC connection tokens with optional filters (system-managed, no create)read-onlyread-only, idempotent
authentik_rac_connection_tokens_getGet a single RAC connection token by its UUIDread-onlyread-only, idempotent
authentik_rac_connection_tokens_deleteDelete a RAC connection token by its UUIDfulldestructive
</details> <details> <summary>RBAC (12 tools)</summary>
ToolDescriptionAccessHints
authentik_rbac_roles_listList RBAC roles with optional filtersread-onlyread-only, idempotent
authentik_rbac_roles_getGet a single RBAC role by its UUIDread-onlyread-only, idempotent
authentik_rbac_roles_createCreate a new RBAC rolefull
authentik_rbac_roles_updateUpdate an existing RBAC role (partial update)fulldestructive, idempotent
authentik_rbac_roles_deleteDelete an RBAC role by its UUIDfulldestructive
authentik_rbac_permissions_listList all available permissions, filterable by model and appread-onlyread-only, idempotent
authentik_rbac_permissions_by_role_listList object permissions assigned to a specific model, filterable by roleread-onlyread-only, idempotent
authentik_rbac_permissions_by_role_assignAssign permission(s) to a rolefullidempotent
authentik_rbac_permissions_by_role_unassignUnassign permission(s) from a rolefulldestructive
authentik_rbac_permissions_by_user_listList object permissions assigned to a specific model, filterable by userread-onlyread-only, idempotent
authentik_rbac_permissions_by_user_assignAssign permission(s) to a userfullidempotent
authentik_rbac_permissions_by_user_unassignUnassign permission(s) from a userfulldestructive
</details> <details> <summary>Root (1 tool)</summary>
ToolDescriptionAccessHints
authentik_root_configGet root configuration including capabilities, error reporting settings, and UI configurationread-onlyread-only, idempotent
</details> <details> <summary>Sources (10 tools)</summary>

Sources use a type+config pattern. Cross-type tools operate on any source, while per-type tools accept a source_type parameter. Available types: oauth, saml, ldap, plex, kerberos, scim.

ToolDescriptionAccessHints
authentik_sources_listList all sources across all types (OAuth, SAML, LDAP, Plex, Kerberos, SCIM)read-onlyread-only, idempotent
authentik_sources_getGet a single source by its slug (cross-type)read-onlyread-only, idempotent
authentik_sources_deleteDelete a source by its slugfulldestructive
authentik_sources_types_listList all available source typesread-onlyread-only, idempotent
authentik_sources_by_type_listList sources of a specific typeread-onlyread-only, idempotent
authentik_sources_by_type_getGet a single source by type and slugread-onlyread-only, idempotent
authentik_sources_by_type_createCreate a new source of a specific typefull
authentik_sources_by_type_updateUpdate an existing source by type and slugfulldestructive, idempotent
authentik_sources_by_type_deleteDelete a source by type and slugfulldestructive
authentik_sources_user_connections_listList user-source connections across all source typesread-onlyread-only, idempotent
</details> <details> <summary>SSF (2 tools)</summary>
ToolDescriptionAccessHints
authentik_ssf_streams_listList Shared Signals Framework (SSF) event streams with optional filtersread-onlyread-only, idempotent
authentik_ssf_streams_getGet a single SSF event stream by its UUIDread-onlyread-only, idempotent
</details> <details> <summary>Stages (19 tools)</summary>

Stages use a type+config pattern. Cross-type tools operate on any stage, while per-type tools accept a stage_type parameter. Available types: authenticator_duo, authenticator_email, authenticator_endpoint_gdtc, authenticator_sms, authenticator_static, authenticator_totp, authenticator_validate, authenticator_webauthn, captcha, consent, deny, dummy, email, identification, invitation, mtls, password, prompt, redirect, source, user_delete, user_login, user_logout, user_write.

ToolDescriptionAccessHints
authentik_stages_listList all stages across all types with optional filtersread-onlyread-only, idempotent
authentik_stages_getGet a single stage by its UUID (cross-type)read-onlyread-only, idempotent
authentik_stages_deleteDelete a stage by its UUID (cross-type)fulldestructive
authentik_stages_types_listList all available stage typesread-onlyread-only, idempotent
authentik_stages_by_type_listList stages of a specific type with optional filtersread-onlyread-only, idempotent
authentik_stages_by_type_getGet a single stage of a specific type by its UUIDread-onlyread-only, idempotent
authentik_stages_by_type_createCreate a new stage of a specific typefull
authentik_stages_by_type_updateUpdate an existing stage of a specific typefulldestructive, idempotent
authentik_stages_by_type_deleteDelete a stage of a specific type by its UUIDfulldestructive
authentik_invitations_listList invitations with optional filtersread-onlyread-only, idempotent
authentik_invitations_getGet a single invitation by its UUIDread-onlyread-only, idempotent
authentik_invitations_createCreate a new invitationfull
authentik_invitations_updateUpdate an existing invitationfulldestructive, idempotent
authentik_invitations_deleteDelete an invitation by its UUIDfulldestructive
authentik_prompts_listList prompt field definitions with optional filtersread-onlyread-only, idempotent
authentik_prompts_getGet a single prompt field definition by its UUIDread-onlyread-only, idempotent
authentik_prompts_createCreate a new prompt field definitionfull
authentik_prompts_updateUpdate an existing prompt field definitionfulldestructive, idempotent
authentik_prompts_deleteDelete a prompt field definition by its UUIDfulldestructive
</details> <details> <summary>Tenants (10 tools)</summary>
ToolDescriptionAccessHints
authentik_tenants_listList tenants with optional filtersread-onlyread-only, idempotent
authentik_tenants_getGet a single tenant by its UUIDread-onlyread-only, idempotent
authentik_tenants_createCreate a new tenantfull
authentik_tenants_updateUpdate an existing tenant (partial update)fulldestructive, idempotent
authentik_tenants_deleteDelete a tenant by its UUID (irreversible, removes all tenant data)fulldestructive
authentik_tenants_create_admin_groupCreate an admin group for a tenant and add a user to itfull
authentik_tenants_create_recovery_keyCreate a recovery key for a user in a tenantfull
authentik_tenants_domains_listList tenant domains with optional filtersread-onlyread-only, idempotent
authentik_tenants_domains_createCreate a new domain for a tenantfull
authentik_tenants_domains_deleteDelete a tenant domain by its numeric IDfulldestructive
</details>

Known Limitations

The following enterprise endpoint features are not available in the @goauthentik/api SDK:

  • ENDP-01: Agent connectors CRUD
  • ENDP-02: Enrollment tokens CRUD
  • ENDP-03: Enrollment key viewing
  • ENDP-06: Device access groups CRUD
  • ENDP-07: Fleet connectors CRUD
  • ENDP-08: Connector types list

These enterprise endpoint features require SDK support that is not yet available.

Verify It Works

After configuring your MCP client, ask your AI assistant:

"What version of Authentik is running?"

If the connection is working, the assistant will call authentik_admin_version and return your server version and build hash.

Usage Examples

  • "List all users in the admin group" -- calls authentik_users_list and authentik_groups_list to find and display admin group members.
  • "What applications are configured?" -- calls authentik_apps_list to show all applications with their providers and groups.
  • "Create a new user for john.doe@example.com" -- calls authentik_users_create to set up the new user account.

Troubleshooting

Connection errors

  • Verify AUTHENTIK_URL is reachable from the machine running the MCP server
  • Ensure there is no trailing slash on the URL (use https://auth.example.com not https://auth.example.com/)
  • Verify HTTPS is configured correctly if your instance uses TLS

Token permissions

  • The API token must have sufficient permissions for the tools you intend to use
  • Tools with full access tier will fail if your token only has read permissions -- set AUTHENTIK_ACCESS_TIER=read-only to limit exposure
  • Create tokens in the Authentik admin interface under Directory > Tokens and App passwords

Category filtering

  • Use AUTHENTIK_CATEGORIES with the actual category values listed above (e.g., core,admin,flows), not source file names
  • Users, groups, applications, tokens, and brands are all under the core category, not separate categories
  • Use comma-separated values with no spaces (e.g., core,admin,events)

Development

bash
# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode (auto-reload)
npm run dev

# Open the MCP Inspector for interactive testing
npm run inspect

License

MIT

常见问题

Authentik MCP Server 是什么?

让 AI assistants 管理 Authentik,支持身份认证相关配置、查询与运维操作。

相关 Skills

MCP构建

by anthropics

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描114.1k

Slack动图

by anthropics

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描114.1k

MCP服务构建器

by alirezarezvani

Universal
热门

从 OpenAPI 一键生成 Python/TypeScript MCP server 脚手架,并校验 tool schema、命名规范与版本兼容性,适合把现有 REST API 快速发布成可生产演进的 MCP 服务。

帮你快速搭建 MCP 服务与后端 API,脚手架完善、扩展顺手,尤其适合想高效验证服务能力的开发者。

平台与服务
未扫描10.2k

相关 MCP Server

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
83.4k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
78.4k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
35.4k

评论