Skip to main content
Glama

ppt-word-mcp

Servicio de generación de informes de prueba editables en PPTX y simulación de Word estandarizada impulsado por IA
Un único servicio ligero ofrece Servidor MCP (Model Context Protocol), API REST y Demo Web en el mismo puerto.


🚀 Servicio MCP (Model Context Protocol)

ppt-word-gen implementa de forma nativa el protocolo MCP estándar (compatible con canales de transmisión duales Streamable HTTP y STDIO), lo que permite a varios clientes de agentes (como Claude Code, Claude Desktop, Cursor, Cline, OpenWebUI, etc.) completar de forma autónoma la extracción de formatos de documentos, la confirmación del usuario, la generación asíncrona en cola, la revisión semántica en múltiples rondas y la descarga segura de archivos.

1. Configuración de conexión del cliente (.mcp.json)

El directorio raíz del proyecto ya incluye .mcp.json; al abrir este directorio, las herramientas de agentes pueden descubrir y cargar el servicio automáticamente.

Opción A: Modo de transmisión HTTP (recomendado, adecuado para despliegue en contenedores / servicios de red local / servicios locales)

Cree o edite .mcp.json en el directorio raíz del proyecto:

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

Si el servicio tiene habilitada la autenticación Bearer Token (configurada con PPT_WORD_GEN_TOKEN), puede añadir el encabezado de solicitud:

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

Regístrelo de una vez con la CLI de 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

Opción B: Modo de transmisión STDIO (llamada directa en la máquina local sin iniciar un puerto HTTP)

En la configuración del cliente, inicie directamente el proceso de Python:

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

2. Flujo de trabajo principal de colaboración 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. Conjunto completo de herramientas MCP (15 herramientas)

Nombre de la herramienta

Descripción de la función

Parámetros clave

list_generation_profiles

Enumera los tipos de documentos generables, los formatos admitidos y las convenciones de carga binaria

Ninguno

preview_word_report_format

Extrae el formato predeterminado de la plantilla (o la plantilla integrada) y aplica modificaciones; devuelve la información del formato y el confirmation_token

template_upload_id, custom_format

generate_presentation

Crea una tarea de generación asíncrona de PPTX editable

prompt, format, source_upload_ids, model, etc.

generate_word_report

Envía una tarea de informe de Word (debe incluir confirmation_token)

title, report_type, confirmation_token, source_upload_ids

get_generation_task

Consulta la fase, el porcentaje de progreso, los errores y el estado del artefacto de las tareas asíncronas de PPT o Word

task_id, task_type

wait_generation_task

Espera hasta 55 segundos; devuelve inmediatamente si la tarea se completa; si se agota el tiempo, devuelve el estado más reciente

task_id, task_type, timeout_seconds

cancel_generation_task

Solicita la cancelación de una tarea de generación asíncrona aún no finalizada

task_id, task_type

get_artifact

Obtiene un enlace de descarga directo firmado y seguro de 24 horas con ResourceLink estándar tras completar la tarea

task_id, task_type

upload_file

Carga en línea archivos pequeños en Base64 (máximo 5 MB)

filename, content_base64, purpose

create_upload_ticket

Crea una dirección de carga PUT de un solo uso para archivos grandes (evita que el contenido grande ocupe el contexto del agente)

filename, purpose, max_bytes

list_business_templates

Enumera las plantillas de especificaciones empresariales de PPT/Word integradas y personalizadas

Ninguno

register_business_template

Registra plantillas de especificaciones de contenido y estilo empresarial

template_id, name, spec

delete_business_template

Elimina plantillas empresariales personalizadas (las integradas están protegidas y no se pueden eliminar)

template_id

revise_presentation

Utiliza un PPTX existente como contexto y genera una nueva versión según instrucciones en lenguaje natural

parent_task_id, revision_prompt

revise_word_report

Tras la confirmación del formato por parte del usuario, utiliza un DOCX existente como base para generar de forma incremental una nueva versión

parent_task_id, confirmation_token, revision_instructions

4. Reglas MCP y recursos de activos (4 recursos)

Los agentes pueden leer directamente las guías de especificaciones y las restricciones de diseño:

  • ppt-word://rules/workflow: especificaciones completas de interacción y confirmación de formato de MCP

  • ppt-word://rules/presentation: especificaciones de diseño y maquetación del Master de PPT

  • ppt-word://rules/word-report: estándares de maquetación de informes de Word de simulación e ingeniería

  • ppt-word://templates/catalog: catálogo de plantillas empresariales y referencia rápida de especificaciones


Related MCP server: docforge-mcp

📁 Estructura del proyecto

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 配置文件

💻 Inicio rápido local

1. Instalar dependencias y ejecutar pruebas

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

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

2. Iniciar el servicio

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

  • Documentación interactiva de OpenAPI: http://127.0.0.1:8000/docs

  • Punto final HTTP de MCP: http://127.0.0.1:8000/mcp

  • Comprobación de estado: http://127.0.0.1:8000/health


🐳 Despliegue en contenedores Docker / WSL

1. Despliegue estándar

En la terminal de 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. Construcción de Wheel offline para empresas

En entornos con protección contra fugas de datos empresariales (DLP) o aislamiento de red interna, ejecute en Windows PowerShell:

pwsh ./build-overlay.ps1

Este script copiará de forma segura mediante flujo de archivos y llamará a OFFLINE_INSTALL=1 para realizar la construcción offline local de Wheel.

3. Comprobación del estado del servicio y detención

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

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

⚙️ Descripción de las variables de entorno

Copie .env.example como .env o .env.compose:

Nombre de la variable

Valor predeterminado

Descripción

LLM_BASE_URL

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

URL base de la interfaz compatible con OpenAI

LLM_API_KEY

Ninguno

Clave de API del modelo de lenguaje grande

LLM_MODEL

qwen3.7-plus

Nombre del modelo de creación predeterminado

MOCK_LLM

1

1 permite probar todo el flujo sin API Key; cámbielo a 0 para conectar un modelo real

PPT_WORD_GEN_TOKEN

Vacío

Autenticación Bearer Token; si está vacío, no se requiere autenticación

PUBLIC_BASE_URL

http://127.0.0.1:8000

URL base para la descarga de artefactos y la carga de archivos grandes (para llamadas en red local, establezca la IP de intranet del servidor)

DOWNLOAD_SIGNING_SECRET

Vacío (se genera automáticamente)

Clave de firma HMAC, utilizada para generar credenciales de descarga temporales de 24 horas

MAX_CONCURRENT_TASKS

2

Número máximo de tareas de procesamiento concurrentes de PPT

MAX_CONCURRENT_REPORT_TASKS

1

Número máximo de tareas de procesamiento concurrentes de Word

MCP_INLINE_UPLOAD_MB

5

Límite de carga en línea Base64 de MCP (MB)

MAX_UPLOAD_MB

20

Límite de carga de REST / Ticket de archivos grandes (MB)


🔌 API REST principal

Método de solicitud

Ruta

Descripción

GET

/health

Comprobación de estado del servicio (incluye almacenamiento SQLite y estado de la cola de tareas)

GET

/demo

Página de demostración web integrada

GET

/api/v1/word-format

Obtiene el formato predeterminado de la plantilla de Word integrada y el Token de confirmación

POST

/api/v1/word-format

Extrae el formato de plantillas personalizadas, aplica modificaciones y genera un Token de confirmación

POST

/api/v1/report-tasks

Envía tareas de generación de informes de simulación/técnicos de Word

GET

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

Consulta el progreso y los detalles de la tarea de informe de Word

GET

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

Descarga el informe DOCX generado

POST

/api/v1/tasks

Envía tareas de generación de presentaciones PPT

GET

/api/v1/tasks/{id}

Consulta el progreso y los detalles de la tarea de PPT

GET

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

Descarga el archivo PPTX generado

POST

/api/v1/uploads

Almacena temporalmente archivos binarios de origen o plantillas

PUT

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

Interfaz de carga directa de archivos grandes de un solo uso

GET

/api/v1/artifacts/{token}

Interfaz de descarga segura firmada con HMAC de 24 horas

POST

/mcp

Punto final del protocolo MCP Streamable HTTP


📄 Licencia de código abierto

Este proyecto sigue la Licencia MIT.

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