README.md•10.5 kB
# Authentik MCP Servers
A collection of Model Context Protocol (MCP) servers for Authentik API integration, available in both Python and Node.js implementations.
## Overview
This repository contains four MCP servers for integrating with Authentik:
### Full-Featured Servers
- **authentik-mcp** (Python) - Complete Authentik API integration with full CRUD capabilities
- **authentik-mcp** (Node.js) - TypeScript implementation with complete API access
### Diagnostic-Only Servers
- **authentik-diag-mcp** (Python) - Read-only diagnostic and monitoring capabilities
- **authentik-diag-mcp** (Node.js) - TypeScript implementation for diagnostics and monitoring
## MCP Integration & Usage
This repository is designed for seamless integration with the Model Context Protocol (MCP) ecosystem. These servers are intended to be run and managed by MCP-compatible tools (such as VS Code extensions, automation platforms, or orchestration systems) rather than directly via the command line.
### How to Use with MCP
1. **Install the desired package(s):**
- For full API access: `authentik-mcp`
- For diagnostics/monitoring: `authentik-diag-mcp`
2. **Configure your MCP tool or platform** to point to the installed server binary (e.g., `authentik-mcp` or `authentik-diag-mcp`) and provide the required Authentik API token and base URL as arguments or environment variables.
3. **Do not run these servers directly via CLI.** Instead, let your MCP-compatible tool manage their lifecycle and communication.
4. **Interact with Authentik** through the MCP tool interface, which will expose all available resources and tools for automation, monitoring, and diagnostics.
#### Example: VS Code Github Copilot MCP Extension
**GitHub Copilot Workspace (settings.json) – Python (uvx):**
```jsonc
"mcp": {
"servers": {
"authentik": {
"command": "uvx",
"args": [
"authentik-diag-mcp",
"--base-url", "https://your-authentik-instance",
"--token", "your-api-token"
]
}
}
}
```
**GitHub Copilot Workspace (settings.json) – Node.js (npx):**
```jsonc
"mcp": {
"servers": {
"authentik": {
"command": "npx",
"args": [
"@cdmx/authentik-diag-mcp",
"--base-url", "https://your-authentik-instance",
"--token", "your-api-token"
]
}
}
}
```
**Claude Desktop (claude_desktop_config.json) – Python (uvx):**
```json
{
"mcpServers": {
"authentik": {
"command": "uvx",
"args": [
"authentik-diag-mcp",
"--base-url",
"https://your-authentik-instance",
"--token",
"your-api-token"
]
}
}
}
```
**Claude Desktop (claude_desktop_config.json) – Node.js (npx):**
```json
{
"mcpServers": {
"authentik": {
"command": "npx",
"args": [
"@cdmx/authentik-diag-mcp",
"--base-url",
"https://your-authentik-instance",
"--token",
"your-api-token"
]
}
}
}
```
## Quick Start
### Python Packages
> **Note:** These packages are not intended for direct CLI use. Integrate them with your MCP-compatible tool or platform as described above.
### Node.js Packages
> **Note:** These packages are not intended for direct CLI use. Integrate them with your MCP-compatible tool or platform as described above.
#### Full API Access
> Managed by your MCP tool. No direct CLI usage required.
#### Diagnostic Only
> Managed by your MCP tool. No direct CLI usage required.
## Features Comparison
| Feature | Full MCP | Diagnostic MCP |
| ----------------------------- | -------- | -------------- |
| User Management (CRUD) | ✅ | ❌ (Read-only) |
| Group Management (CRUD) | ✅ | ❌ (Read-only) |
| Application Management (CRUD) | ✅ | ❌ (Read-only) |
| Event Monitoring | ✅ | ✅ |
| User Information | ✅ | ✅ (Read-only) |
| Group Information | ✅ | ✅ (Read-only) |
| Application Status | ✅ | ✅ (Read-only) |
| Flow Management | ✅ | ✅ (Read-only) |
| Provider Management | ✅ | ✅ (Read-only) |
| Token Management | ✅ | ❌ |
| System Health Monitoring | ✅ | ✅ |
| Audit Trail Analysis | ✅ | ✅ |
## API Token Setup
### For Full Access (authentik-mcp)
1. Log in to Authentik as an administrator
2. Navigate to **Directory** > **Tokens**
3. Create a new token with full API permissions
4. Copy the token for use with the full MCP server
### For Diagnostic Access (authentik-diag-mcp)
1. Log in to Authentik as an administrator
2. Navigate to **Directory** > **Tokens**
3. Create a new token with minimal read-only permissions
4. Copy the token for use with the diagnostic MCP server
## Available Tools
### Full MCP Server Tools
#### User Management
- `authentik_list_users` - List users with filtering
- `authentik_get_user` - Get user details
- `authentik_create_user` - Create new user
- `authentik_update_user` - Update existing user
- `authentik_delete_user` - Delete user
#### Group Management
- `authentik_list_groups` - List groups
- `authentik_get_group` - Get group details
- `authentik_create_group` - Create new group
- `authentik_update_group` - Update existing group
- `authentik_delete_group` - Delete group
#### Application Management
- `authentik_list_applications` - List applications
- `authentik_get_application` - Get application details
- `authentik_create_application` - Create new application
- `authentik_update_application` - Update existing application
- `authentik_delete_application` - Delete application
#### Event Monitoring
- `authentik_list_events` - List system events
- `authentik_get_event` - Get event details
#### Flow Management
- `authentik_list_flows` - List authentication flows
- `authentik_get_flow` - Get flow details
#### Provider Management
- `authentik_list_providers` - List providers
- `authentik_get_provider` - Get provider details
#### Token Management
- `authentik_list_tokens` - List API tokens
- `authentik_create_token` - Create new token
### Diagnostic MCP Server Tools
#### Event Monitoring
- `authentik_list_events` - List system events with filtering
- `authentik_get_event` - Get detailed event information
- `authentik_search_events` - Search events by criteria
- `authentik_get_user_events` - Get user-specific events
#### User Information (Read-Only)
- `authentik_get_user_info` - Get user information
- `authentik_list_users_info` - List users for diagnostics
- `authentik_get_user_events` - Get user event history
#### Group Information (Read-Only)
- `authentik_get_group_info` - Get group information
- `authentik_list_groups_info` - List groups for diagnostics
- `authentik_get_group_members` - Get group members
#### System Health
- `authentik_get_system_config` - Get system configuration
- `authentik_get_version_info` - Get version information
#### Application/Flow/Provider Status (Read-Only)
- `authentik_get_application_status` - Check application status
- `authentik_list_applications_status` - List application statuses
- `authentik_get_flow_status` - Check flow status
- `authentik_list_flows_status` - List flow statuses
- `authentik_get_provider_status` - Check provider status
- `authentik_list_providers_status` - List provider statuses
## Use Cases
### Full MCP Server
- **User Management**: Create, update, and manage user accounts
- **Group Administration**: Organize users into groups with appropriate permissions
- **Application Setup**: Configure and deploy new applications
- **Flow Configuration**: Set up and customize authentication flows
- **System Administration**: Complete system management and configuration
### Diagnostic MCP Server
- **Security Monitoring**: Track authentication events and security incidents
- **Performance Analysis**: Monitor system performance and user experience
- **Compliance Reporting**: Generate audit reports and compliance documentation
- **Troubleshooting**: Diagnose authentication and access issues
- **Health Monitoring**: Monitor system health and configuration drift
## Security Best Practices
### Token Management
- Use dedicated tokens for each server type
- Rotate tokens regularly
- Apply principle of least privilege
- Monitor token usage
### Environment Security
- Always use HTTPS in production
- Verify SSL certificates
- Use environment variables for sensitive data
- Implement proper access controls
### Monitoring
- Enable audit logging
- Monitor API usage patterns
- Set up alerting for suspicious activities
- Regular security reviews
## Development
### Building All Packages
```bash
chmod +x build.sh
./build.sh
```
### Publishing All Packages
```bash
chmod +x publish.sh
./publish.sh
```
### Development Setup
#### Python Development
```bash
cd python/authentik-mcp # or authentik-diag-mcp
uv sync
uv run authentik-mcp --base-url http://localhost:9000 --token your-token
```
#### Node.js Development
```bash
cd nodejs/authentik-mcp # or authentik-diag-mcp
npm install
npm run dev -- --base-url http://localhost:9000 --token your-token
```
## Requirements
### Python
- Python 3.10 or higher
- uv package manager (recommended)
### Node.js
- Node.js 18.0.0 or higher
### General
- Valid Authentik API token with appropriate permissions
- npm or yarn
## Project Structure
```
authentik-mcp/
├── python/
│ ├── authentik-mcp/ # Full Python MCP server
│ └── authentik-diag-mcp/ # Diagnostic Python MCP server
├── nodejs/
│ ├── authentik-mcp/ # Full Node.js MCP server
│ └── authentik-diag-mcp/ # Diagnostic Node.js MCP server
├── build.sh # Build all packages
├── publish.sh # Publish all packages
└── README.md # This file
```
## License
MIT License - see individual package LICENSE files for details.
## Support
- [Authentik Documentation](https://docs.goauthentik.io/)
- [GitHub Issues](https://github.com/goauthentik/authentik-mcp/issues)
- [Authentik Community](https://github.com/goauthentik/authentik/discussions)
- [MCP Documentation](https://modelcontextprotocol.io/)
## Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
## Changelog
See individual package CHANGELOG.md files for version history and changes.