UNPKG

okta-mcp-server

Version:

Model Context Protocol (MCP) server for Okta API operations with support for bulk operations and caching

535 lines 18.9 kB
export const appTools = [ { name: 'listApps', description: 'List Okta applications with pagination and filtering support. Returns a page of applications matching the specified criteria.', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Number of apps to return per page (1-200)', default: 20, minimum: 1, maximum: 200, }, after: { type: 'string', description: 'Cursor for pagination - use the cursor from previous response to get next page', }, filter: { type: 'string', description: 'Filter expression for apps (e.g., "status eq \\"ACTIVE\\"", "name eq \\"salesforce\\"")', }, q: { type: 'string', description: 'Searches for apps by name or label', }, expand: { type: 'string', description: 'Expands response properties (e.g., "user/{userId}", "group/{groupId}")', }, }, }, }, { name: 'getApp', description: 'Get a single Okta application by ID with full details', inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'Application ID to retrieve', }, expand: { type: 'string', description: 'Expands response properties', }, }, required: ['appId'], }, }, { name: 'createApp', description: 'Create a new Okta application (SAML, OIDC, Bookmark, etc.)', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'App integration name (e.g., "saml_2_0", "oidc_client", "bookmark")', }, label: { type: 'string', description: 'Display label for the application', }, signOnMode: { type: 'string', enum: [ 'AUTO_LOGIN', 'BASIC_AUTH', 'BOOKMARK', 'BROWSER_PLUGIN', 'OPENID_CONNECT', 'SAML_1_1', 'SAML_2_0', 'SECURE_PASSWORD_STORE', 'WS_FEDERATION', ], description: 'Sign-on mode for the application', }, status: { type: 'string', enum: ['ACTIVE', 'INACTIVE'], description: 'Application status', default: 'ACTIVE', }, accessibility: { type: 'object', description: 'Accessibility settings', properties: { selfService: { type: 'boolean', description: 'Enable self-service application assignment', }, errorRedirectUrl: { type: 'string', description: 'Custom error page URL', }, loginRedirectUrl: { type: 'string', description: 'Custom login page URL', }, }, }, visibility: { type: 'object', description: 'Visibility settings', properties: { autoSubmitToolbar: { type: 'boolean', description: 'Auto-submit toolbar', }, hide: { type: 'object', properties: { iOS: { type: 'boolean', description: 'Hide on iOS', }, web: { type: 'boolean', description: 'Hide on web', }, }, }, appLinks: { type: 'object', properties: { mainLink: { type: 'string', description: 'Main link name', }, }, }, }, }, features: { type: 'array', items: { type: 'string', }, description: 'Application features to enable', }, settings: { type: 'object', description: 'Application-specific settings (SAML, OIDC, etc.)', additionalProperties: true, }, credentials: { type: 'object', description: 'Application credentials configuration', additionalProperties: true, }, licensing: { type: 'object', properties: { seatCount: { type: 'number', description: 'Number of licenses', }, }, }, }, required: ['name', 'label', 'signOnMode'], }, }, { name: 'updateApp', description: 'Update an existing Okta application settings and configuration', inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'Application ID to update', }, name: { type: 'string', description: 'App integration name', }, label: { type: 'string', description: 'Display label for the application', }, status: { type: 'string', enum: ['ACTIVE', 'INACTIVE'], description: 'Application status', }, accessibility: { type: 'object', description: 'Accessibility settings', properties: { selfService: { type: 'boolean', description: 'Enable self-service application assignment', }, errorRedirectUrl: { type: 'string', description: 'Custom error page URL', }, loginRedirectUrl: { type: 'string', description: 'Custom login page URL', }, }, }, visibility: { type: 'object', description: 'Visibility settings', properties: { autoSubmitToolbar: { type: 'boolean', description: 'Auto-submit toolbar', }, hide: { type: 'object', properties: { iOS: { type: 'boolean', description: 'Hide on iOS', }, web: { type: 'boolean', description: 'Hide on web', }, }, }, appLinks: { type: 'object', properties: { mainLink: { type: 'string', description: 'Main link name', }, }, }, }, }, features: { type: 'array', items: { type: 'string', }, description: 'Application features to enable', }, settings: { type: 'object', description: 'Application-specific settings (SAML, OIDC, etc.)', additionalProperties: true, }, credentials: { type: 'object', description: 'Application credentials configuration', additionalProperties: true, }, licensing: { type: 'object', properties: { seatCount: { type: 'number', description: 'Number of licenses', }, }, }, }, required: ['appId'], }, }, { name: 'deleteApp', description: 'Delete (deactivate and remove) an Okta application', inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'Application ID to delete', }, }, required: ['appId'], }, }, { name: 'activateApp', description: 'Activate an inactive Okta application', inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'Application ID to activate', }, }, required: ['appId'], }, }, { name: 'deactivateApp', description: 'Deactivate an active Okta application', inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'Application ID to deactivate', }, }, required: ['appId'], }, }, { name: 'assignUserToApp', description: 'Assign a user to an application with optional app-specific profile and credentials', inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'Application ID', }, userId: { type: 'string', description: 'User ID to assign', }, profile: { type: 'object', description: 'App-specific user profile attributes', additionalProperties: true, }, credentials: { type: 'object', description: 'App-specific user credentials', properties: { userName: { type: 'string', description: 'Username for the app', }, password: { type: 'object', properties: { value: { type: 'string', description: 'Password value', }, }, }, }, }, }, required: ['appId', 'userId'], }, }, { name: 'assignGroupToApp', description: 'Assign a group to an application with optional priority and profile', inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'Application ID', }, groupId: { type: 'string', description: 'Group ID to assign', }, priority: { type: 'number', description: 'Assignment priority (0 is highest)', }, profile: { type: 'object', description: 'App-specific group profile attributes', additionalProperties: true, }, }, required: ['appId', 'groupId'], }, }, { name: 'removeUserFromApp', description: 'Remove a user assignment from an application', inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'Application ID', }, userId: { type: 'string', description: 'User ID to remove', }, sendEmail: { type: 'boolean', description: 'Send email notification to user', default: false, }, }, required: ['appId', 'userId'], }, }, { name: 'removeGroupFromApp', description: 'Remove a group assignment from an application', inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'Application ID', }, groupId: { type: 'string', description: 'Group ID to remove', }, }, required: ['appId', 'groupId'], }, }, { name: 'listAppUsers', description: 'List all users assigned to an application with pagination', inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'Application ID', }, limit: { type: 'number', description: 'Number of users to return per page', default: 50, minimum: 1, maximum: 500, }, after: { type: 'string', description: 'Cursor for pagination', }, q: { type: 'string', description: 'Search query', }, filter: { type: 'string', description: 'Filter expression', }, expand: { type: 'string', description: 'Expand response properties', }, }, required: ['appId'], }, }, { name: 'listAppGroups', description: 'List all groups assigned to an application with pagination', inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'Application ID', }, limit: { type: 'number', description: 'Number of groups to return per page', default: 20, minimum: 1, maximum: 200, }, after: { type: 'string', description: 'Cursor for pagination', }, q: { type: 'string', description: 'Search query', }, expand: { type: 'string', description: 'Expand response properties', }, }, required: ['appId'], }, }, { name: 'updateAppUser', description: "Update a user's app-specific profile or credentials", inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'Application ID', }, userId: { type: 'string', description: 'User ID', }, profile: { type: 'object', description: 'App-specific user profile attributes to update', additionalProperties: true, }, credentials: { type: 'object', description: 'App-specific user credentials to update', properties: { userName: { type: 'string', description: 'Username for the app', }, password: { type: 'object', properties: { value: { type: 'string', description: 'Password value', }, }, }, }, }, }, required: ['appId', 'userId'], }, }, ]; //# sourceMappingURL=definitions.js.map