PptxGenJS MCP 服务器
一个已准备好投入生产的模型上下文协议(MCP)服务器,通过它提供PowerPoint演示文稿创建功能 PptxGenJS这使得任何大型语言模型(LLM)都能通过编程方式创建、修改和导出PowerPoint演示文稿。
特点/特性
- 创建演示文稿生成带有自定义元数据的新PowerPoint演示文稿
- 管理幻灯片添加幻灯片并使用各种版式进行组织
- 丰富内容添加文本、形状、图片、表格和图表
- 多种图表类型支持柱状图、折线图、饼图、环形图、面积图和散点图
- 灵活排版文本、形状和其他元素的丰富格式化选项
- 文件导出将演示文稿保存至
.pptx格式 - 会话管理同时在内存中保持多个演示文稿
安装
npm install
npm run build使用方法
开发模式
以开发模式运行服务器,并启用自动重载功能:
npm run dev生产模式
构建并运行编译后的版本:
npm run build
node dist/index.jsMCP 检测器
使用MCP Inspector测试服务器:
npm run inspector可用工具
1. 创建演示文稿
创建一个新的PowerPoint演示文稿。
参数:
id(可选):自定义演示文稿IDtitle(可选):演示文稿标题author(可选):作者姓名subject(可选):主题company(可选):公司名称
返回值: 后续操作所用的演示文稿ID
2. 添加幻灯片
在演示文稿中添加一张新幻灯片。
参数:
presentationId(必填):演示文稿IDlayout(可选):幻灯片布局名称
返回值: 幻灯片编号
3. 添加文本
在幻灯片中添加文本并应用格式化选项。
参数:
presentationId(必填):演示文稿IDslideNumber(必填):目标幻灯片(从1开始计数)text(必填):文本内容x,y,w,h位置和尺寸(以英寸为单位)fontSize以点为单位的字体大小bold,italic文本样式设置color文本颜色(十六进制格式)align文本对齐(左对齐、居中对齐、右对齐、两端对齐)
4. 添加形状
在幻灯片中添加形状。
参数:
presentationId(必填):演示文稿IDslideNumber(必填):目标幻灯片shape(必填):形状类型(矩形、椭圆、圆角矩形、三角形等)x,y,w,h(必填):位置和大小fill填充颜色(十六进制)line线条颜色(十六进制)lineSize线条粗细
5. 添加图片
从文件路径或URL添加图片。
参数:
presentationId(必填):演示文稿IDslideNumber(必填):目标幻灯片path(必填):文件路径或URLx,y(必填):职位w,h(可选):尺寸
6. 添加表格
添加包含数据的表格。
参数:
presentationId(必填):演示文稿IDslideNumber(必填):目标幻灯片rows(必需):单元格值的二维数组x,y,w,h位置和大小
7. 添加图表
添加带有数据可视化的图表。
参数:
presentationId(必填):演示文稿IDslideNumber(必填):目标幻灯片chartType(必填):柱状图、折线图、饼图、环形图、面积图、散点图data(必需):数据系列数组x,y,w,h位置和大小title图表标题
8. 保存演示文稿
将演示文稿保存到文件。
参数:
presentationId(必填):演示文稿IDoutputPath(必填):输出文件路径(例如,'./output.pptx')
返回值: 完整文件路径
9. 列出演示文稿
列出内存中所有活动的演示文稿。
返回值: 演示元数据数组
10. 删除演示文稿
从内存中移除演示文稿。
参数:
presentationId(必填):要删除的演示文稿ID
与Claude桌面版的集成
添加到您的Claude桌面配置中(claude_desktop_config.json):
{
"mcpServers": {
"pptxgenjs": {
"command": "node",
"args": ["/path/to/pptxgenjs-mcp-server/dist/index.js"]
}
}
}示例工作流程
// 1. Create a presentation
const { presentationId } = await create_presentation({
title: "Q4 Business Review",
author: "John Doe",
company: "Acme Corp"
});
// 2. Add a title slide
await add_slide({ presentationId });
await add_text({
presentationId,
slideNumber: 1,
text: "Q4 Business Review",
x: 1,
y: 2,
w: 8,
h: 1,
fontSize: 44,
bold: true,
align: "center"
});
// 3. Add a slide with a chart
await add_slide({ presentationId });
await add_chart({
presentationId,
slideNumber: 2,
chartType: "bar",
data: [
{
name: "Revenue",
labels: ["Q1", "Q2", "Q3", "Q4"],
values: [100, 120, 140, 160]
}
],
title: "Quarterly Revenue"
});
// 4. Save the presentation
await save_presentation({
presentationId,
outputPath: "./Q4-Review.pptx"
});建筑学
- index.ts 翻译为中文是“索引文件(TypeScript)”,或者简称为“TS入口文件”。这里,“index”通常表示这是该目录或项目中的主入口文件,“.ts”表示这是一个TypeScript文件MCP服务器入口点,带有请求处理程序
- presentation-manager.ts 翻译为中文是:“演示管理器.ts”(注:.ts 通常表示 TypeScript 文件扩展名,在中文语境下,我们通常会保留原文件扩展名,不直接翻译)管理演示的生命周期和状态
- tool-handler.ts 翻译为中文是“工具处理程序.ts”。不过,在实际编程或技术文档中,我们通常会直接保留文件扩展名(如 .ts 表示 TypeScript 文件)不变,仅翻译文件名部分,所以也可以简化为“工具处理器(tool-handler)文件”。但根据您的要求,这里给出了完整的翻译实现工具执行逻辑
- tools/index.ts 翻译为中文是:工具/索引.ts工具定义和模式
要求
- Node.js 版本 >= 18.0.0
- TypeScript 5.x
- MCP SDK 1.x
- PptxGenJS 4.x
许可证
ISC(互联网标准委员会/信息安全保障/其他根据上下文可能的翻译,具体需根据实际语境确定)
贡献;做出贡献
欢迎贡献!请确保所有更改都保持向后兼容性,并包含适当的测试。
