Interact with Okta API.
This MCP server enables Claude to interact with Okta's user management system, providing comprehensive user and group management capabilities along with onboarding automation.
dev-123456.okta.com
)Install dependencies:
npm install
Open your Claude Desktop configuration file:
For MacOS:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
For Windows:
code %AppData%\Claude\claude_desktop_config.json
Add or update the configuration:
{
"mcpServers": {
"okta": {
"command": "node",
"args": [
"PATH_TO_PROJECT_DIRECTORY/dist/index.js"
],
"env": {
"OKTA_ORG_URL": "https://your-domain.okta.com",
"OKTA_API_TOKEN": "your-api-token"
}
}
}
}
Save the file and restart Claude Desktop.
The server provides the following tools:
Retrieves detailed user information from Okta, including:
Lists users from Okta with optional filtering and pagination:
Activates a user in Okta:
Suspends a user in Okta
Unsuspends a previously suspended user in Okta
Deletes a user from Okta (note: user must be deactivated first)
Retrieves the last known location and login information for a user from Okta system logs
Lists user groups from Okta with optional filtering and pagination:
Creates a new group in Okta with a name and optional description
Retrieves detailed information about a specific group
Deletes a group from Okta
Assigns a user to a group in Okta
Removes a user from a group in Okta
Lists all users in a specific group with pagination support
Note: The onboarding automation tools are experimental and may be subject to changes or limitations based on Okta's API constraints. Use with caution in production environments.
Imports multiple users from a CSV string:
Assigns multiple users to groups based on attribute mappings:
Provisions application access for multiple users:
Runs a complete onboarding workflow for multiple users from CSV data:
After setup, you can use commands like:
The server includes robust error handling for:
Tools not appearing in Claude:
tail -f ~/Library/Logs/Claude/mcp*.log
Authentication Errors:
Server Connection Issues:
node /path/to/build/index.js
To view server logs:
For MacOS/Linux:
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
For Windows:
Get-Content -Path "$env:AppData\Claude\Logs\mcp*.log" -Wait -Tail 20
If you're getting environment variable errors, verify:
OKTA_ORG_URL
: Should be complete URL (e.g., "https://dev-123456.okta.com")OKTA_API_TOKEN
: Should be a valid API tokenThe server includes TypeScript interfaces for Okta user and group data:
interface OktaUserProfile {
login: string;
email: string;
secondEmail?: string;
firstName: string;
lastName: string;
displayName: string;
nickName?: string;
organization: string;
title: string;
division: string;
department: string;
employeeNumber: string;
userType: string;
costCenter: string;
mobilePhone?: string;
primaryPhone?: string;
streetAddress: string;
city: string;
state: string;
zipCode: string;
countryCode: string;
preferredLanguage: string;
profileUrl?: string;
}
interface OktaUser {
id: string;
status: string;
created: string;
activated: string;
lastLogin: string;
lastUpdated: string;
statusChanged: string;
passwordChanged: string;
profile: OktaUserProfile;
}
interface OktaGroup {
id: string;
created: string;
lastUpdated: string;
lastMembershipUpdated: string;
type: string;
objectClass: string[];
profile: {
name: string;
description: string;
};
}
When using the bulk import or onboarding workflow tools, your CSV should include these headers:
firstName
(required)lastName
(required)email
(required)department
(optional)title
(optional)mobilePhone
(optional)Example:
firstName,lastName,email,department,title,mobilePhone
John,Doe,john.doe@example.com,Engineering,Senior Developer,+1-555-123-4567
Jane,Smith,jane.smith@example.com,Marketing,Director,+1-555-987-6543
MIT License - See LICENSE file for details.
If you encounter any issues:
Note: PRs welcome!
by: SimonB97
MCP server for secure command-line interactions on Windows systems, enabling controlled access to PowerShell, CMD, and Git Bash shells.
by: dinghuazhou
A sample MCP server for VolcEngine TOS that flexibly get objects from TOS.