Skip to main content
Glama
Okta MCP Server

Okta MCP Server

by bangarrajuv2

Okta MCP Server

A TypeScript Model Context Protocol server that exposes Okta incident-support and administrative workflows to MCP-compatible IDE clients over stdio.

Capabilities

  • Read org metadata.

  • Investigate user incidents with one summary tool.

  • List and inspect users, groups, app assignments, MFA factors, sessions, policies, IdPs, network zones, and System Log events.

  • Query focused user System Log events by actor, event type, and outcome.

  • Optionally expose write/remediation tools for lifecycle, group membership, session clearing, password expiry, and MFA reset.

Related MCP server: Okta MCP Server by CData

Requirements

  • Node.js 20 or newer.

  • An Okta org URL such as https://example.okta.com.

  • An Okta API token with the least privileges needed for the tools you plan to use.

Setup

npm install
cp .env.example .env
npm run build

Set these environment variables before launching the server:

export OKTA_ORG_URL="https://your-org.okta.com"
export OKTA_API_TOKEN="your-okta-api-token"
export OKTA_REQUEST_TIMEOUT_MS="30000"
export OKTA_ENABLE_WRITE_TOOLS="false"

OKTA_ENABLE_WRITE_TOOLS defaults to false. Keep it false for read-only support triage. Set it to true only for trusted remediation sessions where your MCP host has explicit tool-call approval.

Run

For local development:

npm run dev

For the local React support console:

npm run build
export OKTA_ORG_URL="https://your-org.okta.com"
export OKTA_API_TOKEN="your-okta-api-token"
export OKTA_ENABLE_WRITE_TOOLS="false"
npm run ui

Open http://127.0.0.1:5173. The React app talks to a local HTTP bridge on port 4174, and the bridge talks to this MCP server over stdio.

For an MCP client, use the built entrypoint:

{
  "mcpServers": {
    "okta": {
      "command": "node",
      "args": ["/absolute/path/to/Okta MCP Server/dist/index.js"],
      "env": {
        "OKTA_ORG_URL": "https://your-org.okta.com",
        "OKTA_API_TOKEN": "your-okta-api-token"
      }
    }
  }
}

Tools

Tool

Purpose

okta_get_org_info

Read organization metadata.

okta_get_user_incident_summary

Gather profile, groups, factors, sessions, app links, and recent logs for a user.

okta_list_users

List users with q, search, filter, limit, and after.

okta_get_user

Read one user by ID, login, or shortname.

okta_list_user_groups

List groups assigned to a user.

okta_list_user_factors

List enrolled MFA factors for a user.

okta_get_user_factor

Read one enrolled MFA factor.

okta_list_user_sessions

List active sessions for a user.

okta_list_user_app_links

List app links visible to a user.

okta_list_groups

List groups with q, search, filter, limit, and after.

okta_get_group

Read one group.

okta_list_group_users

List users assigned to a group.

okta_list_applications

List applications.

okta_get_application

Read one application.

okta_list_application_users

List users assigned to an application.

okta_get_application_user

Read one app assignment for a user.

okta_list_policies

List Okta policies for access and sign-on troubleshooting.

okta_get_policy

Read one policy.

okta_list_policy_rules

List policy rules.

okta_list_identity_providers

List identity providers.

okta_get_identity_provider

Read one identity provider.

okta_list_network_zones

List network zones.

okta_list_system_logs

Query System Log events.

okta_search_user_system_logs

Search user-related System Log events by login, email, or user ID.

These remediation tools are registered only when OKTA_ENABLE_WRITE_TOOLS=true:

Tool

Purpose

okta_create_user

Create a user with a supplied profile, credentials, and optional groups.

okta_update_user

Update a user's profile or credentials.

okta_deactivate_user

Deactivate a user.

okta_unlock_user

Unlock a locked user.

okta_suspend_user

Suspend a user.

okta_unsuspend_user

Unsuspend a user.

okta_expire_user_password

Expire a password and optionally issue a temporary password.

okta_reset_user_factor

Reset a user's MFA factor.

okta_clear_user_sessions

Clear user sessions and optionally revoke OAuth tokens.

okta_create_group

Create a group.

okta_add_user_to_group

Add a user to a group.

okta_remove_user_from_group

Remove a user from a group.

Incident Workflows

Common support prompts from an MCP client IDE:

  • "Use Okta to summarize the incident context for user jane@example.com since 2026-07-06T12:00:00Z."

  • "Check whether this user has active sessions, enrolled factors, and recent MFA failures."

  • "Find failed sign-in or app access events for jane@example.com in the last two hours."

  • "Compare the user's assigned groups with the failing application's assignments."

  • "List sign-on and MFA policies that may affect this app or user."

Security Notes

  • Use a scoped Okta admin/API token and rotate it regularly.

  • Store OKTA_API_TOKEN in your MCP host's secret storage when available.

  • Leave OKTA_ENABLE_WRITE_TOOLS=false for normal incident triage.

  • Treat lifecycle, MFA reset, session clearing, and membership tools as privileged operations.

  • Review MCP host approvals before allowing write operations.

See Architecture for component design, data flow, and extension guidance. See Using Okta MCP from Claude or VS Code for natural-language support workflows.

Available Tools

24 tools
okta_get_applicationC

Get one Okta application by app ID.

Inputs: appId (required), expand.

okta_get_application_userC

Get a user's assignment record for an Okta application.

Inputs: appId (required), userId (required).

okta_get_groupA

Get one Okta group by group ID.

Inputs: groupId (required).

okta_get_identity_providerB

Get one identity provider by ID.

Inputs: idpId (required).

okta_get_org_infoA

Read metadata about the Okta organization.

Inputs: no named parameters.

okta_get_policyC

Get one Okta policy by policy ID.

Inputs: policyId (required), expand.

okta_get_userA

Get one Okta user by ID, login, or shortname.

Inputs: userId (required).

okta_get_user_factorC

Get one MFA factor for a user.

Inputs: userId (required), factorId (required).

okta_get_user_incident_summaryC

Gather a support-focused incident summary for a user: profile, groups, factors, sessions, app links, and recent System Log events.

Inputs: userId (required), since, until, logLimit.

okta_list_applicationsB

List Okta applications. Supports q, filter, pagination, and a limit up to 200.

Inputs: q, after, limit, filter.

okta_list_application_usersC

List users assigned to an Okta application.

Inputs: appId (required), q, after, limit.

okta_list_groupsB

List Okta groups. Supports q, search, filter, pagination, and a limit up to 200.

Inputs: q, after, limit, filter, +1 more.

okta_list_group_usersC

List users assigned to a group.

Inputs: groupId (required), after, limit.

okta_list_identity_providersC

List configured identity providers for federation or social-login incident review.

Inputs: q, type, after, limit.

okta_list_network_zonesB

List Okta network zones for access or policy troubleshooting.

Inputs: after, limit.

okta_list_policiesB

List Okta policies by type for access, sign-on, MFA, password, and app sign-on investigations.

Inputs: type, expand, status.

okta_list_policy_rulesB

List rules for an Okta policy.

Inputs: policyId (required).

okta_list_system_logsC

List Okta System Log events. Supports since, until, filter, q, sortOrder, pagination, and limit.

Inputs: q, after, limit, since, +3 more.

okta_list_user_factorsC

List enrolled MFA factors for a user.

Inputs: userId (required).

okta_list_user_groupsB

List groups assigned to a user.

Inputs: userId (required).

okta_list_usersB

List Okta users. Supports q, search, filter, pagination, and a limit up to 200.

Inputs: q, after, limit, filter, +1 more.

okta_list_user_sessionsC

List active Okta sessions for a user.

Inputs: userId (required).

okta_search_user_system_logsB

Search recent System Log events for a user by login, email, or user ID.

Inputs: user (required), limit, since, until, +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 24 tools

    Disambiguation5/5

    Each tool targets a distinct resource or action: get/retrieve vs list/search, and each focuses on a different Okta entity (application, group, user, policy, identity provider, network zone, system log, etc.). No two tools have overlapping purposes, even the aggregate incident summary tool combines existing data without conflicting with individual getters.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern prefixed with 'okta_': get for single entity retrieval, list for collections, and search for user-specific system logs. The naming is uniform down to singular vs plural (e.g., okta_get_application vs okta_list_applications) with no mixing of styles.

    Tool Count4/5

    With 24 tools, the set is on the higher end but still reasonable for a comprehensive Okta management server covering users, groups, applications, policies, identity providers, network zones, and system logs. It slightly exceeds the ideal 3-15 range but is not excessive given the domain complexity.

    Completeness2/5

    The tool set is entirely read-only: all tools are get/list/search operations with no create, update, or delete capabilities. This is a significant gap for a management API, as agents can inspect but not act on resources, leaving many workflows incomplete.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      This project builds a read-only MCP server. For full read, write, update, delete, and action capabilities and a simplified setup, check out our free CData MCP Server for Okta (beta): https://www.cdata.com/download/download.aspx?sku=KUZK-V&type=beta
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      An MCP server for managing Okta users (CRUD operations) with full OAuth 2.1 compliance, enabling secure integration with Claude Desktop and other MCP clients.
      -