Skip to main content
Glama

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)

Название инструмента

Описание функции

Ключевые параметры

list_generation_profiles

Выводит типы документов для генерации, поддерживаемые форматы и соглашения о бинарной загрузке

нет

preview_word_report_format

Извлекает формат шаблона по умолчанию (или встроенного шаблона) и применяет изменения; возвращает информацию о формате и confirmation_token

template_upload_id, custom_format

generate_presentation

Создаёт асинхронную задачу генерации редактируемого PPTX

prompt, format, source_upload_ids, model и др.

generate_word_report

Отправляет задачу Word-отчёта (обязательно с confirmation_token)

title, report_type, confirmation_token, source_upload_ids

get_generation_task

Запрашивает этап, процент прогресса, ошибки и статус артефакта асинхронной задачи PPT или Word

task_id, task_type

wait_generation_task

Ожидает до 55 секунд; возвращает результат сразу по завершении задачи, при таймауте — последний статус

task_id, task_type, timeout_seconds

cancel_generation_task

Запрашивает отмену ещё не завершённой асинхронной задачи генерации

task_id, task_type

get_artifact

После завершения задачи возвращает прямую ссылку на безопасную подписанную загрузку на 24 часа со стандартным ResourceLink

task_id, task_type

upload_file

Встроенная загрузка небольших файлов в Base64 (не более 5MB)

filename, content_base64, purpose

create_upload_ticket

Создаёт одноразовый адрес PUT-загрузки для больших файлов (чтобы не занимать контекст Agent)

filename, purpose, max_bytes

list_business_templates

Выводит встроенные и корпоративные пользовательские шаблоны бизнес-стандартов PPT/Word

нет

register_business_template

Регистрирует шаблон корпоративных бизнес-требований и стилевых стандартов

template_id, name, spec

delete_business_template

Удаляет пользовательский бизнес-шаблон (встроенные шаблоны защищены и не удаляются)

template_id

revise_presentation

Использует существующий PPTX как контекст и генерирует новую версию по инструкции на естественном языке

parent_task_id, revision_prompt

revise_word_report

После подтверждения пользователем формата инкрементально генерирует новую версию на основе существующего DOCX

parent_task_id, confirmation_token, revision_instructions

4. Правила MCP и ресурсы активов (4 Resources)

Agent может напрямую читать руководства по стандартам и дизайнерские ограничения:

  • ppt-word://rules/workflow:полные правила взаимодействия MCP и подтверждения формата

  • ppt-word://rules/presentation:стандарты дизайна и вёрстки Master PPT

  • ppt-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 -v

2. Запуск сервиса

# 启动 HTTP + MCP 服务(默认监听 0.0.0.0:8000)
python -m ppt_word_gen
  • Страница Web Demohttp://127.0.0.1:8000/demo

  • Интерактивная документация OpenAPIhttp://127.0.0.1:8000/docs

  • HTTP-эндпоинт MCPhttp://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 --wait

2. Корпоративная офлайн-сборка 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:

Имя переменной

Значение по умолчанию

Описание

LLM_BASE_URL

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

Base URL совместимого интерфейса OpenAI

LLM_API_KEY

нет

API-ключ большой языковой модели

LLM_MODEL

qwen3.7-plus

Название модели создания по умолчанию

MOCK_LLM

1

1 — полное самотестирование и демонстрация без API-ключа; для подключения реальной модели измените на 0

PPT_WORD_GEN_TOKEN

пусто

Аутентификация Bearer Token; при пустом значении аутентификация не требуется

PUBLIC_BASE_URL

http://127.0.0.1:8000

Базовый URL для загрузки артефактов и больших файлов (при вызове из локальной сети укажите внутренний IP сервера)

DOWNLOAD_SIGNING_SECRET

пусто (генерируется автоматически)

Секрет подписи HMAC для создания 24-часовых временных учётных данных загрузки

MAX_CONCURRENT_TASKS

2

Максимальное количество параллельных задач обработки PPT

MAX_CONCURRENT_REPORT_TASKS

1

Максимальное количество параллельных задач обработки Word

MCP_INLINE_UPLOAD_MB

5

Лимит встроенной загрузки MCP в Base64 (МБ)

MAX_UPLOAD_MB

20

Лимит загрузки REST / больших файлов по Ticket (МБ)


🔌 Основные REST API

Метод запроса

Путь

Описание

GET

/health

Проверка работоспособности сервиса (включая хранилище SQLite и статус очереди задач)

GET

/demo

Встроенная веб-страница демонстрации

GET

/api/v1/word-format

Получение формата встроенного шаблона Word по умолчанию и токена подтверждения

POST

/api/v1/word-format

Извлечение формата пользовательского шаблона, применение изменений и генерация токена подтверждения

POST

/api/v1/report-tasks

Отправка задачи генерации симуляционного/технического Word-отчёта

GET

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

Запрос прогресса и деталей задачи Word-отчёта

GET

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

Загрузка сгенерированного отчёта DOCX

POST

/api/v1/tasks

Отправка задачи генерации презентации PPT

GET

/api/v1/tasks/{id}

Запрос прогресса и деталей задачи PPT

GET

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

Загрузка сгенерированного файла PPTX

POST

/api/v1/uploads

Временное хранение бинарных исходных файлов или шаблонов

PUT

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

Интерфейс прямой загрузки больших файлов (одноразовый)

GET

/api/v1/artifacts/{token}

Безопасный интерфейс загрузки с подписью HMAC на 24 часа

POST

/mcp

Эндпоинт протокола MCP Streamable HTTP


📄 Лицензия с открытым исходным кодом

Данный проект распространяется по лицензии MIT License.

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