Skip to main content
Glama

ppt-word-mcp

AI 駆動の編集可能な PPTX と標準化された Word シミュレーション試験レポート生成サービス
単一の軽量サービスが同一ポートで MCP (Model Context Protocol) ServerREST APIWeb Demo を提供します。


🚀 MCP (Model Context Protocol) サービス

ppt-word-gen は標準 MCP プロトコル(Streamable HTTP と STDIO の二重トランスポートチャネルをサポート)をネイティブ実装し、Claude CodeClaude DesktopCursorClineOpenWebUI などの各種 Agent クライアントが、ドキュメント形式の抽出、ユーザー確認、非同期キュー生成、セマンティックな多ラウンド改訂、安全なファイルダウンロードを自律的に完了できるようにします。

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}"
      }
    }
  }
}

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 ツール)

ツール名

機能説明

主要パラメータ

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 リソース)

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 キー

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 インラインアップロード上限(MB)

MAX_UPLOAD_MB

20

REST / 大ファイル Ticket アップロード上限(MB)


🔌 コア REST API

リクエストメソッド

パス

説明

GET

/health

サービスヘルスチェック(SQLite ストレージとタスクキューステータスを含む)

GET

/demo

組み込み Web デモページ

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}

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