Genesys Cloud - Developer Community!

 View Only

Sign Up

  • 1.  genesys-mcp: Open-source MCP bridge for Claude Code (Or any LLM, really)→ Genesys Cloud

    Posted 20 days ago

    Hey all! 

    Posted this over in the general community but might be better here!

    I've open-sourced an MCP server I built for my own contact-centre ops work and it's been valuable enough that I figured the wider Genesys community might want it. Sharing here for feedback and to invite contributors.

    Repo: https://github.com/laggyzee/genesys-mcp Licence: MIT

    What is it

    genesys-mcp is a local stdio Model Context Protocol server that exposes a curated, read-only set of Genesys Cloud tools to MCP-compatible AI clients (Claude Code, Cursor, Continue, etc.). Once installed, you can ask the LLM things like:

    • "Pull last week's abandon rate by queue"
    • "What's the live wallboard look like for these queues?"
    • "Find all customers who called us 3+ times this week"
    • "Did anyone go over their break or lunch this week?"
    • "Pull a quality snapshot for agent X compared to peers"
    • "What's the EWT on the Sales queue right now?"

    …and the LLM picks the right Genesys API endpoints, makes the calls, and writes up the answer. Everything is read-only - the OAuth client uses Client Credentials with *:readonly scopes, so there's no write surface even via the escape hatch.

    It's been replacing a lot of the "log into Admin → run a report → paste numbers into a spreadsheet" loop that ops teams do every day.

    How it works

    • Python (FastMCP) server running locally over stdio
    • Official PureCloudPlatformClientV2 SDK for typed API access
    • Generic call_genesys_api escape hatch for endpoints not yet wrapped, with auto 401 retry
    • Internal id → name cache (queues, users, wrap-up codes) so most responses come back human-readable
    • Multi-region - Sydney, Virginia, Ireland out of the box; trivial to add others

    Tool surface

    About 35 tools across these areas:

    • Directory - list/search queues, users, skills, wrap-up codes; per-user routing status & live presence
    • Real-time analytics - queue_observation, queue_estimated_wait_time (the AI-adjusted-AHT model), queue_performance with derived answered/abandoned/service_level_pct fields that match the Performance UI columns
    • Conversations - search, full detail, recording metadata, signed media-download URLs
    • Presence sessions - break/meal/away analysis wrapping the analytics/users/details async-jobs flow into a single call
    • Composition reports - repeat_caller_report, break_overrun_report, agent_quality_snapshot, live_wallboard (each chains 2–4 endpoints into ops-ready output)
    • Speech & text analytics (needs speech-and-text-analytics:readonly) - conversation summaries, sentiment, transcript URLs
    • External contacts (needs external-contacts:readonly) - phone/email → CRM record lookup
    • Workforce management (needs workforce-management:readonly) - management-unit topology, agent adherence explanations, combined adherence-vs-presence review
    • call_genesys_api - generic escape hatch for any /api/v2/* endpoint

    Full table in the README.

    Setup (5-min install)

    # 1. Clone
    git clone https://github.com/laggyzee/genesys-mcp
    cd genesys-mcp
    
    # 2. Create an OAuth Client Credentials client in Genesys Admin
    #    Required scopes: analytics:readonly, conversations:readonly,
    #    recordings:readonly, users:readonly, routing:readonly
    #    Optional: speech-and-text-analytics:readonly, external-contacts:readonly,
    #    workforce-management:readonly
    
    # 3. Set env vars
    cp .env.example ~/.config/genesys-mcp.env
    chmod 600 ~/.config/genesys-mcp.env
    # edit and paste your client_id, client_secret, region
    
    # 4. Install deps
    uv sync   # or: pip install -e .
    
    # 5. Wire into your MCP client
    

    For Claude Code, add to ~/.claude/mcp.json:

    {
      "mcpServers": {
        "genesys": {
          "command": "uv",
          "args": ["run", "--directory", "/path/to/genesys-mcp", "python", "-m", "genesys_mcp.server"],
          "env": {
            "GENESYS_CLIENT_ID": "...",
            "GENESYS_CLIENT_SECRET": "...",
            "GENESYS_REGION": "ap-southeast-2"
          }
        }
      }
    }
    

    Restart Claude Code and you're done.

    Example sessions

    A few real prompts I've used this week:

     

    "Pull EWT for our 6 voice queues right now."

     

    Returns Genesys' own model output (AI-ADJUSTED-AHT formula) per queue per media type.

     
     

    "Find all customers who called more than 3 times in the last 7 days, group by queue, show connect rate."

     

    Submits the conversation-details async job, paginates, aggregates by ANI, returns ranked list with queue mix.

     
     

    "Pull a quality snapshot for [agent] vs three peers - flag silent transcripts and excessive holds."

     

    Combines aggregate stats + conversation details + wrap-up note analysis. Detects calls where the auto-summary indicates no recorded dialogue, calls where hold-time exceeded talk-time, and the agent's own-note discipline (% calls with their own notes vs. relying on auto-summary only).

     
     

    "Did anyone overrun a break or lunch this week, and was it explained in WFM?"

     

    Cross-checks presence sessions (BREAK/MEAL durations vs. configurable targets) against WFM adherence explanations. Flags unexplained overruns separately from approved variance.

     

    Things on the roadmap (PRs welcome)

    • Web messaging transcript wrapper (the /api/v2/conversations/messages/{id}/messages/bulk flow currently needs the escape hatch)
    • Full async historical adherence (scheduled vs. actual percentages with shift overlay)
    • Quality evaluations / scorecards (quality:readonly)
    • Outbound campaign progress (outbound:readonly)

    Why share?

    Building this saved me probably 5–10 hours a week on routine ops reporting and made it possible to answer things like "show me agents whose wrap-up note discipline dropped this week" in one prompt instead of an afternoon of clicking. If anyone in this community gets the same lift out of it, that's worth more than me keeping it private.

    Happy to take questions, PRs, or feedback.


    Repo: https://github.com/laggyzee/genesys-mcp

    Security note: The OAuth client credentials in this setup connect your MCP server to your tenant. The server runs locally on your machine and stores credentials only in your env vars or a local gitignored .env. Nothing leaves your machine apart from the API calls Claude makes to Genesys on your behalf. Use a dedicated read-only OAuth role per the README - don't reuse a high-privilege client.


    #Integrations
    #PlatformAPI
    #PlatformCLI
    #PlatformSDK

    ------------------------------
    Lawrence Drayton
    Consultant
    ------------------------------


  • 2.  RE: genesys-mcp: Open-source MCP bridge for Claude Code (Or any LLM, really)→ Genesys Cloud

    Posted 20 days ago

    Hi @Lawrence Drayton. Really interesting approach, and congratulations on sharing this with the community. This opens up a very strong opportunity for integrations and operational insights on top of Genesys Cloud, especially in analytics and copiloting use cases. Looking forward to seeing how this evolves and to exploring it further.



    ------------------------------
    Fernando Sotto dos Santos
    Consultor de Atendimento Senior Grupo Casas Bahia
    ------------------------------



  • 3.  RE: genesys-mcp: Open-source MCP bridge for Claude Code (Or any LLM, really)→ Genesys Cloud

    Posted 19 days ago

    Sounds really interesting. Nice work.

    I know @Lucas Woodward was looking at something similar.



    ------------------------------
    James Dunn
    Telecoms Specialist
    ------------------------------



  • 4.  RE: genesys-mcp: Open-source MCP bridge for Claude Code (Or any LLM, really)→ Genesys Cloud

    Posted 19 days ago

    Amazing work @Lawrence Drayton! You've got a load of really useful tools.

    Do you interact with the metrics using Claude Code, or the Claude Desktop App? I'd love to see what these metrics like these looked like with Claude's Interactive Charts, produced by the latter.



    ------------------------------
    Lucas Woodward
    Winner of Orchestrator of the Year, Developer (2025)

    LinkedIn - https://www.linkedin.com/in/lucas-woodward-the-dev
    Newsletter - https://makingchatbots.com
    ------------------------------



  • 5.  RE: genesys-mcp: Open-source MCP bridge for Claude Code (Or any LLM, really)→ Genesys Cloud

    Posted 19 days ago

    Thank you@Lucas Woodward

    once connected it will work in either code or regular chat, basically wherever you wire it in (though I haven't personally tested it, but have had other users tell me it's worked)

    I have had it do complete agent reviews and asked it to produce fully formatted documents for distribution to the leaders in the team. I haven't tried any interactive charts yet but keen to try that tomorrow now! 

    next update to the mcp js being pushed tomorrow with more tools and refinements.

    Great to connect! I actually use your platform-api skill and suggest its use as part of this mcp! 



    ------------------------------
    Lawrence Drayton
    Consultant
    ------------------------------



  • 6.  RE: genesys-mcp: Open-source MCP bridge for Claude Code (Or any LLM, really)→ Genesys Cloud

    Posted 19 days ago

    The interactive charts always look really whizzy. Please do share screenshots of what it produces with this data, I'd love to see them.

    I love the idea of using it with Claude Code specifically (as you say it works with all other clients though). Claude Code is so easy to allow you to quickly iterate on reports, or even answer emails with relevant metrics automatically - its got a great ecosystem. It's a brave new world!

    Thank you for linking to my Platform API skill. It's addictive creating these things!



    ------------------------------
    Lucas Woodward
    Winner of Orchestrator of the Year, Developer (2025)

    LinkedIn - https://www.linkedin.com/in/lucas-woodward-the-dev
    Newsletter - https://makingchatbots.com
    ------------------------------



  • 7.  RE: genesys-mcp: Open-source MCP bridge for Claude Code (Or any LLM, really)→ Genesys Cloud

    Posted 19 days ago
    Edited by Lawrence Drayton 19 days ago
      |   view attached

    Sure thing! Here are a few examples :) 

    I've also attached an HTML page/report it built based on one input/question, which is fantastic, zero manual work !

    image



    ------------------------------
    Lawrence Drayton
    Consultant
    ------------------------------

    Attachment(s)



  • 8.  RE: genesys-mcp: Open-source MCP bridge for Claude Code (Or any LLM, really)→ Genesys Cloud

    Posted 13 days ago
      |   view attached

    genesys-mcp v0.2.1 - UI-parity fixes, three new tools, and a one prompt monthly report

    Update on the open-source Genesys Cloud ↔ Claude Code MCP bridge.

    A few weeks of intensive iteration since v0.1. A lot of useful stuff landed - and a chunk of v0.1 was producing wrong numbers, so this post is also a "please re-run" notice.

    Repo: https://github.com/laggyzee/genesys-mcp · Release: v0.2.1


    TL;DR

    • agent_performance and queue_performance now match the Genesys "Performance" UI to the unit. They didn't in v0.1 - by a lot. If you made decisions off v0.1 numbers, re-run.
    • Three new tools: repeat_caller_deep_dive (the why, not just the who), wfm_schedule (scheduled vs WFM-required hours), and AWAY/pre-break tracking added to break_overrun_report.
    • cc-monthly-report skill: one prompt → a self-contained HTML report covering volume, themes, repeat callers, workforce, performance leverage, demand-vs-capacity, and a synthesised "more staff or better staff?" verdict.
    • STA enrichment fixed - went from 0% to 99% data coverage by switching to the right endpoint.

    What v0.1 was getting wrong

    Worth being upfront. agent_performance was hitting the wrong analytics endpoint and silently returning empty for any useful metric. The fallback I tried only matched conversations where Genesys treats the user as a primary dimension - for one agent who actually answered ~800 voice calls, my tool returned 97. Order-of-magnitude wrong.

    The fix was to mirror the exact request the Genesys UI sends - outer and of or clauses, groupBy=[userId, mediaType], tAnswered.count as the canonical metric (matches the UI "Answer" column). Same shape applied to queue_performance. Numbers now reconcile to the unit.

    Same pattern hit speech-and-text-analytics - the SDK helper endpoints return empty even when STA is fully enabled; the underscored /speechandtextanalytics/conversations/{id} returns everything. Coverage on answered calls jumped 0% → 99%.

    If you took v0.1 numbers as given, re-run with v0.2.


    repeat_caller_deep_dive - why people keep calling

    repeat_caller_report (v0.1) tells you who's calling repeatedly. The deep-dive layers the why: AI disposition, AI outcome (Resolved / Mid Flight / Unresolved / Escalated), expected-fix tag, sentiment trajectory, and last-call summary text. Each repeater gets a heuristic recommended_action (callback / escalate / route review / monitor).

    The org rollup includes an unresolved_repeaters list - every repeater whose answered calls are >50% not-Resolved, sorted by unresolved share. That's the actionable list for an outbound callback team.

    If you don't have an AI integration writing structured outcomes back to Genesys, the funnel + sentiment layers still work; the disposition / outcome dimensions just go quiet.


    wfm_schedule - "do we need to hire?"

    Stitches three Genesys WFM endpoints to give a daily series of {scheduled_hours, required_hours, gap_hours}. Positive gap = understaffed for the WFM forecast.

    In our test month: net excess 684 hours overall, but 6 specific peak days under-staffed by a cumulative 130 hours. Worst day needed 162h, was scheduled 72h - same day SL collapsed to 7%. Not a headcount problem; a schedule-shape problem the WFM forecast already predicted.


    break_overrun_report - AWAY + pre-break added

    Previously tracked BREAK and MEAL overruns. Now also surfaces AWAY time and pre-break overruns - the org-level "drain interactions before going on break" presence that agents auto-shift into ~10 min before scheduled breaks. Past 10 min it stops being wind-down and becomes idle time.

    Test month: ~63 hours of pre-break overrun across 31 days. One agent contributed 471 min over 33 instances. Significant handle capacity the standard break/meal view doesn't see.


    cc-monthly-report - one prompt, full report

    A Claude Code skill that turns the whole tool surface into a single-prompt monthly report. "Do the monthly CC report for April 2026" → self-contained HTML at ~/Documents/CC-{period}.html. Sections: exec summary · volume & funnel · themes · repeat callers · workforce (AHT vs targets, break behaviour) · performance leverage · recommended actions.

    The performance leverage section is the one I'd point to first. It quantifies "phantom capacity" (handle hours you'd recover if every agent hit AHT target) plus "FCR drag" (handle hours wasted on repeat calls), then compares the total against the WFM-derived peak shortfall - and prints a single verdict: "more staff, or better staff?"

    For our test month the answer was "don't hire - coach + reshape". The team had 844 hours of coachable capacity (5.3 FTE equivalent) vs only 129 hours of peak shortfall (0.8 FTE). Coaching the top 5 AHT offenders alone unlocks 381 hours - 3× the peak shortfall.

    A fully anonymised version of the April report is attached to this post.


    Install

    git clone https://github.com/laggyzee/genesys-mcp.git
    cd genesys-mcp
    cp .env.example ~/.config/genesys-mcp.env
    # edit env: Client Credentials OAuth client + region
    uv sync
    claude mcp add --scope user genesys ~/code/genesys-mcp/run.sh
    
    # install the companion skill (lives in same repo as of v0.2.1)
    ln -s "$(pwd)/skills/cc-monthly-report" ~/.claude/skills/cc-monthly-report
    

    OAuth scopes (read-only): analytics, conversations, recordings, users, routing, speech-and-text-analytics, workforce-management, external-contacts, presence-definitions:view, audits:audit:view.

    Issues / PRs / comments welcome: https://github.com/laggyzee/genesys-mcp



    ------------------------------
    Lawrence Drayton
    Consultant
    ------------------------------

    Attachment(s)



  • 9.  RE: genesys-mcp: Open-source MCP bridge for Claude Code (Or any LLM, really)→ Genesys Cloud

    Posted 12 days ago

    genesys-mcp v0.4.0 - making it actually usable on your tenant (auto-onboarding wizard included)

    If you cloned genesys-mcp over the past few weeks and tried to run the cc-monthly-report skill, you probably hit a wall: my brand names, queue naming pattern, WFM unit UUIDs, pre-break presence id, and AHT targets were all baked into the Python and the skill prose. Tenant-coupled in a way that made it unusable anywhere except my contact centre.

    v0.4.0 fixes that. Released today.

    What was wrong

    The cc-monthly-report skill (and its build_report.py companion) had constants like:

    VOICE_AHT_TARGET_S = 285
    MSG_AHT_TARGET_S = 660
    SPECIALIST_ROLES = {"Specialist", "Customer Service Specialist"}
    

    …plus four specific brand names burned into a synthesis loop, plus WFM business-unit + management-unit UUIDs in the SKILL.md prose, plus a hard-coded "Pre Break" presence id. To use the skill against a different tenant, you'd have had to read 1,000 lines of Python and hand-edit it.

    What v0.4.0 does

    1. One per-user YAML file at ~/.config/genesys-mcp/tenant.yaml holds everything tenant-specific:

    tenant:
      name: "Acme Contact Centre"
      short_name: "acme"
    brands:
      names: ["Brand1", "Brand2", ...]
    queues:
      name_pattern: "{brand} - {function}"   # or "{brand} - {channel} - {function}"
      channels: ["Voice", "Chat"]
      functions: ["Activation", "Billing", "Complaints", "General", "Retention", "Sales", "Technical Support"]
      skip_substrings: ["Holding", "Internal", "Outbound Email", "ZZZ_"]
    management_units:
      ids: ["..."]
    business_unit:
      id: "..."
    presence:
      pre_break_organisation_presence_id: "..."
    specialist_roles: ["Specialist", "Customer Service Specialist"]
    targets:
      voice_aht_s: 285
      message_aht_s: 660
      acw_s: 15
      pre_break_min: 10
      fte_hours_per_month: 160
    reports:
      output_dir: "~/Documents"
      filename_pattern: "{tenant}-CC-{period}.html"
    

    Pydantic-validated. Path-by-path errors if you typo a field. The MCP server itself doesn't need this - only the dependent skills do.

    2. New skill: genesys-tenant-setup - a guided onboarding wizard. Ask Claude "set up genesys mcp for my tenant" and it:

    • Auto-discovers queue naming pattern (2-segment vs 3-segment, by parsing real queue names with a confidence rating), brand list, customer-facing functions, skip-substring suggestions, WFM management units, pre-break presence (fuzzy name match), and specialist-role candidates from the user title histogram.
    • Asks ~6 conversational questions for the policy bits - tenant display name, AHT targets, which MUs to include, output filename pattern.
    • Validates and saves the result.

    The auto-discovery script reads only - it never writes to your tenant.

    Why I bothered building the wizard

    When I migrated my own hardcoded values into the new YAML schema, I introduced two bugs in my own config:

    1. I wrote brands: ["Members"] but my actual queue prefix is "Members Mobile" - would have silently dropped 11 queues from the report.
    2. I wrote name_pattern: "{brand} - {channel} - {function}" but my queues are actually "{brand} - {function}" - channel isn't in the queue name, it's the mediaType from analytics.

    If the author of the skill makes those mistakes inferring from his own setup, anyone forking is going to hit the same class of bug. The wizard prevents both: it inspects real queue names rather than defaulting to a guess.

    Migration

    If you've been running v0.3.x successfully, your existing setup keeps working unchanged when you pull v0.4.0. The skill will look for ~/.config/genesys-mcp/tenant.yaml on next run - generate it via the wizard, or copy skills/cc-monthly-report/tenant.example.yaml and edit by hand.

    Caveats / out-of-scope

    • Multi-language presence labels - wizard picks en_US first; non-English primary locales may need to set the pre-break presence id manually.
    • Non-standard queue separators (e.g. _ instead of -) - currently hard-coded, will fall through to "no pattern detected" and need manual entry.
    • The hand-written narrative sections (Coverage / What worked / What went wrong / Recommended actions) that I add to my leadership-circulated reports are still hand-written - the skill produces 6 data sections; I write the analytical sections on top. A v0.5.0 may add LLM-driven narrative synthesis.

    Links

    If you've cloned this and run into anything weird, raise an issue. Particularly interested in tenants where the auto-discovery undershoots (different queue conventions, multi-language presences, etc.) - those are the cases that improve the heuristics.



    ------------------------------
    Lawrence Drayton
    Consultant
    ------------------------------



  • 10.  RE: genesys-mcp: Open-source MCP bridge for Claude Code (Or any LLM, really)→ Genesys Cloud

    Posted 2 days ago

    genesys-mcp v0.5.0 - coaching ecosystem (3 new tools + a new skill)

    Repo: https://github.com/laggyzee/genesys-mcp · Release: v0.5.0


    What's new in v0.5

    Three new MCP tools and a second companion skill - cc-coaching-prep - that turns 1:1 prep into a one-prompt HTML brief.

    • qa_evaluations - first wrapping of /api/v2/quality/*. Per-agent QA scores, pass rates, critical-pass rates, evaluator workload rollup. Needs quality:readonly; soft-fails cleanly without it.
    • agent_coaching_pack - composition tool: performance vs targets, peer-median comparison, sentiment trajectory, QA scores, wrap-up discipline, top flagged calls, heuristic top-3 coaching focus with concrete evidence. Tenant-aware via tenant.yaml.
    • routing_diagnostic - answers "why did this call route the way it did?" for a specific conversation. IVR → queue → agent path with durations, eligible-agent counts (Genesys-provided at routing time), outcome classification, queue routing rules. Supervisors currently spelunk through queue configs and routing flow audit logs for this - now it's one tool call.

    And the new skill stitches them together for the use-case that triggered the build: monthly coaching prep.


    qa_evaluations - the gap we've been ignoring

    The MCP had wrappings for analytics, conversations, WFM, STA, presence, external contacts - but nothing for Quality Management. v0.5 fixes that.

    qa_evaluations(user_ids=[...], interval="2026-04-01/2026-05-01")
    

    Returns per-user avg score, pass rate, critical-pass rate, last-evaluated, plus the raw evaluation rows (form, evaluator, score, conversation id). Optional per-question detail + evaluator comments via include_question_detail=True - opt-in because the comments can be PII.

    Sharp edge worth knowing about: the Genesys SDK helper get_quality_evaluations_query() returns evaluations with an empty answers block by default. You have to pass expand_answer_total_scores=True to actually get scores back. The MCP tool sets that internally so you don't have to think about it, but anyone building their own integration should know.


    agent_coaching_pack - the composition

    The headline tool. One call, returns everything a Team Leader needs for 1:1 prep:

    {
      "agent": {"name": "...", "title": "...", "manager_name": "..."},
      "performance": {
        "target": {"voice_aht_s": 330.1, "voice_aht_vs_target_pct": 15.8, ...},
        "peer_medians": {"voice_aht_s": 319.5, "total_handle_hours": 31.8, ...}
      },
      "sentiment": {"avg": 0.365, "samples": 56},
      "quality": {"scope_available": true, "summary": {"avg_score": 96.3, ...}},
      "wrap_discipline": {"note_rate": 0.93, "top_dispositions": [...]},
      "flagged_calls": {
        "total_flagged": 166,
        "top": [
          {"conversation_id": "...", "handle_s": 1468, "sentiment_score": -0.82,
           "flag_reasons": ["negative sentiment -0.82", "AHT +133% over target"]},
          ...
        ]
      },
      "recommended_focus": [
        {"rank": 1, "area": "Message AHT",
         "headline": "Message AHT 781s vs target 660s (+18%) - 6.2 handle-hours over target this period"},
        ...
      ]
    }
    

    The flagged-calls heuristic combines sentiment-drop magnitude, hold ratio, AHT excess, and wrap-up-note presence into a composite flag score. Thresholds come from tenant.yaml.coaching.flagged_call_thresholds - defaults are sane (sentiment drop ≥ 0.5, silent ≥ 30s, AHT ≥ 20% over target).

    Gracefully degrades: no quality:readonly → QA section reports scope_available: false; no STA → sentiment empty; the rest always populates.


    routing_diagnostic - the supervisor magnet

    Pick any conversation_id and get a structured trace:

    path:
      ivr_or_system    0.1s
      ivr_or_system    0.0s
      ivr_or_system   40.2s
      queue_wait       0.5s | eligible: [3]
      agent_handle   146.5s | eligible: [3]
    
    outcome: answered ("Call connected to an agent and was answered.")
    timing: 0.5s in queue, 0.5s to first answer
    queues_visited: Coles - Retention (29 members / 29 eligible)
    

    Or on an abandoned call you'd see the wait time, the abandon flag, and which queue's eligibility was the problem.

    Limitations honest up front: v0.5 ships conversation_id mode only. Aggregate mode ("show me all this week's abandons by failure-mode") is the v0.5.x follow-up - it needs a different endpoint shape. Eligible-agent counts on the path are Genesys-provided session-level (accurate for the moment of the call); the queue-level eligibility_now is current-state and most useful for recent failures.


    Companion skill - cc-coaching-prep

    Same pattern as cc-monthly-report: one prompt → self-contained HTML. "Prep coaching for Anthony for the last 4 weeks" drops the brief at ~/Documents/coaching-anthony-kha-2026-04.html.

    Same visual idiom - colour-coded vs-target pills (+15% warn, +45% bad), peer-comparison badges, KPI cards. Sections:

    1. Performance vs targets
    2. Peer comparison (same-role peers, peer-median for each KPI)
    3. Sentiment & quality (QA scores + sentiment trajectory)
    4. Wrap-up & handling
    5. Top flagged calls (heuristic, with transcript-link conversation ids)
    6. Recommended coaching focus (heuristic top-3)

    Talking points (the LLM-synthesised conversation-starter list) come back in chat - not embedded in the HTML, so they stay fresh between runs.


    Install

    If you ran v0.2+:

    cd ~/code/genesys-mcp && git pull && uv sync
    
    # install the new skill
    ln -s "$(pwd)/skills/cc-coaching-prep" ~/.claude/skills/cc-coaching-prep
    
    # add the new optional OAuth scope for the QA section to populate
    # Genesys Admin → Integrations → OAuth → your client's role → add `quality:readonly`
    

    If you're new:

    git clone https://github.com/laggyzee/genesys-mcp.git
    cd genesys-mcp
    cp .env.example ~/.config/genesys-mcp.env
    # edit env file with your client credentials
    uv sync
    claude mcp add --scope user genesys ~/code/genesys-mcp/run.sh
    
    # install the skills (run genesys-tenant-setup first to populate tenant.yaml)
    ln -s "$(pwd)/skills/cc-monthly-report" ~/.claude/skills/cc-monthly-report
    ln -s "$(pwd)/skills/cc-coaching-prep" ~/.claude/skills/cc-coaching-prep
    ln -s "$(pwd)/skills/genesys-tenant-setup" ~/.claude/skills/genesys-tenant-setup
    

    OAuth scopes (read-only): analytics, conversations, recordings, users, routing, speech-and-text-analytics, workforce-management, external-contacts, quality, presence-definitions:view, audits:audit:view.


    What's next

    A few candidates for v0.6:

    • routing_diagnostic aggregate mode - "top abandon causes this week"
    • LLM-driven narrative synthesis for cc-monthly-report's 4 hand-written sections
    • Outbound campaign performance - large gap, big slice of the community but a separate domain wrapper


    ------------------------------
    Lawrence Drayton
    Consultant
    ------------------------------