Skip to main content
Glama

ppt-word-mcp

AI-gesteuerter Dienst zur Generierung bearbeitbarer PPTX- und standardisierter Word-Simulationstestberichte
Ein einzelner leichtgewichtiger Dienst bietet auf demselben Port MCP (Model Context Protocol) Server, REST API und Web Demo.


🚀 MCP (Model Context Protocol) Dienst

ppt-word-gen implementiert nativ das standardisierte MCP-Protokoll (mit Unterstützung der beiden Übertragungskanäle Streamable HTTP und STDIO) und befähigt verschiedene Agent-Clients (z. B. Claude Code, Claude Desktop, Cursor, Cline, OpenWebUI usw.), Dokumentformate selbstständig zu extrahieren, Nutzerbestätigungen einzuholen, asynchron in Warteschlangen zu generieren, semantische Mehrfachüberarbeitungen durchzuführen und sichere Dateidownloads bereitzustellen.

1. Client-Verbindungskonfiguration (.mcp.json)

Im Projektstammverzeichnis ist bereits .mcp.json enthalten. Wenn Agent-Tools dieses Verzeichnis öffnen, wird der Dienst automatisch erkannt und geladen.

Variante A: HTTP-Übertragungsmodus (empfohlen, geeignet für Container-Bereitstellung / LAN-Dienste / lokale Dienste)

Erstellen oder bearbeiten Sie .mcp.json im Projektstammverzeichnis:

{
  "mcpServers": {
    "ppt-word-gen": {
      "type": "http",
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}

Wenn der Dienst eine Bearer-Token-Authentifizierung aktiviert hat (PPT_WORD_GEN_TOKEN konfiguriert ist), können Sie den folgenden Request-Header hinzufügen:

{
  "mcpServers": {
    "ppt-word-gen": {
      "type": "http",
      "url": "http://YOUR_SERVER_IP:8000/mcp",
      "headers": {
        "Authorization": "Bearer ${PPT_WORD_GEN_TOKEN}"
      }
    }
  }
}

Mit der Claude Code CLI in einem Schritt registrieren:

# 项目级注册(写入当前目录 .mcp.json)
claude mcp add --transport http --scope project ppt-word-gen http://127.0.0.1:8000/mcp

# 用户全局注册
claude mcp add --transport http --scope user ppt-word-gen http://127.0.0.1:8000/mcp

Variante B: STDIO-Übertragungsmodus (lokaler Aufruf ohne HTTP-Portstart)

In der Client-Konfiguration direkt über einen Python-Prozess starten:

{
  "mcpServers": {
    "ppt-word-gen": {
      "command": "python",
      "args": ["-m", "ppt_word_gen.mcp_stdio"]
    }
  }
}

2. Zentraler MCP-Kollaborations-Workflow

[用户输入 / 来源资料 / 模板]
             │
             ▼
[可选:upload_file / create_upload_ticket 暂存来源文件与 Word 模板]
             │
             ▼
[preview_word_report_format 提取模板默认格式(字体、字号、行距、多级标题、编号规范)]
             │
             ▼
[向用户展示预览并获取确认 ➔ 获得绑定格式哈希的 confirmation_token]
             │
             ▼
[generate_presentation / generate_word_report 发起异步生成任务]
             │
             ▼
[wait_generation_task / get_generation_task 轮询进度状态]
             │
             ▼
[get_artifact 获取 24 小时有效的安全签名 ResourceLink 下载链接]
             │
             ▼
[可选:revise_presentation / revise_word_report 进行多轮语义增量修订]

3. Vollständige MCP-Toolübersicht (15 Tools)

Tool-Name

Funktionsbeschreibung

Wichtige Parameter

list_generation_profiles

Listet die generierbaren Dokumenttypen, unterstützten Formate und Binär-Upload-Konventionen auf

Keine

preview_word_report_format

Extrahiert das Standardformat der Vorlage (oder der integrierten Vorlage) und wendet Änderungen an; gibt Formatinformationen und confirmation_token zurück

template_upload_id, custom_format

generate_presentation

Erstellt eine asynchrone Aufgabe zur Generierung einer bearbeitbaren PPTX

prompt, format, source_upload_ids, model usw.

generate_word_report

Reicht eine Word-Berichtsaufgabe ein (muss confirmation_token enthalten)

title, report_type, confirmation_token, source_upload_ids

get_generation_task

Fragt Phase, prozentualen Fortschritt, Fehler und Artefaktstatus von PPT- oder Word-Asynchronaufgaben ab

task_id, task_type

wait_generation_task

Wartet bis zu 55 Sekunden; kehrt sofort nach Abschluss der Aufgabe zurück, bei Zeitüberschreitung wird der neueste Status zurückgegeben

task_id, task_type, timeout_seconds

cancel_generation_task

Fordert den Abbruch einer noch nicht abgeschlossenen asynchronen Generierungsaufgabe an

task_id, task_type

get_artifact

Ruft nach Abschluss der Aufgabe einen 24-Stunden-sicher signierten Direktdownload-Link mit standardmäßigem ResourceLink ab

task_id, task_type

upload_file

Lädt kleine Dateien (maximal 5 MB) inline per Base64 hoch

filename, content_base64, purpose

create_upload_ticket

Erstellt eine Einmal-PUT-Upload-Adresse für große Dateien (vermeidet, dass große Inhalte den Agent-Kontext belasten)

filename, purpose, max_bytes

list_business_templates

Listet integrierte und unternehmensdefinierte PPT/Word-Geschäftsvorlagen auf

Keine

register_business_template

Registriert unternehmensspezifische Vorlagen für Geschäftsinhalte und Stilrichtlinien

template_id, name, spec

delete_business_template

Löscht benutzerdefinierte Geschäftsvorlagen (integrierte Vorlagen sind geschützt und können nicht gelöscht werden)

template_id

revise_presentation

Verwendet eine vorhandene PPTX als Kontext und generiert auf Basis von Natural-Language-Anweisungen eine neue Version

parent_task_id, revision_prompt

revise_word_report

Generiert nach Bestätigung des Formats eine neue Version inkrementell auf Basis einer vorhandenen DOCX

parent_task_id, confirmation_token, revision_instructions

4. MCP-Regeln und Asset-Ressourcen (4 Resources)

Agenten können direkt die Richtlinien und Designbeschränkungen lesen:

  • ppt-word://rules/workflow: Vollständige MCP-Interaktions- und Formatbestätigungsspezifikation

  • ppt-word://rules/presentation: Design- und Layoutspezifikation für PPT-Master

  • ppt-word://rules/word-report: Layoutstandard für simulierte und technische Word-Berichte

  • ppt-word://templates/catalog: Geschäftsvorlagenkatalog und Schnellreferenz der Richtlinien


Related MCP server: docforge-mcp

📁 Projektstruktur

ppt-word-gen/
├── ppt_word_gen/              # Python 核心业务包
│   ├── app.py                 # FastAPI 入口(Demo、REST API、MCP Streamable HTTP)
│   ├── mcp_server.py          # MCP Server 实现(15 工具、4 资源、双向协议)
│   ├── mcp_stdio.py           # MCP STDIO 运行入口
│   ├── tasks.py               # PPT 异步任务队列与状态机
│   ├── report_tasks.py        # Word 异步任务队列与状态机
│   ├── report_agent.py        # Word 报告生成 Agent
│   ├── report_documents.py    # Word 文档排版、格式继承与 GBK 修复引擎
│   ├── word_format.py         # Word 格式解析、修改与防篡改 Token 校验
│   ├── signed_tokens.py       # HMAC-SHA256 签名下载与上传票据
│   ├── pptmaster.py           # PPT Master 脚本适配与执行
│   ├── upload_store.py        # 临时文件上传与生命周期管理
│   ├── task_store.py          # SQLite 持久化任务存储
│   └── config.py              # 全局配置读取
├── assets/word_templates/     # 内置 Word 模板(CID629 电驱系统联合仿真 v1.5)
├── skills/ai-simulation-report/# 仿真报告标准契约与校验规则
├── static/                    # 前端 Web Demo 页面
├── tests/                     # 41 项单元测试与集成测试
├── Dockerfile                 # 容器构建文件(支持联网/离线两种模式)
├── docker-compose.yml         # 生产/测试容器编排配置
├── build-overlay.ps1          # 企业级解密与离线 wheel 构建脚本
├── requirements.txt           # 依赖清单
├── .env.example               # 环境变量参考模板
└── .mcp.json                  # MCP 配置文件

💻 Lokaler Schnellstart

1. Abhängigkeiten installieren und Tests ausführen

# 安装依赖
python -m pip install -r requirements.txt

# 运行全套 41 项自动化测试
python -m unittest discover -s tests -v

2. Dienst starten

# 启动 HTTP + MCP 服务(默认监听 0.0.0.0:8000)
python -m ppt_word_gen
  • Web-Demo-Seite: http://127.0.0.1:8000/demo

  • OpenAPI-Interaktionsdokumentation: http://127.0.0.1:8000/docs

  • MCP-HTTP-Endpunkt: http://127.0.0.1:8000/mcp

  • Health Check: http://127.0.0.1:8000/health


🐳 Docker-/WSL-Containerbereitstellung

1. Standardbereitstellung

In einem Ubuntu-/WSL-Terminal:

cd /path/to/ppt-word-gen
cp .env.example .env.compose

# 按需修改 .env.compose(接入真实模型时设置 MOCK_LLM=0 并填写 API Key)
sudo service docker start
docker compose --env-file .env.compose up -d --build --wait

2. Offline-Wheel-Build für Unternehmen

Führen Sie in einer Umgebung mit Enterprise-Data-Loss-Prevention (DLP) oder isoliertem Intranet Folgendes in Windows PowerShell aus:

pwsh ./build-overlay.ps1

Dieses Skript kopiert Dateien automatisch sicher per Dateistream und ruft OFFLINE_INSTALL=1 auf, um einen lokalen Offline-Build des Wheels durchzuführen.

3. Dienststatus prüfen und stoppen

# 查看容器状态与健康指标
docker compose ps
curl http://127.0.0.1:8000/health

# 停止容器(数据保留在 ppt-word-gen-data 卷中)
docker compose stop

⚙️ Umgebungsvariablen

Kopieren Sie .env.example in .env oder .env.compose:

Variable

Standardwert

Beschreibung

LLM_BASE_URL

https://dashscope.aliyuncs.com/compatible-mode/v1

OpenAI-kompatible Basis-URL der API

LLM_API_KEY

Keiner

API-Schlüssel für das Large Language Model

LLM_MODEL

qwen3.7-plus

Name des Standard-Creation-Modells

MOCK_LLM

1

1 ermöglicht eine vollständige Selbsttest-Demo ohne API-Schlüssel; für die Anbindung eines echten Modells auf 0 ändern

PPT_WORD_GEN_TOKEN

Leer lassen

Bearer-Token-Authentifizierung; wenn leer gelassen, ist keine Authentifizierung erforderlich

PUBLIC_BASE_URL

http://127.0.0.1:8000

Basis-URL für Artefakt-Downloads und große Datei-Uploads (für LAN-Zugriffe bitte die interne Server-IP angeben)

DOWNLOAD_SIGNING_SECRET

Leer lassen (automatisch generiert)

HMAC-Signaturschlüssel zur Erstellung temporärer 24-Stunden-Download-Berechtigungsnachweise

MAX_CONCURRENT_TASKS

2

Maximale Anzahl gleichzeitiger PPT-Verarbeitungsaufgaben

MAX_CONCURRENT_REPORT_TASKS

1

Maximale Anzahl gleichzeitiger Word-Verarbeitungsaufgaben

MCP_INLINE_UPLOAD_MB

5

Obergrenze für MCP-Base64-Inline-Uploads (MB)

MAX_UPLOAD_MB

20

Obergrenze für REST-/Großdatei-Ticket-Uploads (MB)


🔌 Zentrale REST-API

Methode

Pfad

Beschreibung

GET

/health

Dienst-Healthcheck (einschließlich SQLite-Speicher- und Aufgabenwarteschlangenstatus)

GET

/demo

Integrierte Web-Demo-Seite

GET

/api/v1/word-format

Ruft das Standardformat der integrierten Word-Vorlage und den Bestätigungs-Token ab

POST

/api/v1/word-format

Extrahiert das Format benutzerdefinierter Vorlagen, wendet Änderungen an und generiert einen Bestätigungs-Token

POST

/api/v1/report-tasks

Reicht eine Aufgabe zur Generierung eines Word-Simulations-/Technischen-Berichts ein

GET

/api/v1/report-tasks/{id}

Fragt Fortschritt und Details von Word-Berichtsaufgaben ab

GET

/api/v1/report-tasks/{id}/result

Lädt den generierten DOCX-Bericht herunter

POST

/api/v1/tasks

Reicht eine Aufgabe zur Generierung einer PPT-Präsentation ein

GET

/api/v1/tasks/{id}

Fragt Fortschritt und Details von PPT-Aufgaben ab

GET

/api/v1/tasks/{id}/result

Lädt die generierte PPTX-Datei herunter

POST

/api/v1/uploads

Zwischenspeichern von binären Quelldateien oder Vorlagen

PUT

/api/v1/upload-tickets/{token}

Schnittstelle für einmaligen Direktupload großer Dateien

GET

/api/v1/artifacts/{token}

Sicherer Download-Endpunkt mit 24-Stunden-HMAC-Signatur

POST

/mcp

MCP-Streamable-HTTP-Protokollendpunkt


📄 Open-Source-Lizenz

Dieses Projekt unterliegt der MIT-Lizenz.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/muli4561/ppt-word-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server