Skip to main content
Glama

ppt-word-mcp

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


🚀 MCP (Model Context Protocol) サービス

ppt-word-gen は標準 MCP プロトコル(Streamable HTTP と STDIO の二重トランスポートチャネルをサポート)をネイティブ実装し、Claude Code、Claude Desktop、Cursor、Cline、OpenWebUI などの各種 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: Formatix AI MCP Server

📁 プロジェクト構造

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 に従います。

Related MCP Connectors

Related MCP Servers