UNPKG

@makingchatbots/genesys-cloud-mcp-server

Version:

A Model Context Protocol (MCP) server exposing Genesys Cloud tools for LLMs, including sentiment analysis, conversation search, topic detection and more.

37 lines (36 loc) 1.24 kB
import { errorResult } from "../tools/utils/errorResult.js"; let isAuthenticated = false; async function authenticate(apiClient, configRetriever) { const config = configRetriever.getGenesysCloudConfig(); if (!config.success) { return { authenticated: false, reason: config.reason }; } const authConfig = config.value; try { apiClient.setEnvironment(authConfig.region); await apiClient.loginClientCredentialsGrant(authConfig.oAuthClientId, authConfig.oAuthClientSecret); } catch (e) { return { authenticated: false, reason: e instanceof Error ? e.message : String(e), }; } return { authenticated: true, }; } export const OAuthClientCredentialsWrapper = (configRetriever, apiClient) => { return (call) => async (input) => { if (!isAuthenticated) { const authResult = await authenticate(apiClient, configRetriever); if (authResult.authenticated) { isAuthenticated = true; } else { return errorResult(`Failed to authenticate with Genesys Cloud. Reason:\n${authResult.reason}`); } } return call(input); }; };