UNPKG

okta-mcp-server

Version:

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

73 lines 2.38 kB
#!/usr/bin/env node import { spawn } from 'child_process'; // Simple test that sends JSON-RPC messages to a running server via stdio async function testClient() { console.log('Testing Okta MCP Server...\n'); // Spawn the server as a subprocess const server = spawn('node', ['dist/server.js'], { stdio: ['pipe', 'pipe', 'inherit'], env: process.env, }); let messageId = 1; // Helper to send JSON-RPC request function sendRequest(method, params) { const request = { jsonrpc: '2.0', id: messageId++, method, params: params || {}, }; console.log(`\nSending: ${method}`); server.stdin.write(JSON.stringify(request) + '\n'); } // Collect response data let buffer = ''; server.stdout.on('data', (data) => { buffer += data.toString(); const lines = buffer.split('\n'); buffer = lines.pop() || ''; for (const line of lines) { if (line.trim()) { try { const response = JSON.parse(line); if (response.result) { console.log('Response:', JSON.stringify(response.result, null, 2)); } else if (response.error) { console.error('Error:', response.error); } } catch (e) { // Not JSON, probably log output } } } }); // Wait for server to start await new Promise((resolve) => setTimeout(resolve, 1000)); // Send initialization sendRequest('initialize', { protocolVersion: '2024-11-05', capabilities: {}, clientInfo: { name: 'test-client', version: '1.0.0', }, }); await new Promise((resolve) => setTimeout(resolve, 500)); // List tools sendRequest('tools/list'); await new Promise((resolve) => setTimeout(resolve, 500)); // Call listUsers sendRequest('tools/call', { name: 'listUsers', arguments: { limit: 3 }, }); // Wait for responses await new Promise((resolve) => setTimeout(resolve, 2000)); // Clean up server.kill(); process.exit(0); } testClient().catch(console.error); //# sourceMappingURL=test-client.js.map