@8btc/ppt-generator-mcp 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +129 -0
- package/dist/export-pptx.d.ts +6 -0
- package/dist/export-pptx.js +876 -0
- package/dist/generate-ppt-slides.d.ts +10 -0
- package/dist/generate-ppt-slides.js +581 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +161 -0
- package/dist/ppt-generator.d.ts +39 -0
- package/dist/ppt-generator.js +110 -0
- package/dist/tpls/imgs.json +482 -0
- package/dist/tpls/tpl-1.json +7649 -0
- package/dist/tpls/tpl-2.json +7455 -0
- package/dist/tpls/tpl-3.json +8184 -0
- package/dist/tpls/tpl-4.json +8352 -0
- package/dist/types/outline.d.ts +36 -0
- package/dist/types/outline.js +2 -0
- package/dist/types/slide.d.ts +696 -0
- package/dist/types/slide.js +2 -0
- package/dist/utils/element.d.ts +94 -0
- package/dist/utils/element.js +239 -0
- package/dist/utils/htmlParser/format.d.ts +3 -0
- package/dist/utils/htmlParser/format.js +47 -0
- package/dist/utils/htmlParser/index.d.ts +4 -0
- package/dist/utils/htmlParser/index.js +15 -0
- package/dist/utils/htmlParser/lexer.d.ts +2 -0
- package/dist/utils/htmlParser/lexer.js +245 -0
- package/dist/utils/htmlParser/parser.d.ts +15 -0
- package/dist/utils/htmlParser/parser.js +117 -0
- package/dist/utils/htmlParser/stringify.d.ts +3 -0
- package/dist/utils/htmlParser/stringify.js +32 -0
- package/dist/utils/htmlParser/tags.d.ts +8 -0
- package/dist/utils/htmlParser/tags.js +50 -0
- package/dist/utils/htmlParser/types.d.ts +55 -0
- package/dist/utils/htmlParser/types.js +2 -0
- package/dist/utils/svg2Base64.d.ts +1 -0
- package/dist/utils/svg2Base64.js +58 -0
- package/dist/utils/svgPathParser.d.ts +120 -0
- package/dist/utils/svgPathParser.js +145 -0
- package/package.json +59 -0
package/README.md
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# MCP PPT Generator
|
|
2
|
+
|
|
3
|
+
一个基于 Model Context Protocol (MCP)的 PowerPoint 生成服务,可以根据大纲文件和模板自动生成 PPT 演示文稿。
|
|
4
|
+
|
|
5
|
+
## 功能特性
|
|
6
|
+
|
|
7
|
+
- 📝 **大纲解析**: 支持 JSON 格式的大纲文件解析
|
|
8
|
+
- 🎨 **模板应用**: 支持自定义 PPT 模板
|
|
9
|
+
- 🔧 **MCP 协议**: 完全兼容 MCP 协议,可与支持 MCP 的 AI 助手集成
|
|
10
|
+
- 📊 **多种幻灯片类型**: 支持封面页、目录页、过渡页、内容页等
|
|
11
|
+
|
|
12
|
+
## 安装
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm install
|
|
16
|
+
npm run build
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 使用方法
|
|
20
|
+
|
|
21
|
+
### 作为 MCP 服务运行
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
node dist/index.js
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 可用工具
|
|
28
|
+
|
|
29
|
+
#### 1. generate_ppt
|
|
30
|
+
|
|
31
|
+
根据大纲文件和模板生成 PPT 文件
|
|
32
|
+
|
|
33
|
+
**参数:**
|
|
34
|
+
|
|
35
|
+
- `outlineFile` (必需): 大纲文件路径(JSON 格式)
|
|
36
|
+
- `templateFile` (可选): 模板文件路径
|
|
37
|
+
- `outputPath` (可选): 输出 PPT 文件路径
|
|
38
|
+
- `title` (可选): PPT 标题
|
|
39
|
+
|
|
40
|
+
## 大纲文件格式
|
|
41
|
+
|
|
42
|
+
大纲文件应为 JSON 格式,包含幻灯片数组:
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
[
|
|
46
|
+
{
|
|
47
|
+
"type": "cover",
|
|
48
|
+
"title": "演示标题",
|
|
49
|
+
"subtitle": "副标题"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"type": "contents",
|
|
53
|
+
"title": "目录",
|
|
54
|
+
"items": ["第一章", "第二章", "第三章"]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"type": "content",
|
|
58
|
+
"title": "内容标题",
|
|
59
|
+
"content": "幻灯片内容"
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 支持的幻灯片类型
|
|
65
|
+
|
|
66
|
+
- `cover`: 封面页
|
|
67
|
+
- `contents`: 目录页
|
|
68
|
+
- `transition`: 过渡页
|
|
69
|
+
- `content`: 内容页
|
|
70
|
+
- `end`: 结束页
|
|
71
|
+
|
|
72
|
+
## 模板格式
|
|
73
|
+
|
|
74
|
+
模板文件为 JSON 格式,定义 PPT 的主题样式:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"title": "模板名称",
|
|
79
|
+
"width": 1920,
|
|
80
|
+
"height": 1080,
|
|
81
|
+
"theme": {
|
|
82
|
+
"colors": {
|
|
83
|
+
"primary": "#1f4e79",
|
|
84
|
+
"secondary": "#70ad47",
|
|
85
|
+
"accent": "#ffc000"
|
|
86
|
+
},
|
|
87
|
+
"fonts": {
|
|
88
|
+
"title": "Microsoft YaHei",
|
|
89
|
+
"body": "Microsoft YaHei"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 测试
|
|
96
|
+
|
|
97
|
+
运行测试脚本验证功能:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
node test-gen-ppt.cjs
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## 项目结构
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
mcp-ppt-generator/
|
|
107
|
+
├── src/
|
|
108
|
+
│ ├── index.ts # MCP服务主入口
|
|
109
|
+
│ └── ppt-generator.ts # PPT生成核心逻辑
|
|
110
|
+
├── dist/ # 编译输出目录
|
|
111
|
+
├── package.json
|
|
112
|
+
├── tsconfig.json
|
|
113
|
+
└── README.md
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## 依赖项
|
|
117
|
+
|
|
118
|
+
- `@modelcontextprotocol/sdk`: MCP 协议 SDK
|
|
119
|
+
- `pptxgenjs`: PowerPoint 文件生成库
|
|
120
|
+
- `fs-extra`: 文件系统操作增强
|
|
121
|
+
- `uuid`: 唯一标识符生成
|
|
122
|
+
|
|
123
|
+
## todo
|
|
124
|
+
|
|
125
|
+
fix: 修复模板中 svg 元素的导出问题 svg2Base64
|
|
126
|
+
|
|
127
|
+
## 许可证
|
|
128
|
+
|
|
129
|
+
MIT License
|