MCP Hub
Back to servers

Authentik MCP Server

Requires Setup

Manage Authentik through AI assistants

Registry
Stars
1
Updated
Mar 9, 2026
Validated
Mar 22, 2026

Quick Install

npx -y @samik081/mcp-authentik

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.

Disclaimer: Most of this code has been AI-generated and has not been fully tested yet. I created this project for my own needs and plan to continue improving its quality, but it may be buggy in the early stages. If you find a bug, feel free to open an issue -- I'll try to work on it in my spare time.

Features

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

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

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

Users

ToolDescriptionAccess
authentik_users_listList users with optional filters for username, email, name, active status, superuser status, path, groups, and searchread-only
authentik_users_getGet a single user by their numeric IDread-only
authentik_users_createCreate a new userfull
authentik_users_updateUpdate an existing user (partial update)full
authentik_users_deleteDelete a user by their numeric IDfull
authentik_users_meGet information about the currently authenticated userread-only
authentik_users_set_passwordSet a new password for a userfull
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-only

Groups

ToolDescriptionAccess
authentik_groups_listList groups with optional filters for name, superuser status, members, and searchread-only
authentik_groups_getGet a single group by its UUIDread-only
authentik_groups_createCreate a new group with optional parent, superuser status, users, and custom attributesfull
authentik_groups_updateUpdate an existing group (partial update)full
authentik_groups_deleteDelete a group by its UUIDfull
authentik_groups_add_userAdd a user to a group by group UUID and user IDfull
authentik_groups_remove_userRemove a user from a group by group UUID and user IDfull

Applications

ToolDescriptionAccess
authentik_apps_listList applications with optional filters for name, slug, group, search, and moreread-only
authentik_apps_getGet a single application by its slugread-only
authentik_apps_createCreate a new application with name, slug, and optional provider, group, and metadatafull
authentik_apps_updateUpdate an existing application (partial update)full
authentik_apps_set_icon_urlSet an application icon from a URL, or clear itfull
authentik_apps_deleteDelete an application by its slugfull
authentik_apps_check_accessCheck whether a specific user has access to an applicationread-only
authentik_apps_update_transactionalCreate or update an application and its provider in a single atomic transactionfull
authentik_app_entitlements_listList application entitlements with optional filtersread-only
authentik_app_entitlements_getGet a single application entitlement by its UUIDread-only
authentik_app_entitlements_createCreate a new application entitlementfull
authentik_app_entitlements_updateUpdate an existing application entitlement (partial update)full
authentik_app_entitlements_deleteDelete an application entitlement by its UUIDfull

Tokens

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

Brands

ToolDescriptionAccess
authentik_brands_listList brands with optional filters for UUID, domain, and searchread-only
authentik_brands_getGet a single brand by its UUIDread-only
authentik_brands_createCreate a new brand with domain, branding settings, flow assignments, and optional attributesfull
authentik_brands_updateUpdate an existing brand (partial update)full
authentik_brands_deleteDelete a brand by its UUIDfull
authentik_brands_currentGet the brand configuration for the current domainread-only
Crypto (8 tools)
ToolDescriptionAccess
authentik_crypto_listList certificate keypairs with optional filtersread-only
authentik_crypto_getGet a single certificate keypair by its UUIDread-only
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)full
authentik_crypto_deleteDelete a certificate keypair by its UUIDfull
authentik_crypto_generateGenerate a new self-signed certificate keypairfull
authentik_crypto_view_certificateView the PEM-encoded certificate data for a keypairread-only
authentik_crypto_view_private_keyView the PEM-encoded private key data for a keypair (sensitive)full
Enterprise (8 tools)
ToolDescriptionAccess
authentik_enterprise_license_listList enterprise licenses with optional filtersread-only
authentik_enterprise_license_getGet a single enterprise license by its UUIDread-only
authentik_enterprise_license_createInstall a new enterprise license keyfull
authentik_enterprise_license_updateUpdate an existing enterprise license (partial update)full
authentik_enterprise_license_deleteDelete an enterprise license by its UUIDfull
authentik_enterprise_license_summaryGet the total enterprise license status summaryread-only
authentik_enterprise_license_forecastForecast how many users will be required in a year based on current growthread-only
authentik_enterprise_install_idGet the authentik installation ID (used for license generation)read-only
Events (24 tools)

Events

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

System Tasks

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

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.

ToolDescriptionAccess
authentik_policies_listList all policies across all types with optional filtersread-only
authentik_policies_getGet a single policy by its UUID (cross-type)read-only
authentik_policies_deleteDelete a policy by its UUID (cross-type)full
authentik_policies_types_listList all available policy typesread-only
authentik_policies_testTest a policy against a specific user to see if it passes or failsread-only
authentik_policies_cache_infoGet information about cached policiesread-only
authentik_policies_cache_clearClear the policy cachefull
authentik_policies_by_type_listList policies of a specific type with optional filtersread-only
authentik_policies_by_type_getGet a single policy of a specific type by its UUIDread-only
authentik_policies_by_type_createCreate a new policy of a specific typefull
authentik_policies_by_type_updateUpdate an existing policy of a specific typefull
authentik_policies_by_type_deleteDelete a policy of a specific type by its UUIDfull
authentik_policy_bindings_listList policy bindings with optional filtersread-only
authentik_policy_bindings_getGet a single policy binding by its UUIDread-only
authentik_policy_bindings_createCreate a new policy binding to attach a policy to a targetfull
authentik_policy_bindings_updateUpdate an existing policy bindingfull
authentik_policy_bindings_deleteDelete a policy binding by its UUIDfull
authentik_reputation_scores_listList reputation scores with optional filtersread-only
authentik_reputation_scores_deleteDelete a reputation score by its UUIDfull
Property Mappings (10 tools)

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.

ToolDescriptionAccess
authentik_property_mappings_listList all property mappings across all typesread-only
authentik_property_mappings_getGet a single property mapping by its UUID (cross-type)read-only
authentik_property_mappings_deleteDelete a property mapping by its UUIDfull
authentik_property_mappings_types_listList all available property mapping typesread-only
authentik_property_mappings_testTest a property mapping by UUIDfull
authentik_property_mappings_by_type_listList property mappings of a specific typeread-only
authentik_property_mappings_by_type_getGet a single property mapping by type and UUIDread-only
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 UUIDfull
authentik_property_mappings_by_type_deleteDelete a property mapping by type and UUIDfull
Providers (11 tools)

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.

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

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.

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

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.

ToolDescriptionAccess
authentik_stages_listList all stages across all types with optional filtersread-only
authentik_stages_getGet a single stage by its UUID (cross-type)read-only
authentik_stages_deleteDelete a stage by its UUID (cross-type)full
authentik_stages_types_listList all available stage typesread-only
authentik_stages_by_type_listList stages of a specific type with optional filtersread-only
authentik_stages_by_type_getGet a single stage of a specific type by its UUIDread-only
authentik_stages_by_type_createCreate a new stage of a specific typefull
authentik_stages_by_type_updateUpdate an existing stage of a specific typefull
authentik_stages_by_type_deleteDelete a stage of a specific type by its UUIDfull
authentik_invitations_listList invitations with optional filtersread-only
authentik_invitations_getGet a single invitation by its UUIDread-only
authentik_invitations_createCreate a new invitationfull
authentik_invitations_updateUpdate an existing invitationfull
authentik_invitations_deleteDelete an invitation by its UUIDfull
authentik_prompts_listList prompt field definitions with optional filtersread-only
authentik_prompts_getGet a single prompt field definition by its UUIDread-only
authentik_prompts_createCreate a new prompt field definitionfull
authentik_prompts_updateUpdate an existing prompt field definitionfull
authentik_prompts_deleteDelete a prompt field definition by its UUIDfull
Tenants (10 tools)
ToolDescriptionAccess
authentik_tenants_listList tenants with optional filtersread-only
authentik_tenants_getGet a single tenant by its UUIDread-only
authentik_tenants_createCreate a new tenantfull
authentik_tenants_updateUpdate an existing tenant (partial update)full
authentik_tenants_deleteDelete a tenant by its UUID (irreversible, removes all tenant data)full
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-only
authentik_tenants_domains_createCreate a new domain for a tenantfull
authentik_tenants_domains_deleteDelete a tenant domain by its numeric IDfull

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

# 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

Reviews

No reviews yet

Sign in to write a review