# souravpattnaik431/javapptmcpserver architecture

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

- Interactive diagram: https://gitdiagram.com/souravpattnaik431/javapptmcpserver
- Repository: https://github.com/souravpattnaik431/javapptmcpserver

## Overview

This Java Spring AI MCP server lets an AI assistant create and refine PowerPoint decks, check them, preview rendered slides, and save or download the result. The main authoring path runs through presentation lifecycle management, slide content and specialized layouts, then optional styling and quality audits; rendering and export provide review and delivery. README capabilities also include structural shapes and tables, speaker notes, templates, and auto-fix. The excerpts are partial, so service-to-service links are limited to documented dispatch and evidenced state access.

Main entry points: [`src/main/java/org/spring/microservices/pptmcpserver/config/McpServerConfig.java`](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/config/McpServerConfig.java) (MCP server), [`src/main/java/org/spring/microservices/pptmcpserver/state/PresentationStateManager.java`](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/state/PresentationStateManager.java) (Presentation state), [`src/main/java/org/spring/microservices/pptmcpserver/service/DesignService.java`](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/DesignService.java) (Design and themes), [`src/main/java/org/spring/microservices/pptmcpserver/service/RenderService.java`](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/RenderService.java) (Slide rendering)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_protocol["MCP access"]
  node_mcp["MCP server"]
end

subgraph group_authoring["Presentation authoring"]
  node_lifecycle["Presentation lifecycle"]
  node_content["Slide content"]
  node_templates["Layout templates"]
  node_structure["Shapes and tables"]
end

subgraph group_quality["Review and design"]
  node_design["Design and themes<br/>[DesignService.java]"]
  node_guardrails["Quality audits"]
  node_color["Color parsing<br/>[ColorHelper.java]"]
end

subgraph group_delivery["Preview and delivery"]
  node_render["Slide rendering<br/>[RenderService.java]"]
  node_download["HTTP download"]
  node_imagefiles[("Rendered images")]
end

subgraph group_state["Deck state"]
  node_state["Presentation state"]
  node_pptx[("PPTX files")]
end

node_assistant(("AI assistant"))

node_assistant -->|"calls tools"| node_mcp
node_mcp -->|"dispatches"| node_lifecycle
node_mcp -->|"dispatches"| node_content
node_mcp -->|"dispatches"| node_templates
node_mcp -->|"dispatches"| node_structure
node_mcp -->|"dispatches"| node_design
node_mcp -->|"dispatches"| node_guardrails
node_mcp -->|"dispatches"| node_render
node_lifecycle -->|"registers decks"| node_state
node_content -->|"reads and updates"| node_state
node_templates -->|"reads and updates"| node_state
node_structure -->|"reads and updates"| node_state
node_design -->|"reads and updates"| node_state
node_guardrails -->|"audits and fixes"| node_state
node_render -->|"reads decks"| node_state
node_download -->|"loads deck"| node_state
node_state -->|"autosaves"| node_pptx
node_render -->|"writes previews"| node_imagefiles
node_design -->|"parses colors"| node_color
node_assistant -.->|"requests download"| node_download

click node_mcp "https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/config/McpServerConfig.java"
click node_lifecycle "https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/PresentationService.java"
click node_content "https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/SlideContentService.java"
click node_templates "https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/LayoutTemplateService.java"
click node_structure "https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/StructuralElementService.java"
click node_design "https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/DesignService.java"
click node_guardrails "https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/GuardrailService.java"
click node_render "https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/RenderService.java"
click node_download "https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/controller/PresentationDownloadController.java"
click node_state "https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/state/PresentationStateManager.java"
click node_color "https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/util/ColorHelper.java"

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_mcp toneBlue
class node_lifecycle,node_content,node_templates,node_structure toneAmber
class node_design,node_guardrails,node_color toneMint
class node_render,node_download,node_imagefiles toneRose
class node_state,node_pptx,node_assistant toneIndigo
```

## Components

### MCP access

- [MCP server](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/config/McpServerConfig.java): `src/main/java/org/spring/microservices/pptmcpserver/config/McpServerConfig.java`

### Presentation authoring

- [Presentation lifecycle](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/PresentationService.java): `src/main/java/org/spring/microservices/pptmcpserver/service/PresentationService.java`
- [Slide content](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/SlideContentService.java): `src/main/java/org/spring/microservices/pptmcpserver/service/SlideContentService.java`
- [Layout templates](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/LayoutTemplateService.java): `src/main/java/org/spring/microservices/pptmcpserver/service/LayoutTemplateService.java`
- [Shapes and tables](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/StructuralElementService.java): `src/main/java/org/spring/microservices/pptmcpserver/service/StructuralElementService.java`

### Review and design

- [Design and themes](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/DesignService.java): `src/main/java/org/spring/microservices/pptmcpserver/service/DesignService.java`
- [Quality audits](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/GuardrailService.java): `src/main/java/org/spring/microservices/pptmcpserver/service/GuardrailService.java`
- [Color parsing](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/util/ColorHelper.java): `src/main/java/org/spring/microservices/pptmcpserver/util/ColorHelper.java`

### Preview and delivery

- [Slide rendering](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/service/RenderService.java): `src/main/java/org/spring/microservices/pptmcpserver/service/RenderService.java`
- [HTTP download](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/controller/PresentationDownloadController.java): `src/main/java/org/spring/microservices/pptmcpserver/controller/PresentationDownloadController.java`
- **Rendered images**

### Deck state

- [Presentation state](https://github.com/souravpattnaik431/javapptmcpserver/blob/main/src/main/java/org/spring/microservices/pptmcpserver/state/PresentationStateManager.java): `src/main/java/org/spring/microservices/pptmcpserver/state/PresentationStateManager.java`
- **PPTX files**

### Other components

- **AI assistant**

## Connections

- AI assistant → MCP server: calls tools
- MCP server → Presentation lifecycle: dispatches
- MCP server → Slide content: dispatches
- MCP server → Layout templates: dispatches
- MCP server → Shapes and tables: dispatches
- MCP server → Design and themes: dispatches
- MCP server → Quality audits: dispatches
- MCP server → Slide rendering: dispatches
- Presentation lifecycle → Presentation state: registers decks
- Slide content → Presentation state: reads and updates
- Layout templates → Presentation state: reads and updates
- Shapes and tables → Presentation state: reads and updates
- Design and themes → Presentation state: reads and updates
- Quality audits → Presentation state: audits and fixes
- Slide rendering → Presentation state: reads decks
- HTTP download → Presentation state: loads deck
- Presentation state → PPTX files: autosaves
- Slide rendering → Rendered images: writes previews
- Design and themes → Color parsing: parses colors
- AI assistant → HTTP download: requests download
