Provides comprehensive Okta identity and access management capabilities including user lifecycle management (CRUD operations), group management, application management, policy and rule configuration, and system log retrieval through natural language commands.
![]()
MCP (Model Context Protocol) is an open protocol introduced by Anthropic that standardizes how large language models communicate with external tools, resources or remote services.
Beta Software Notice: This software is currently in beta and is provided AS IS without any warranties.
Features, APIs, and functionality may change at any time without notice
Not recommended for production use or critical workloads
Support during the beta period is limited
Issues and feedback can be reported through the GitHub issue tracker
By using this beta software, you acknowledge and accept these conditions.
The Okta MCP Server integrates with LLMs and AI agents, allowing you to perform various Okta management operations using natural language. For instance, you could simply ask Claude Desktop to perform Okta management operations:
Create a new user and add them to the Engineering group
Show me all failed login attempts from the last 24 hours
List all applications that haven't been used in the past month
Empower your LLM Agents to Manage your Okta Organization
This server is an Model Context Protocol server that provides seamless integration with Okta's Admin Management APIs. It allows LLM agents to interact with Okta in a programmatic way, enabling automation and enhanced management capabilities.
Key Features
LLM-Driven Okta Management: Allows your LLM agents to perform administrative tasks within your Okta environment based on natural language instructions.
Secure Authentication: Supports both Device Authorization Grant for interactive use and Private Key JWT for secure, automated server-to-server communication.
Integration with Okta Admin Management APIs: Leverages the official Okta APIs to ensure secure and reliable interaction with your Okta org.
Extensible Architecture: Designed to be easily extended with new functionalities and support for additional Okta API endpoints.
Comprehensive Tool Support: Full CRUD operations for users, groups, applications, policies, and more.
This MCP server utilizes Okta's Python SDK to communicate with the Okta APIs, ensuring a robust and well-supported integration.
๐ Getting Started
Prerequisites:
uv package manager
Claude Desktop or any other MCP Client
Okta account with appropriate permissions
Install the Okta MCP Server
Install Okta MCP Server and configure it to work with your preferred MCP Client.
Claude Desktop with all tools
Clone and install the server:
git clone https://github.com/okta/okta-mcp-server.git cd okta-mcp-server uv syncConfigure Claude Desktop by adding the following to your
claude_desktop_config.json:{ "mcpServers": { "okta-mcp-server": { "command": "uv", "args": [ "run", "--directory", "/path/to/okta-mcp-server", "okta-mcp-server" ], "env": { "OKTA_ORG_URL": "<OKTA_ORG_URL>", "OKTA_CLIENT_ID": "<OKTA_CLIENT_ID>", "OKTA_SCOPES": "<OKTA_SCOPES>", "OKTA_PRIVATE_KEY": "<PRIVATE_KEY_IF_NEEDED>", "OKTA_KEY_ID": "<KEY_ID_IF_NEEDED>" } } } }
VS Code
Add the following to your VS Code settings.json:
Other MCP Clients
To use Okta MCP Server with any other MCP Client, you can manually add this configuration to the client and restart for changes to take effect:
Authenticate with Okta
The server supports two authentication methods. Choose the one that best fits your use case.
Method 1: Device Authorization Grant (Interactive)
In your Okta org, create a new App Integration.
Select OIDC - OpenID Connect and Native Application.
Under Grant type, ensure Device Authorization is checked.
Go to the Okta API Scopes tab and Grant permissions for the APIs you need (e.g., okta.users.read, okta.groups.manage).
Save the application and copy the Client ID.
Documentation: Okta Device Authorization Grant Guide
Method 2: Private Key JWT (Browserless)
Create App: In your Okta org, create a new App Integration. Select API Services. Save the app and copy the Client ID.
Configure Client Authentication:
On the app's General tab, find the Client Credentials section and click Edit.
Disable Require Demonstrating Proof of Possession (DPoP) header in token requests.
Select Public key / Private key for the authentication method.
Add a Public Key: You have two options for adding a key.
Option A: Generate Key in Okta (Recommended)
In the Public keys section, click Add key.
In the dialog, choose Generate new key.
Okta will instantly generate a key pair. Download or save the private key (
private.pem) and store it securely.Copy the Key ID (KID) displayed for the newly generated key.
Option B: Use Your Own Key
Generate a key pair locally using the following
opensslcommands:# Generate a 2048-bit RSA private key openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:2048 # Extract the public key from the private key openssl rsa -in private.pem -pubout -out public.pemClick Add key and paste the contents of your public key (
public.pem) into the dialog.Copy the Key ID (KID) displayed for the key you added.
Grant API Scopes: Go to the Okta API Scopes tab and Grant permissions for the APIs you need.
Assign Admin Roles: To avoid
403 Forbiddenerrors, go to the Admin roles tab and assign the Super Administrator role to this application.
Verify your integration
Restart your MCP Client (Claude Desktop, VS Code, etc.) and ask it to help you manage your Okta tenant:
Show me the users in my Okta organization
๐ ๏ธ Supported Tools
The Okta MCP Server provides the following tools for LLMs to interact with your Okta tenant:
Users
Tool | Description | Usage Examples |
| List all users in your Okta organization | -
-
-
|
| Get detailed information about a specific user | -
-
-
|
| Create a new user in your Okta organization | -
-
-
|
| Update an existing user's profile information | -
-
-
|
| Deactivate a user, making them inactive | -
-
-
|
| Permanently delete a deactivated user | -
-
-
|
| Retrieve all supported user profile attributes | -
-
-
|
Groups
Tool | Description | Usage Examples |
| List all groups in your Okta organization | -
-
-
|
| Get detailed information about a specific group | -
-
-
|
| Create a new group | -
-
-
|
| Update an existing group's information | -
-
-
|
| Delete a group (requires confirmation) | -
-
-
|
| List all users who are members of a group | -
-
-
|
| List all applications assigned to a group | -
-
-
|
| Add a user to a group | -
-
-
|
| Remove a user from a group | -
-
-
|
Applications
Tool | Description | Usage Examples |
| List all applications in your Okta organization | -
-
-
|
| Get detailed information about a specific app | -
-
-
|
| Create a new application | -
-
-
|
| Update an existing application | -
-
-
|
| Delete an application (requires confirmation) | -
-
-
|
| Activate an application | -
-
-
|
| Deactivate an application | -
-
-
|
Policies
Tool | Description | Usage Examples |
| List all policies in your Okta organization | -
-
-
|
| Get detailed information about a policy | -
-
-
|
| Create a new policy | -
-
-
|
| Update an existing policy | -
-
-
|
| Delete a policy | -
-
-
|
| Activate a policy | -
-
-
|
| Deactivate a policy | -
-
-
|
| List all rules for a specific policy | -
-
-
|
| Get detailed information about a policy rule | -
-
-
|
| Create a new rule for a policy | -
-
-
|
| Update an existing policy rule | -
-
-
|
| Delete a rule from a policy | -
-
-
|
| Activate a policy rule | -
-
-
|
| Deactivate a policy rule | -
-
-
|
Logs
Tool | Description | Usage Examples |
| Retrieve system logs from your Okta org | -
-
-
|
๐ Authentication
The Okta MCP Server uses the Okta Management API and requires authentication to access your Okta tenant.
Authentication Flow
The server uses OAuth 2.0 device authorization flow for secure authentication with Okta, or Private Key JWT for browserless authentication. Your credentials are managed securely and are never exposed in plain text.
Initial Setup
The MCP Server will automatically initiate the appropriate authentication flow based on your configuration:
Device Authorization Grant: Interactive browser-based authentication
Private Key JWT: Browserless authentication using client credentials
Device authorization flow is not supported forprivate cloud tenants. Private Cloud users should use Private Key JWT authentication with client credentials.
Using the MCP Server will consume Management API rate limits according to your subscription plan. Refer to theRate Limit Policy for more information.
๐ฉบ Troubleshooting
When encountering issues with the Okta MCP Server, several troubleshooting options are available to help diagnose and resolve problems.
๐ Debug Mode
Enable debug mode for more detailed logging:
Debug mode is particularly useful when troubleshooting connection or authentication issues.
๐จ Common Issues
Authentication Failures
Ensure you have the correct permissions in your Okta tenant
Verify your
OKTA_ORG_URL,OKTA_CLIENT_ID, andOKTA_SCOPESare correctCheck that your application has the necessary API scopes granted
MCP Client Can't Connect to the Server
Restart your MCP client after installation
Verify the server path is correct in your configuration
Check that
uvis installed and accessible in your PATH
API Errors or Permission Issues
Enable debug mode with
export OKTA_LOG_LEVEL=DEBUGVerify your Okta application has the required scopes
Ensure your application has appropriate admin roles assigned
Check the Okta System Log for detailed error information
"Claude's response was interrupted..." Error
This typically happens when Claude hits its context-length limit
Try to be more specific and keep queries concise
Break large requests into smaller, focused operations
Most connection issues can be resolved by restarting both the server and your MCP client.
๐ Debug Logs
Enable debug mode to view detailed logs:
You can also specify a log file:
๐จโ๐ป Development
Building from Source
Development Scripts
This server requiresPython 3.8 or higher and uv.
๐ Security
The Okta MCP Server prioritizes security:
Credentials are managed through secure authentication flows
No sensitive information is stored in plain text
Authentication uses OAuth 2.0 device authorization flow or Private Key JWT
Supports fine-grained API scope permissions
Easy credential management through environment variables
For security best practices, always review the permissions requested during the authentication process to ensure they align with your security requirements.
Always use the principle of least privilege when granting API scopes to your Okta application.
๐งช Security Scanning
We recommend regularly scanning this server, and any other MCP-compatible servers you deploy, with community tools built to surface protocol-level risks and misconfigurations.
These scanners help identify issues across key vulnerability classes including: server implementation bugs, tool definition and lifecycle risks, interaction and data flow weaknesses, and configuration or environment gaps.
If you discover a vulnerability, please follow our responsible disclosure process.
๐ฌ Feedback and Contributing
We appreciate feedback and contributions to this project! Before you get started, please see:
Reporting Issues
To provide feedback or report a bug, please raise an issue on our issue tracker.
Vulnerability Reporting
Please do not report security vulnerabilities on the public GitHub issue tracker. Please follow the responsible disclosure process.
๐ License
This project is licensed under the Apache 2.0 license. See the LICENSE file for more info.
What is Okta?
Copyright ยฉ 2025-Present, Okta, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
This server cannot be installed