Skip to main content
Glama

ppt-word-mcp

AI 기반 편집 가능한 PPTX 및 표준화된 Word 시뮬레이션 테스트 보고서 생성 서비스
단일 경량 서비스가 동일 포트에서 MCP (Model Context Protocol) Server, REST APIWeb 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 전송 모드 (권장, 컨테이너 배포 / LAN 서비스 / 로컬 서비스에 적합)

프로젝트 루트 디렉터리에 .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}"
      }
    }
  }
}

Claude Code CLI로 원클릭 등록:

# 项目级注册(写入当前目录 .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 전송 모드 (로컬에서 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

작업 완료 후 표준 ResourceLink가 포함된 24시간 안전 서명 다운로드 직링크 획득

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: PPT Master 디자인 및 레이아웃 규범

  • 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 Demo 페이지: http://127.0.0.1:8000/demo

  • OpenAPI 대화형 문서: http://127.0.0.1:8000/docs

  • MCP HTTP 엔드포인트: 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 --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

OpenAI 호환 인터페이스 Base URL

LLM_API_KEY

없음

대규모 언어 모델 API Key

LLM_MODEL

qwen3.7-plus

기본 생성 모델 이름

MOCK_LLM

1

1이면 API Key 없이 전체 프로세스 자체 테스트 데모 가능; 실제 모델 연동 시 0으로 변경

PPT_WORD_GEN_TOKEN

비어 있음

Bearer Token 인증, 비어 있으면 인증 불필요

PUBLIC_BASE_URL

http://127.0.0.1:8000

산출물 다운로드 및 대용량 파일 업로드의 기본 URL (LAN 호출 시 서버 내부 IP로 설정)

DOWNLOAD_SIGNING_SECRET

비어 있음 (자동 생성)

HMAC 서명 키, 24시간 임시 다운로드 자격 증명 생성에 사용

MAX_CONCURRENT_TASKS

2

PPT 최대 동시 처리 작업 수

MAX_CONCURRENT_REPORT_TASKS

1

Word 최대 동시 처리 작업 수

MCP_INLINE_UPLOAD_MB

5

MCP Base64 인라인 업로드 상한 (MB)

MAX_UPLOAD_MB

20

REST / 대용량 파일 Ticket 업로드 상한 (MB)


🔌 핵심 REST API

요청 메서드

경로

설명

GET

/health

서비스 헬스 체크 (SQLite 저장소 및 작업 큐 상태 포함)

GET

/demo

내장 Web 데모 페이지

GET

/api/v1/word-format

내장 Word 템플릿 기본 형식 및 확인 Token 획득

POST

/api/v1/word-format

맞춤 템플릿 형식 추출, 수정 적용 및 확인 Token 생성

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}

24시간 HMAC 서명 안전 다운로드 인터페이스

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