# outboundani/genesys-mcp architecture

> Architecture diagram of the GitHub repository outboundani/genesys-mcp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/outboundani/genesys-mcp
- Repository: https://github.com/outboundani/genesys-mcp

## Overview

genesys-mcp is a stateless MCP server that lets AI clients create and inspect Genesys Cloud resources. An authenticated client sends MCP tool requests to the Worker, which dispatches them into organization-management, Architect flow, outbound-cadence, or AVA capabilities; those actions use the Genesys Platform API. The AVA branch also supports knowledge authoring, chat, scripted testing, evaluation, and a server-side workspace. Setup pages and OAuth support access and configuration. The README documents capabilities beyond the sampled excerpts; edges are limited to documented relationships or references shown in the source index.

Main entry points: [`src/tools.js`](https://github.com/outboundani/genesys-mcp/blob/main/src/tools.js) (MCP tool dispatcher), [`src/ava-tools.js`](https://github.com/outboundani/genesys-mcp/blob/main/src/ava-tools.js) (AVA lifecycle tools), [`src/index.js`](https://github.com/outboundani/genesys-mcp/blob/main/src/index.js) (HTTP Worker), [`src/genesys.js`](https://github.com/outboundani/genesys-mcp/blob/main/src/genesys.js) (Genesys API client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and MCP"]
  node_worker["HTTP Worker<br/>[index.js]"]
  node_oauth["OAuth and auth<br/>[oauth.js]"]
  node_setup["Setup and landing UI<br/>[ui.js]"]
  node_config["Configuration<br/>[config.js]"]
end

subgraph group_core["Tool dispatch and API"]
  node_dispatcher["MCP tool dispatcher<br/>[tools.js]"]
  node_guidance["Operator guidance<br/>[about.js]"]
  node_api["Genesys API client<br/>[genesys.js]"]
  node_rules["API write rules<br/>[rules.js]"]
end

subgraph group_flows["Architect flows"]
  node_flowbuilder["Flow authoring and rendering<br/>[flows.js]"]
end

subgraph group_outbound["Outbound campaigns"]
  node_outboundtools["Outbound tools<br/>[tools.js]"]
  node_cadence["Cadence rendering<br/>[outbound.js]"]
end

subgraph group_ava["AVA lifecycle"]
  node_avatools["AVA lifecycle tools<br/>[ava-tools.js]"]
  node_avaengine["AVA validation and evaluation<br/>[ava.js]"]
  node_knowledge["Knowledge management<br/>[ava-knowledge.js]"]
  node_playbooks["AVA playbooks<br/>[ava-playbooks.js]"]
  node_workspace[("AVA workspace<br/>[ava.js]")]
end

node_client(("AI client"))
node_genesys["Genesys Cloud"]

node_client -->|"sends MCP requests"| node_worker
node_worker -->|"checks authorization"| node_oauth
node_worker -->|"serves setup pages"| node_setup
node_worker -->|"loads configuration"| node_config
node_worker -->|"dispatches tool calls"| node_dispatcher
node_dispatcher -->|"exposes instructions"| node_guidance
node_dispatcher -->|"calls API client"| node_api
node_dispatcher -->|"applies write rules"| node_rules
node_dispatcher -->|"delegates flow work"| node_flowbuilder
node_dispatcher -->|"handles outbound tools"| node_outboundtools
node_dispatcher -->|"dispatches AVA tools"| node_avatools
node_api -->|"makes Platform API calls"| node_genesys
node_outboundtools -->|"renders cadence"| node_cadence
node_avatools -->|"uses AVA helpers"| node_avaengine
node_avatools -->|"uses knowledge tools"| node_knowledge
node_avatools -->|"serves playbooks"| node_playbooks
node_avatools -.->|"stores workspace data"| node_workspace
node_avatools -->|"performs AVA operations"| node_api
node_knowledge -->|"manages Genesys knowledge"| node_api
node_flowbuilder -->|"publishes flow jobs"| node_api

click node_worker "https://github.com/outboundani/genesys-mcp/blob/main/src/index.js"
click node_oauth "https://github.com/outboundani/genesys-mcp/blob/main/src/oauth.js"
click node_setup "https://github.com/outboundani/genesys-mcp/blob/main/src/ui.js"
click node_config "https://github.com/outboundani/genesys-mcp/blob/main/src/config.js"
click node_dispatcher "https://github.com/outboundani/genesys-mcp/blob/main/src/tools.js"
click node_guidance "https://github.com/outboundani/genesys-mcp/blob/main/src/about.js"
click node_api "https://github.com/outboundani/genesys-mcp/blob/main/src/genesys.js"
click node_rules "https://github.com/outboundani/genesys-mcp/blob/main/src/rules.js"
click node_flowbuilder "https://github.com/outboundani/genesys-mcp/blob/main/src/flows.js"
click node_outboundtools "https://github.com/outboundani/genesys-mcp/blob/main/src/tools.js"
click node_cadence "https://github.com/outboundani/genesys-mcp/blob/main/src/outbound.js"
click node_avatools "https://github.com/outboundani/genesys-mcp/blob/main/src/ava-tools.js"
click node_avaengine "https://github.com/outboundani/genesys-mcp/blob/main/src/ava.js"
click node_knowledge "https://github.com/outboundani/genesys-mcp/blob/main/src/ava-knowledge.js"
click node_playbooks "https://github.com/outboundani/genesys-mcp/blob/main/src/ava-playbooks.js"
click node_workspace "https://github.com/outboundani/genesys-mcp/blob/main/src/ava.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_worker,node_oauth,node_setup,node_config,node_client toneBlue
class node_dispatcher,node_guidance,node_api,node_rules toneAmber
class node_flowbuilder toneMint
class node_outboundtools,node_cadence toneRose
class node_avatools,node_avaengine,node_knowledge,node_playbooks,node_workspace,node_genesys toneIndigo
```

## Components

### Access and MCP

- [HTTP Worker](https://github.com/outboundani/genesys-mcp/blob/main/src/index.js): `src/index.js`
- [OAuth and auth](https://github.com/outboundani/genesys-mcp/blob/main/src/oauth.js): `src/oauth.js`
- [Setup and landing UI](https://github.com/outboundani/genesys-mcp/blob/main/src/ui.js): `src/ui.js`
- [Configuration](https://github.com/outboundani/genesys-mcp/blob/main/src/config.js): `src/config.js`

### Tool dispatch and API

- [MCP tool dispatcher](https://github.com/outboundani/genesys-mcp/blob/main/src/tools.js): `src/tools.js`
- [Operator guidance](https://github.com/outboundani/genesys-mcp/blob/main/src/about.js): `src/about.js`
- [Genesys API client](https://github.com/outboundani/genesys-mcp/blob/main/src/genesys.js): `src/genesys.js`
- [API write rules](https://github.com/outboundani/genesys-mcp/blob/main/src/rules.js): `src/rules.js`

### Architect flows

- [Flow authoring and rendering](https://github.com/outboundani/genesys-mcp/blob/main/src/flows.js): `src/flows.js`

### Outbound campaigns

- [Outbound tools](https://github.com/outboundani/genesys-mcp/blob/main/src/tools.js): `src/tools.js`
- [Cadence rendering](https://github.com/outboundani/genesys-mcp/blob/main/src/outbound.js): `src/outbound.js`

### AVA lifecycle

- [AVA lifecycle tools](https://github.com/outboundani/genesys-mcp/blob/main/src/ava-tools.js): `src/ava-tools.js`
- [AVA validation and evaluation](https://github.com/outboundani/genesys-mcp/blob/main/src/ava.js): `src/ava.js`
- [Knowledge management](https://github.com/outboundani/genesys-mcp/blob/main/src/ava-knowledge.js): `src/ava-knowledge.js`
- [AVA playbooks](https://github.com/outboundani/genesys-mcp/blob/main/src/ava-playbooks.js): `src/ava-playbooks.js`
- [AVA workspace](https://github.com/outboundani/genesys-mcp/blob/main/src/ava.js): `src/ava.js`

### Other components

- **AI client**
- **Genesys Cloud**

## Connections

- AI client → HTTP Worker: sends MCP requests (evidence: `README.md`)
- HTTP Worker → OAuth and auth: checks authorization (evidence: `src/index.js`)
- HTTP Worker → Setup and landing UI: serves setup pages (evidence: `src/index.js`)
- HTTP Worker → Configuration: loads configuration (evidence: `src/index.js`)
- HTTP Worker → MCP tool dispatcher: dispatches tool calls (evidence: `src/index.js`)
- MCP tool dispatcher → Operator guidance: exposes instructions (evidence: `src/tools.js`)
- MCP tool dispatcher → Genesys API client: calls API client (evidence: `src/tools.js`)
- MCP tool dispatcher → API write rules: applies write rules (evidence: `src/tools.js`)
- MCP tool dispatcher → Flow authoring and rendering: delegates flow work (evidence: `src/tools.js`)
- MCP tool dispatcher → Outbound tools: handles outbound tools (evidence: `README.md`)
- MCP tool dispatcher → AVA lifecycle tools: dispatches AVA tools (evidence: `src/tools.js`)
- Genesys API client → Genesys Cloud: makes Platform API calls (evidence: `src/genesys.js`)
- Outbound tools → Cadence rendering: renders cadence (evidence: `src/tools.js`)
- AVA lifecycle tools → AVA validation and evaluation: uses AVA helpers (evidence: `src/ava-tools.js`)
- AVA lifecycle tools → Knowledge management: uses knowledge tools (evidence: `src/ava-tools.js`)
- AVA lifecycle tools → AVA playbooks: serves playbooks (evidence: `src/ava-tools.js`)
- AVA lifecycle tools → AVA workspace: stores workspace data (evidence: `src/ava-tools.js`)
- AVA lifecycle tools → Genesys API client: performs AVA operations (evidence: `src/ava-tools.js`)
- Knowledge management → Genesys API client: manages Genesys knowledge (evidence: `src/ava-knowledge.js`)
- Flow authoring and rendering → Genesys API client: publishes flow jobs (evidence: `README.md`)
