okta-mcp-server
Version:
Model Context Protocol (MCP) server for Okta API operations with support for bulk operations and caching
196 lines • 6.92 kB
JavaScript
/**
* Audit tool definitions for MCP
*/
export const auditTools = [
{
name: 'queryAuditLogs',
description: 'Query audit logs with filters and pagination',
inputSchema: {
type: 'object',
properties: {
startTime: {
type: 'string',
format: 'date-time',
description: 'Start time for the query (ISO 8601 format)',
},
endTime: {
type: 'string',
format: 'date-time',
description: 'End time for the query (ISO 8601 format)',
},
actors: {
type: 'array',
items: { type: 'string' },
description: 'Filter by actor IDs',
},
actions: {
type: 'array',
items: { type: 'string' },
description: 'Filter by action types (e.g., tool.call, resource.read)',
},
resources: {
type: 'array',
items: { type: 'string' },
description: 'Filter by resource IDs',
},
status: {
type: 'array',
items: {
type: 'string',
enum: ['success', 'failure', 'error'],
},
description: 'Filter by action result status',
},
limit: {
type: 'number',
minimum: 1,
maximum: 10000,
default: 100,
description: 'Maximum number of entries to return',
},
offset: {
type: 'number',
minimum: 0,
default: 0,
description: 'Number of entries to skip',
},
orderBy: {
type: 'string',
enum: ['timestamp', 'duration'],
default: 'timestamp',
description: 'Field to order results by',
},
orderDirection: {
type: 'string',
enum: ['asc', 'desc'],
default: 'desc',
description: 'Order direction',
},
},
},
},
{
name: 'getAuditStatistics',
description: 'Get audit log statistics for a time period',
inputSchema: {
type: 'object',
properties: {
startTime: {
type: 'string',
format: 'date-time',
description: 'Start time for statistics (ISO 8601 format)',
},
endTime: {
type: 'string',
format: 'date-time',
description: 'End time for statistics (ISO 8601 format)',
},
},
required: ['startTime', 'endTime'],
},
},
{
name: 'exportAuditLogs',
description: 'Export audit logs in various formats',
inputSchema: {
type: 'object',
properties: {
format: {
type: 'string',
enum: ['json', 'csv', 'siem'],
description: 'Export format',
},
startTime: {
type: 'string',
format: 'date-time',
description: 'Start time for export (ISO 8601 format)',
},
endTime: {
type: 'string',
format: 'date-time',
description: 'End time for export (ISO 8601 format)',
},
filters: {
type: 'object',
description: 'Additional filters (same as queryAuditLogs)',
properties: {
actors: { type: 'array', items: { type: 'string' } },
actions: { type: 'array', items: { type: 'string' } },
resources: { type: 'array', items: { type: 'string' } },
status: { type: 'array', items: { type: 'string' } },
},
},
includeHeaders: {
type: 'boolean',
default: true,
description: 'Include headers in CSV export',
},
},
required: ['format', 'startTime', 'endTime'],
},
},
{
name: 'checkAuditIntegrity',
description: 'Check integrity of audit logs for tampering',
inputSchema: {
type: 'object',
properties: {
hoursBack: {
type: 'number',
minimum: 1,
maximum: 720, // 30 days
default: 24,
description: 'Number of hours to check back from now',
},
},
},
},
{
name: 'generateComplianceReport',
description: 'Generate a compliance report for a specific standard',
inputSchema: {
type: 'object',
properties: {
standard: {
type: 'string',
enum: ['SOC2', 'HIPAA', 'GDPR', 'PCI-DSS', 'ISO27001'],
description: 'Compliance standard to report on',
},
startTime: {
type: 'string',
format: 'date-time',
description: 'Start time for the report period',
},
endTime: {
type: 'string',
format: 'date-time',
description: 'End time for the report period',
},
},
required: ['standard', 'startTime', 'endTime'],
},
},
{
name: 'getAuditMetrics',
description: 'Get real-time audit metrics and monitoring data',
inputSchema: {
type: 'object',
properties: {
timeWindow: {
type: 'string',
enum: ['1h', '6h', '24h', '7d', '30d'],
default: '24h',
description: 'Time window for metrics',
},
includeTopN: {
type: 'number',
minimum: 1,
maximum: 100,
default: 10,
description: 'Number of top items to include in each category',
},
},
},
},
];
//# sourceMappingURL=definitions.js.map