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
JavaScript
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