logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

okta-identity-services-adapter

Interface with Okta's centralized identity and access management platform to administer user entities, monitor account states, and manage detailed profile attributes. Enables automated provisioning workflows via secure remote procedure calls.

Author

okta-identity-services-adapter logo

kapilduraphe

MIT License

Quick Info

GitHub GitHub Stars 19
NPM Weekly Downloads 1690
Tools 1
Last Updated 2026-02-19

Tags

oktakapildurapheautomatekapilduraphe oktaokta mcpokta user

MseeP.ai Security Assessment Badge

Okta Identity Services Adapter (MCP Server)

This modular component facilitates seamless programmatic interaction with the Okta user directory, offering full lifecycle management for users and groups, alongside specialized functionality for streamlined employee onboarding sequences.

Okta Server MCP server

Necessary Preconditions

  • Runtime Environment: Node.js (version 16 minimum)
  • Client Application: Claude Desktop Application
  • Okta Access: Valid Okta Developer Tenancy
  • Credentials: An Okta Administrator API Access Key

Deployment Guide

1. Okta Tenancy Initialization

  • Navigate to the Okta Developer Portal
  • Establish a new tenant or log in.
  • Record the organization's fully qualified domain name (e.g., https://dev-xxxxxxxx.okta.com)

2. API Credential Generation

  • Within the Okta Console, navigate to Security settings -> API -> Tokens.
  • Initiate the creation of a new token, assigning a clear label.
  • Crucially, copy the generated token immediately, as it will not be displayed again.

3. Project Initialization

Install required packages: bash npm install

4. Claude Desktop Configuration

Modify the Claude Desktop configuration file as follows:

MacOS Path: bash code ~/Library/Application\ Support/Claude/claude_desktop_config.json

Windows Path: bash code %AppData%\Claude\claude_desktop_config.json

Update or inject the server configuration block:

{ "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" } } } }

Apply changes by restarting the Claude Desktop environment.

Exposed Functionality (Toolsets)

The adapter exposes the following functional interfaces:

Identity Administration

retrieve_user_profile

Fetches comprehensive attributes for a singular identity record in Okta, encompassing: - Identity Indices (UUID, Lifecycle State) - Timeline Data (Creation, Activation Timestamps) - Demographic Data (Full Name, Primary Email) - Organizational Context (Role, Reporting Structure) - Contact Vectors and Residency Details

query_identities_by_property

Performs targeted lookups against user profiles using diverse criteria and Okta's native search engine: - Targeted Fields: firstName, lastName, email, managerId, orgUnit, jobTitle, divisionName, company, employeeId, costCenterCode, identityType, locationCity, region - Supported Operators: - eq (Equality match) - sw (Prefix matching) - ew (Suffix matching) - co (Substring inclusion) - pr (Existence check) - Key Enhancements: - Leverages Okta's indexed search for efficiency. - Graceful degradation to in-memory filtering for esoteric operator requests. - Sanitization/Obfuscation of sensitive fields in results. - Granular control over result set pagination and status inclusion (active/inactive).

enumerate_all_identities

Returns a paginated list of user records, supporting SCIM filtering syntax (e.g., 'profile.status eq "ACTIVE"') and generalized textual searches.

enforce_user_activation

Transitions a user's state to 'Active'. Supports triggering the standard Okta activation notification.

temporarily_disable_user

Places a user account into a suspended state.

restore_user_account

Reverts a previously suspended user account to its prior operational status.

permanently_remove_user

Deletes an identity record (requires the user to be deactivated prior to execution).

fetch_user_access_geoloc

Queries system logs to ascertain the last recorded geographical point of authentication for a specified identity.

Group Hierarchy Management

catalogue_all_groups

Lists existing groups within the tenant, allowing for filtering based on group metadata (e.g., 'type eq "OKTA_GROUP"') and textual searching.

initialize_new_group

Creates a designated group entity, parameterized by display name and optional descriptive text.

fetch_group_details

Retrieves the full membership and attribute set for an identified group.

retire_group_entity

Irreversibly removes a specified group structure.

integrate_identity_into_group

Adds a designated user identifier to a specified group membership list.

eject_identity_from_group

Revokes a user's membership from a group assignment.

map_group_members

Lists all associated user identifiers belonging to a particular group, with pagination controls.

Provisioning Orchestration (Beta)

Warning: Provisioning mechanisms are under active development and should be piloted cautiously before wide-scale production deployment, subject to evolving Okta API governance.

batch_user_creation_from_csv

Ingests user data provided as a raw CSV string payload to facilitate mass account instantiation. Includes options for immediate enablement and group assignment during creation.

attribute_driven_group_synchronization

Assigns sets of users to target groups dynamically based on matching values within their profile attributes (e.g., 'All users with Title="Analyst" join the "Tier 1 Support" group').

application_entitlement_allocation

Bulk assignment of specified application access entitlements to a cohort of users.

comprehensive_onboarding_sequence

Executes a multi-step provisioning orchestration pipeline: user creation, mandatory attribute population, automatic activation, application entitlement distribution, and system welcome messaging.

Interaction Examples in Claude

Once connected, utilize natural language for operations such as:

Identity Operations

  • "Retrieve comprehensive data for the user identified by ID XXXXX"
  • "Identify all personnel affiliated with the 'Infrastructure' organizational unit"
  • "Search for identities whose primary email address contains 'corp.local'"
  • "List users possessing the 'Contractor' status designation"
  • "Activate the account associated with user ID YYYYY"
  • "Locate the geographical login origin for user jane.doe@org.com"

Advanced Identity Filtering

  • "Find all users where the 'employeeNumber' field is populated"
  • "Show identities where 'firstName' starts with 'Alex'"

Group Operations

  • "Display the entire registry of organizational groupings"
  • "Instantiate a new group named 'Project Phoenix Team'"
  • "Assign user ZZZZ to the group named 'All Developers'"
  • "What are the current members of the 'Executive Leadership' group?"

Automated Provisioning

  • "Execute the bulk import process using the following new hire data: [CSV Payload]"
  • "Synchronize group memberships based on the 'Role' attribute value."

Operational Resilience and Diagnostics

Error Management Framework

This adapter is engineered to gracefully handle common API exceptions: - Resource Not Found (HTTP 404) - Authorization Failures (Invalid Credentials) - Malformed Payload / Schema Validation Errors - Rate Limit Exceeded Scenarios - CSV Parsing Integrity Violations

Troubleshooting Common Failures

Tool Discovery Failure: - Verify the integrity of environment variables (OKTA_ORG_URL must include scheme; OKTA_API_TOKEN must be valid). - Examine the relevant MCP service logs within the Claude Desktop directory structure.

Authentication Errors: - Confirm the API key scope permits the requested operations. - Ensure the organizational URL is exactly correct, avoiding trailing slashes if not expected by the underlying SDK.

Search Operator Mismatch: - Review the 'Search Operator Compatibility' table below; unsupported server-side operators trigger a less performant, client-side filtering fallback.

Log Access Procedures

For real-time tracing of adapter activities:

MacOS/Linux: bash tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

Windows (PowerShell): powershell Get-Content -Path "$env:AppData\Claude\Logs\mcp*.log" -Wait -Tail 20

Security Posture

  • Credentials must remain sequestered, never committed to source control.
  • Mandate the principle of least privilege for the Okta API Token.
  • Periodic revocation and renewal of access keys are advised.
  • Sensitive user data presented in search results is subject to PII obfuscation protocols.

Search Operator Compatibility Matrix

Profile Field Category eq sw ew co pr
Names (firstName, lastName)
Identifiers (email, login)
Contextual (department, title) ❌*
Metadata (division, organization) ❌*
General Attributes ⚠️ ⚠️

*Note: Non-supported server-side operations automatically engage client-side processing for result fulfillment.

Data Schemas (TypeScript Definitions)

This adapter utilizes strict typing for data exchange:

typescript 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 OktaUserRecord { id: string; status: string; created: string; activated: string; lastLogin: string; lastUpdated: string; statusChanged: string; passwordChanged: string; profile: OktaUserProfile; }

interface OktaGroupEntity { id: string; created: string; lastUpdated: string; lastMembershipUpdated: string; type: string; objectClass: string[]; profile: { name: string; description: string; }; }

CSV Input Specification for Provisioning

When utilizing batch_user_creation_from_csv, the input text must adhere to the following column requirements: - firstName (Mandatory) - lastName (Mandatory) - email (Mandatory) - department (Optional) - title (Optional) - mobilePhone (Optional)

Repository Governance

This software is distributed under the terms of the MIT License.

Support Channels

For assistance, refer to the diagnostics section above, consult the client-side logs, or submit an inquiry referencing the server's output stream. Contributions are welcomed via pull requests.

WIKIPEDIA: Business management tools are all the systems, applications, controls, calculating solutions, methodologies, etc. used by organizations to be able to cope with changing markets, ensure a competitive position in them and improve business performance.

See Also

`