ppt-word-gen
ppt-word-mcp
Сервис генерации редактируемых PPTX и стандартизированных Word-отчётов с симуляцией на базе ИИ
Единый лёгкий сервис предоставляет MCP (Model Context Protocol) Server, REST API и Web Demo на одном порту.
🚀 MCP (Model Context Protocol) сервис
ppt-word-gen нативно реализует стандартный протокол MCP (поддерживает два транспортных канала: Streamable HTTP и STDIO), позволяя различным Agent-клиентам (таким как Claude Code, Claude Desktop, Cursor, Cline, OpenWebUI и др.) самостоятельно выполнять извлечение формата документов, подтверждение пользователем, асинхронную генерацию в очереди, семантические многораундовые правки и безопасную загрузку файлов.
1. Конфигурация подключения клиента (.mcp.json)
В корне проекта уже встроен .mcp.json — при открытии этого каталога инструменты Agent автоматически обнаружат и загрузят сервис.
Способ A: режим HTTP-транспорта (рекомендуется для развёртывания в контейнерах / локальной сети / на локальной машине)
Создайте или отредактируйте .mcp.json в корне проекта:
{
"mcpServers": {
"ppt-word-gen": {
"type": "http",
"url": "http://127.0.0.1:8000/mcp"
}
}
}Если в сервисе включена аутентификация Bearer Token (задан PPT_WORD_GEN_TOKEN), можно добавить заголовок запроса:
{
"mcpServers": {
"ppt-word-gen": {
"type": "http",
"url": "http://YOUR_SERVER_IP:8000/mcp",
"headers": {
"Authorization": "Bearer ${PPT_WORD_GEN_TOKEN}"
}
}
}
}Одношаговая регистрация через CLI Claude Code:
# 项目级注册(写入当前目录 .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Способ B: режим STDIO-транспорта (локальный запуск через Python-процесс без HTTP-порта)
Запустите напрямую через Python-процесс в конфигурации клиента:
{
"mcpServers": {
"ppt-word-gen": {
"command": "python",
"args": ["-m", "ppt_word_gen.mcp_stdio"]
}
}
}2. Основной совместный рабочий процесс MCP
[用户输入 / 来源资料 / 模板]
│
▼
[可选: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. Полный набор инструментов MCP (15 Tools)
Название инструмента | Описание функции | Ключевые параметры |
| Выводит типы документов для генерации, поддерживаемые форматы и соглашения о бинарной загрузке | нет |
| Извлекает формат шаблона по умолчанию (или встроенного шаблона) и применяет изменения; возвращает информацию о формате и |
|
| Создаёт асинхронную задачу генерации редактируемого PPTX |
|
| Отправляет задачу Word-отчёта (обязательно с |
|
| Запрашивает этап, процент прогресса, ошибки и статус артефакта асинхронной задачи PPT или Word |
|
| Ожидает до 55 секунд; возвращает результат сразу по завершении задачи, при таймауте — последний статус |
|
| Запрашивает отмену ещё не завершённой асинхронной задачи генерации |
|
| После завершения задачи возвращает прямую ссылку на безопасную подписанную загрузку на 24 часа со стандартным ResourceLink |
|
| Встроенная загрузка небольших файлов в Base64 (не более 5MB) |
|
| Создаёт одноразовый адрес PUT-загрузки для больших файлов (чтобы не занимать контекст Agent) |
|
| Выводит встроенные и корпоративные пользовательские шаблоны бизнес-стандартов PPT/Word | нет |
| Регистрирует шаблон корпоративных бизнес-требований и стилевых стандартов |
|
| Удаляет пользовательский бизнес-шаблон (встроенные шаблоны защищены и не удаляются) |
|
| Использует существующий PPTX как контекст и генерирует новую версию по инструкции на естественном языке |
|
| После подтверждения пользователем формата инкрементально генерирует новую версию на основе существующего DOCX |
|
4. Правила MCP и ресурсы активов (4 Resources)
Agent может напрямую читать руководства по стандартам и дизайнерские ограничения:
ppt-word://rules/workflow:полные правила взаимодействия MCP и подтверждения форматаppt-word://rules/presentation:стандарты дизайна и вёрстки Master PPTppt-word://rules/word-report:стандарты вёрстки симуляционных и инженерных Word-отчётовppt-word://templates/catalog:каталог бизнес-шаблонов и краткий справочник стандартов
Related MCP server: docforge-mcp
📁 Структура проекта
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 配置文件💻 Быстрый локальный запуск
1. Установка зависимостей и выполнение тестов
# 安装依赖
python -m pip install -r requirements.txt
# 运行全套 41 项自动化测试
python -m unittest discover -s tests -v2. Запуск сервиса
# 启动 HTTP + MCP 服务(默认监听 0.0.0.0:8000)
python -m ppt_word_genСтраница Web Demo:
http://127.0.0.1:8000/demoИнтерактивная документация OpenAPI:
http://127.0.0.1:8000/docsHTTP-эндпоинт MCP:
http://127.0.0.1:8000/mcpПроверка работоспособности:
http://127.0.0.1:8000/health
🐳 Развёртывание в контейнерах Docker / WSL
1. Стандартное развёртывание
В терминале Ubuntu / WSL:
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 --wait2. Корпоративная офлайн-сборка Wheel
В средах с защитой от утечки корпоративных данных (DLP) или изолированной внутренней сетью выполните в Windows PowerShell:
pwsh ./build-overlay.ps1Этот скрипт автоматически безопасно копирует через файловый поток и вызывает OFFLINE_INSTALL=1 для локальной офлайн-сборки Wheel.
3. Проверка состояния сервиса и остановка
# 查看容器状态与健康指标
docker compose ps
curl http://127.0.0.1:8000/health
# 停止容器(数据保留在 ppt-word-gen-data 卷中)
docker compose stop⚙️ Описание переменных окружения
Скопируйте .env.example в .env или .env.compose:
Имя переменной | Значение по умолчанию | Описание |
|
| Base URL совместимого интерфейса OpenAI |
| нет | API-ключ большой языковой модели |
|
| Название модели создания по умолчанию |
|
|
|
| пусто | Аутентификация Bearer Token; при пустом значении аутентификация не требуется |
|
| Базовый URL для загрузки артефактов и больших файлов (при вызове из локальной сети укажите внутренний IP сервера) |
| пусто (генерируется автоматически) | Секрет подписи HMAC для создания 24-часовых временных учётных данных загрузки |
|
| Максимальное количество параллельных задач обработки PPT |
|
| Максимальное количество параллельных задач обработки Word |
|
| Лимит встроенной загрузки MCP в Base64 (МБ) |
|
| Лимит загрузки REST / больших файлов по Ticket (МБ) |
🔌 Основные REST API
Метод запроса | Путь | Описание |
|
| Проверка работоспособности сервиса (включая хранилище SQLite и статус очереди задач) |
|
| Встроенная веб-страница демонстрации |
|
| Получение формата встроенного шаблона Word по умолчанию и токена подтверждения |
|
| Извлечение формата пользовательского шаблона, применение изменений и генерация токена подтверждения |
|
| Отправка задачи генерации симуляционного/технического Word-отчёта |
|
| Запрос прогресса и деталей задачи Word-отчёта |
|
| Загрузка сгенерированного отчёта DOCX |
|
| Отправка задачи генерации презентации PPT |
|
| Запрос прогресса и деталей задачи PPT |
|
| Загрузка сгенерированного файла PPTX |
|
| Временное хранение бинарных исходных файлов или шаблонов |
|
| Интерфейс прямой загрузки больших файлов (одноразовый) |
|
| Безопасный интерфейс загрузки с подписью HMAC на 24 часа |
|
| Эндпоинт протокола MCP Streamable HTTP |
📄 Лицензия с открытым исходным кодом
Данный проект распространяется по лицензии MIT License.
This server cannot be installed
Maintenance
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
AI document editing for agents: draft, edit, export .docx/PDF. 37 MCP tools; agent self-signup.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
AI presentation and report generation: slides, diagrams, PPTX export, live preview MCP App.
Finished, on-brand .pptx and .docx from a brief - quality-gated by an agentic consulting team.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables creation and editing of Word, Excel, and PowerPoint documents within MCP clients through AI assistants.MIT
- AlicenseBqualityDmaintenanceEnables complete Office document lifecycle management for AI agents, including creation, editing, conversion, and templating of DOCX, XLSX, PPTX, PDF, and EML files.40MIT
- AlicenseAqualityCmaintenanceEnables AI agents to generate real Office documents (.pptx, .docx, .xlsx) and source code from natural language via MCP protocol.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables creation of professional PowerPoint presentations with AI-generated content and images, supporting multiple LLMs and image services via MCP protocol.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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