## :tada: __It's Official__ :tada: The Okta Open-Source MCP Server integrates with LLMs and AI ag...
6.2K
The Okta Open-Source MCP Server integrates with LLMs and AI agents, allowing you to perform various Okta management operations using natural language and is Generally Available (GA). .
| Attribute | Details |
|---|---|
| Docker Image | mcp/okta-mcp-server |
| Author | okta |
| Repository | https://github.com/okta/okta-mcp-server |
| Attribute | Details |
|---|---|
| Dockerfile | https://github.com/okta/okta-mcp-server/blob/f9f6157f62d3d436bfbfce84ac20f198fcb94dde/Dockerfile |
| Commit | f9f6157f62d3d436bfbfce84ac20f198fcb94dde |
| Docker Image built by | Docker Inc. |
| Docker Scout Health Score | |
| Verify Signature | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/okta-mcp-server --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub |
| Licence | Apache License 2.0 |
| Tools provided by this Server | Short Description |
|---|---|
list_applications | List all applications from the Okta organization. |
get_application | Get an application by ID from the Okta organization. |
create_application | Create a new application in the Okta organization. |
update_application | Update an application by ID in the Okta organization. |
delete_application | Delete an application by ID from the Okta organization. |
confirm_delete_application | Confirm and execute application deletion after receiving confirmation. |
activate_application | Activate an application in the Okta organization. |
deactivate_application | Deactivate an application in the Okta organization. |
list_brands | List all brands in the Okta organization with pagination support. |
get_brand | Retrieve a specific brand by its ID. |
create_brand | Create a new brand in the Okta organization. |
replace_brand | Replace (fully update) a brand by its ID. |
delete_brand | Delete a brand by its ID. |
list_brand_domains | List all custom domains associated with a brand. |
list_custom_domains | List all custom domains in the Okta organization. |
create_custom_domain | Create a new custom domain for the Okta organization. |
get_custom_domain | Retrieve a custom domain by its ID. |
replace_custom_domain | Replace the brand associated with a custom domain. |
delete_custom_domain | Delete a custom domain by its ID. |
upsert_custom_domain_certificate | Upload or renew the TLS certificate for a MANUAL custom domain. |
verify_custom_domain | Verify a custom domain by checking its DNS records. |
get_error_page_resources | Retrieve the error page sub-resource links for a brand. |
get_customized_error_page | Retrieve the customized error page for a brand. |
replace_customized_error_page | Replace (or create) the customized error page for a brand. |
delete_customized_error_page | Delete the customized error page for a brand. |
get_default_error_page | Retrieve the default (Okta-provided) error page for a brand. |
get_preview_error_page | Retrieve the preview error page for a brand. |
replace_preview_error_page | Replace (or create) the preview error page for a brand. |
delete_preview_error_page | Delete the preview error page for a brand. |
get_sign_in_page_resources | Retrieve the sign-in page sub-resource links for a brand. |
get_customized_sign_in_page | Retrieve the customized sign-in page for a brand. |
replace_customized_sign_in_page | Replace (or create) the customized sign-in page for a brand. |
delete_customized_sign_in_page | Delete the customized sign-in page for a brand. |
get_default_sign_in_page | Retrieve the default (Okta-provided) sign-in page for a brand. |
get_preview_sign_in_page | Retrieve the preview sign-in page for a brand. |
replace_preview_sign_in_page | Replace (or create) the preview sign-in page for a brand. |
delete_preview_sign_in_page | Delete the preview sign-in page for a brand. |
list_sign_in_widget_versions | List all available Okta Sign-In Widget versions for a brand. |
get_sign_out_page_settings | Retrieve the sign-out page settings for a brand. |
replace_sign_out_page_settings | Replace the sign-out page settings for a brand. |
list_email_templates | List all email templates for a brand with pagination support. |
get_email_template | Retrieve a single email template for a brand. |
list_email_customizations | List all customizations for an email template with pagination support. |
create_email_customization | Create a new language customization for an email template. |
get_email_customization | Retrieve a specific email customization by its ID. |
replace_email_customization | Replace an existing email customization (full update). |
delete_email_customization | Delete a specific email customization. |
delete_all_email_customizations | Delete ALL customizations for an email template. |
get_email_customization_preview | Preview a rendered email customization. |
get_email_default_content | Retrieve the Okta default content for an email template. |
get_email_default_content_preview | Preview the rendered Okta default content for an email template. |
get_email_settings | Retrieve the email settings for a template. |
replace_email_settings | Replace the email settings for a template. |
send_test_email | Send a test email for a template to the current API user. |
list_email_domains | List all email domains in the Okta organization. |
create_email_domain | Create a new email domain for the Okta organization. |
get_email_domain | Retrieve an email domain by its ID. |
replace_email_domain | Replace the sender display name and username for an email domain. |
delete_email_domain | Delete an email domain by its ID. |
verify_email_domain | Verify an email domain by checking its DNS records. |
list_brand_themes | List all themes for a brand. |
get_brand_theme | Retrieve a specific theme by brand ID and theme ID. |
replace_brand_theme | Replace (fully update) a theme's colours and touchpoint variants. |
upload_brand_theme_logo | Upload and replace the logo for a theme. |
delete_brand_theme_logo | Delete the custom logo for a theme. |
upload_brand_theme_favicon | Upload and replace the favicon for a theme. |
delete_brand_theme_favicon | Delete the custom favicon for a theme. |
upload_brand_theme_background_image | Upload and replace the background image for a theme. |
delete_brand_theme_background_image | Delete the background image for a theme. |
list_device_assurance_policies | List all Device Assurance Policies in the Okta organization. |
get_device_assurance_policy | Retrieve a specific Device Assurance Policy by ID. |
create_device_assurance_policy | Create a new Device Assurance Policy. |
replace_device_assurance_policy | Replace (fully update) an existing Device Assurance Policy. |
delete_device_assurance_policy | Delete a Device Assurance Policy from the Okta organization. |
list_groups | List all the groups from the Okta organization with pagination support. |
get_group | Get a group by ID from the Okta organization This tool retrieves a group by its ID from the Okta organization. |
create_group | Create a group in the Okta organization. |
delete_group | Delete a group by ID from the Okta organization. |
confirm_delete_group | Confirm and execute group deletion after receiving confirmation. |
update_group | Update a group by ID in the Okta organization. |
list_group_users | List all users in a group by ID from the Okta organization with pagination support. |
list_group_apps | List all applications assigned to a group with pagination support. |
add_user_to_group | Add a user to a group by ID in the Okta organization. |
remove_user_from_group | Remove a user from a group by ID in the Okta organization. |
list_policies | List all the policies from the Okta organization with pagination support. |
get_policy | Retrieve a specific policy by ID. |
create_policy | Create a new policy. |
update_policy | Update an existing policy. |
delete_policy | Delete a policy. |
activate_policy | Activate a policy. |
deactivate_policy | Deactivate a policy. |
list_policy_rules | List all rules for a specific policy with pagination support. |
get_policy_rule | Retrieve a specific policy rule. |
create_policy_rule | Create a new rule for a policy. |
update_policy_rule | Update an existing policy rule. |
delete_policy_rule | Delete a policy rule. |
activate_policy_rule | Activate a policy rule. |
deactivate_policy_rule | Deactivate a policy rule. |
get_login_failures | Investigate why a user failed to log in. |
get_logs | Retrieve system logs from the Okta organization with pagination support. |
list_users | List all the users from the Okta organization with pagination support. |
get_user_profile_attributes | List all user profile attributes supported by your Okta org. |
get_user | Get a user by ID from the Okta organization This tool retrieves a user by their ID from the Okta organization. |
create_user | Create a user in the Okta organization. |
update_user | Update a user in the Okta organization. |
deactivate_user | Deactivates a user from the Okta organization. |
delete_deactivated_user | Delete a user from the Okta organization who has already been deactivated or deprovisioned. |
export_users_csv | Fetch all users from the Okta organization and save them to a CSV file on disk. |
list_applicationsList all applications from the Okta organization.
get_applicationGet an application by ID from the Okta organization.
create_applicationCreate a new application in the Okta organization.
update_applicationUpdate an application by ID in the Okta organization.
delete_applicationDelete an application by ID from the Okta organization. This tool deletes an application by its ID from the Okta organization. The user will be asked for confirmation before the deletion proceeds.
confirm_delete_applicationConfirm and execute application deletion after receiving confirmation. .. deprecated:: This tool exists for backward compatibility with clients that do not support MCP elicitation. New clients should rely on the built-in elicitation prompt in delete_application instead. This function MUST ONLY be called after the human user has explicitly typed 'DELETE' as confirmation. NEVER call this function automatically after delete_application.
activate_applicationActivate an application in the Okta organization.
deactivate_applicationDeactivate an application in the Okta organization.
list_brandsList all brands in the Okta organization with pagination support.
get_brandRetrieve a specific brand by its ID.
create_brandCreate a new brand in the Okta organization. A brand controls the look-and-feel of the sign-in page, error pages, email templates, and the End-User Dashboard. After creation you can customise it further with replace_brand and the Themes API.
replace_brandReplace (fully update) a brand by its ID. This is a full replacement (HTTP PUT). Every writable field in the brand will be overwritten — omitted optional fields revert to their defaults.
delete_brandDelete a brand by its ID. The user is asked to confirm before the deletion is carried out. The default (Okta) brand cannot be deleted — the API will return a 409 error in that case.
list_brand_domainsList all custom domains associated with a brand. Each brand can have one or more domains. The default Okta subdomain (e.g. yourorg.okta.com) is always present; additional custom domains appear here once they have been verified and activated.
list_custom_domainsList all custom domains in the Okta organization. Returns all custom domains including the default Okta subdomain (id: "default"). The API does not support pagination — all domains are returned in a single response. Each domain object includes: - id – Unique domain ID ("default" for the org base domain). - domain – The fully qualified domain name. - brandId – ID of the brand associated with this domain. - certificateSourceType– "MANUAL" or "OKTA_MANAGED". - validationStatus – NOT_STARTED | IN_PROGRESS | VERIFIED | COMPLETED | FAILED_TO_VERIFY. - dnsRecords – DNS records to configure at your DNS provider (TXT + CNAME, present until domain is verified). - publicCertificate – Certificate metadata (present after verification).
create_custom_domainCreate a new custom domain for the Okta organization. After creating a domain, the response includes DNS records (TXT + CNAME) that you must configure at your DNS provider before calling verify_custom_domain. Okta does not automatically verify domains.
get_custom_domainRetrieve a custom domain by its ID.
replace_custom_domainReplace the brand associated with a custom domain. Associates a different brand with the given custom domain. The brand controls the look-and-feel of the sign-in page and email templates served under that domain. Constraints: - The default brand (isDefault: true) cannot be mapped to a custom domain (API returns 409). - The PUT is allowed regardless of the domain's validationStatus; the brand association can be changed at any point in the domain lifecycle.
delete_custom_domainDelete a custom domain by its ID. Permanently removes the custom domain from the organization. The default org domain (id: "default") cannot be deleted. A confirmation prompt is shown before proceeding.
upsert_custom_domain_certificateUpload or renew the TLS certificate for a MANUAL custom domain. Creates or replaces the PEM-encoded certificate for a custom domain whose certificateSourceType is MANUAL. If the domain is currently OKTA_MANAGED, calling this switches it to MANUAL and Okta stops auto-renewing the certificate. Okta supports TLS certificates and private keys that are PEM-encoded and 2048, 3072, or 4096 bits.
verify_custom_domainVerify a custom domain by checking its DNS records. Triggers Okta to verify that the TXT and CNAME records you added at your DNS provider match the values returned when the domain was created. DNS changes can take time to propagate — if verification fails immediately after adding records, wait a few minutes and try again. After a successful verification: - validationStatus becomes VERIFIED (or COMPLETED once the certificate is also installed). - If certificateSourceType is OKTA_MANAGED, Okta also provisions and installs a TLS certificate automatically.
get_error_page_resourcesRetrieve the error page sub-resource links for a brand. Returns navigation links (_links) for the customized, default, and preview error pages. Pass one or more values in expand to embed the full page content of those sub-resources inline in the response.
get_customized_error_pageRetrieve the customized error page for a brand. The customized error page is what end-users see in the live environment when an error occurs. Returns 404 if no customization exists (the default page is in use).
replace_customized_error_pageReplace (or create) the customized error page for a brand. Sets the HTML that appears in the live environment when an error occurs. Replaces the entire customized page; any fields omitted revert to their defaults.
delete_customized_error_pageDelete the customized error page for a brand. Removes the customized error page so the Okta default error page is shown in the live environment. Requires explicit confirmation before proceeding.
get_default_error_pageRetrieve the default (Okta-provided) error page for a brand. The default error page is shown when no customized error page exists. It cannot be modified; use replace_customized_error_page to override it.
get_preview_error_pageRetrieve the preview error page for a brand. The preview page is a sandbox for testing error page changes before they go live. Returns 404 if no preview exists.
replace_preview_error_pageReplace (or create) the preview error page for a brand. Sets the HTML for the error page preview environment. Use this to test changes before publishing to the live customized error page.
delete_preview_error_pageDelete the preview error page for a brand. Removes the preview error page. The preview environment will fall back to the default error page. Requires explicit confirmation before proceeding.
get_sign_in_page_resourcesRetrieve the sign-in page sub-resource links for a brand. Returns navigation links (_links) for the customized, default, and preview sign-in pages. Pass one or more values in expand to embed the full page content of those sub-resources inline in the response.
get_customized_sign_in_pageRetrieve the customized sign-in page for a brand. The customized sign-in page is what end-users see in the live environment. Returns 404 if no customization exists (the default page is in use).
replace_customized_sign_in_pageReplace (or create) the customized sign-in page for a brand. Sets the HTML, widget version, and widget behaviour that appear in the live environment. The widgetCustomizations parameter lets you control labels, links, and toggles shown in the Okta sign-in widget.
delete_customized_sign_in_pageDelete the customized sign-in page for a brand. Removes the customized sign-in page so the Okta default sign-in page is shown in the live environment. Requires explicit confirmation before proceeding.
get_default_sign_in_pageRetrieve the default (Okta-provided) sign-in page for a brand. The default sign-in page is shown when no customized page exists. It cannot be modified; use replace_customized_sign_in_page to override it.
get_preview_sign_in_pageRetrieve the preview sign-in page for a brand. The preview page is a sandbox for testing sign-in page changes before they go live. Returns 404 if no preview exists.
replace_preview_sign_in_pageReplace (or create) the preview sign-in page for a brand. Sets the HTML, widget version, and widget behaviour for the sign-in page preview environment. Use this to test changes before publishing to the live customized sign-in page.
delete_preview_sign_in_pageDelete the preview sign-in page for a brand. Removes the preview sign-in page. The preview environment will fall back to the default sign-in page. Requires explicit confirmation before proceeding.
list_sign_in_widget_versionsList all available Okta Sign-In Widget versions for a brand. Returns the version strings that can be used in the widget_version parameter of replace_customized_sign_in_page and replace_preview_sign_in_page. Includes both specific versions and range expressions.
get_sign_out_page_settingsRetrieve the sign-out page settings for a brand. Returns the current sign-out page configuration, which controls where users are redirected after signing out.
replace_sign_out_page_settingsReplace the sign-out page settings for a brand. Controls where users are redirected after they sign out. Set type to OKTA_DEFAULT to use the built-in Okta sign-out page, or EXTERNALLY_HOSTED to redirect users to a URL you provide.
list_email_templatesList all email templates for a brand with pagination support. Returns every Okta-managed email template available on the brand. By default each entry contains only the template name and _links. Use expand to embed additional metadata inline.
get_email_templateRetrieve a single email template for a brand. Returns the named Okta email template with its navigation links. Pass expand to embed settings or customization count inline.
list_email_customizationsList all customizations for an email template with pagination support. Returns every language variant that has been created for the specified email template. Each entry includes the full customization body, subject, language, isDefault flag, and timestamps.
create_email_customizationCreate a new language customization for an email template. Adds a new localized variant for the specified email template. Only one customization per language is allowed — creating a duplicate language returns a 409 Conflict error. The first customization created for a template automatically becomes the default (isDefault=True); subsequent ones default to False. The body must be valid HTML and must include all required Okta template variables for the template type. For example, UserActivation requires ${activationLink} or ${activationToken}.
get_email_customizationRetrieve a specific email customization by its ID. Returns the full customization object including the HTML body, subject, language, isDefault status, and timestamps.
replace_email_customizationReplace an existing email customization (full update). Replaces all fields on the specified customization. All required fields must be supplied; the operation is not a partial patch. The body must include all required Okta template variables for the template type or the request will be rejected with a validation error.
delete_email_customizationDelete a specific email customization. Permanently removes the specified language customization from the email template. Requires explicit confirmation before proceeding. If this is the only customization (i.e. the default), you may need to delete all customizations instead; deleting the sole default customization may return an error — use delete_all_email_customizations in that case.
delete_all_email_customizationsDelete ALL customizations for an email template. Permanently removes every language variant from the specified email template, reverting it to Okta's built-in default content. This is irreversible and cannot be undone. Requires explicit confirmation.
get_email_customization_previewPreview a rendered email customization. Returns the customization with all Okta template variables replaced by representative sample values. Useful for verifying how the email will appear to recipients before publishing.
get_email_default_contentRetrieve the Okta default content for an email template. Returns the unmodified Okta-provided subject and body for the specified template. This is the fallback content shown when no customization exists for a given language. Useful for inspecting the baseline before creating a customization.
get_email_default_content_previewPreview the rendered Okta default content for an email template. Returns the Okta default subject and body with all template variables replaced by representative sample values. Unlike get_email_default_content, all ${variable} placeholders are substituted with real-looking data so you can see exactly what an end user would receive.
get_email_settingsRetrieve the email settings for a template. Returns the recipient configuration for the specified email template, controlling which user populations will receive emails of this type.
replace_email_settingsReplace the email settings for a template. Updates the recipient configuration for the specified email template. This controls who receives emails of this type across your Okta org.
send_test_emailSend a test email for a template to the current API user. Triggers Okta to send a test version of the specified email template to the email address of the user associated with the current API token. If a customization exists for the requested language, the customized version is sent; otherwise the Okta default content is used.
list_email_domainsList all email domains in the Okta organization. Returns every Email Domain configured in the org. Each domain shows its current validation status and the DNS records that must be published to complete verification.
create_email_domainCreate a new email domain for the Okta organization. After creation the response includes DNS records (one TXT record and three CNAME records) that you must publish at your DNS provider. Call verify_email_domain once the records are live to complete setup.
get_email_domainRetrieve an email domain by it
[...]
Content type
Image
Digest
sha256:f8330e189…
Size
120.8 MB
Last updated
2 months ago
docker pull mcp/okta-mcp-serverPulls:
31
Last week