PptxGenJS MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PptxGenJS MCP Server Create a Q4 business review presentation with a revenue chart and save."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PptxGenJS MCP Server
A production-ready Model Context Protocol (MCP) server that provides PowerPoint presentation creation capabilities through PptxGenJS. This allows any LLM to create, modify, and export PowerPoint presentations programmatically.
Features
Create Presentations: Generate new PowerPoint presentations with custom metadata
Manage Slides: Add and organize slides with various layouts
Rich Content: Add text, shapes, images, tables, and charts
Multiple Chart Types: Support for bar, line, pie, doughnut, area, and scatter charts
Flexible Formatting: Extensive formatting options for text, shapes, and other elements
File Export: Save presentations to
.pptxformatSession Management: Maintain multiple presentations in memory simultaneously
Related MCP server: PptxGenJS MCP Server
Installation
npm install
npm run buildUsage
Development Mode
Run the server in development mode with auto-reload:
npm run devProduction Mode
Build and run the compiled version:
npm run build
node dist/index.jsMCP Inspector
Test the server using the MCP Inspector:
npm run inspectorAvailable Tools
1. create_presentation
Create a new PowerPoint presentation.
Parameters:
id(optional): Custom presentation IDtitle(optional): Presentation titleauthor(optional): Author namesubject(optional): Subjectcompany(optional): Company name
Returns: Presentation ID for subsequent operations
2. add_slide
Add a new slide to a presentation.
Parameters:
presentationId(required): The presentation IDlayout(optional): Slide layout name
Returns: Slide number
3. add_text
Add text to a slide with formatting options.
Parameters:
presentationId(required): The presentation IDslideNumber(required): Target slide (1-based)text(required): Text contentx,y,w,h: Position and size in inchesfontSize: Font size in pointsbold,italic: Text stylingcolor: Text color (hex format)align: Text alignment (left, center, right, justify)
4. add_shape
Add shapes to slides.
Parameters:
presentationId(required): The presentation IDslideNumber(required): Target slideshape(required): Shape type (rect, ellipse, roundRect, triangle, etc.)x,y,w,h(required): Position and sizefill: Fill color (hex)line: Line color (hex)lineSize: Line thickness
5. add_image
Add images from file paths or URLs.
Parameters:
presentationId(required): The presentation IDslideNumber(required): Target slidepath(required): File path or URLx,y(required): Positionw,h(optional): Dimensions
6. add_table
Add tables with data.
Parameters:
presentationId(required): The presentation IDslideNumber(required): Target sliderows(required): 2D array of cell valuesx,y,w,h: Position and size
7. add_chart
Add charts with data visualization.
Parameters:
presentationId(required): The presentation IDslideNumber(required): Target slidechartType(required): bar, line, pie, doughnut, area, scatterdata(required): Array of data seriesx,y,w,h: Position and sizetitle: Chart title
8. save_presentation
Save presentation to file.
Parameters:
presentationId(required): The presentation IDoutputPath(required): Output file path (e.g., './output.pptx')
Returns: Full file path
9. list_presentations
List all active presentations in memory.
Returns: Array of presentation metadata
10. delete_presentation
Remove a presentation from memory.
Parameters:
presentationId(required): The presentation ID to delete
Integration with Claude Desktop
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"pptxgenjs": {
"command": "node",
"args": ["/path/to/pptxgenjs-mcp-server/dist/index.js"]
}
}
}Example Workflow
// 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"
});Architecture
index.ts: MCP server entry point with request handlers
presentation-manager.ts: Manages presentation lifecycle and state
tool-handler.ts: Implements tool execution logic
tools/index.ts: Tool definitions and schemas
Requirements
Node.js >= 18.0.0
TypeScript 5.x
MCP SDK 1.x
PptxGenJS 4.x
License
ISC
Contributing
Contributions are welcome! Please ensure all changes maintain backward compatibility and include appropriate tests.
Available Tools
10 toolsadd_chartA
Add a chart (bar, line, pie, etc.) to a slide with data.
Inputs: data (required), chartType (required), slideNumber (required), presentationId (required), +5 more.
add_imageA
Add an image to a slide from a file path or URL.
Inputs: x (required), y (required), path (required), slideNumber (required), +3 more.
add_shapeB
Add a shape to a slide (rectangle, circle, triangle, etc.)
Inputs: h (required), w (required), x (required), y (required), +6 more.
add_slideA
Add a new slide to an existing presentation. Returns the slide number.
Inputs: presentationId (required), layout.
add_tableA
Add a table to a slide with rows and columns of data.
Inputs: rows (required), slideNumber (required), presentationId (required), h, +3 more.
add_textC
Add text to a slide with various formatting options.
Inputs: text (required), slideNumber (required), presentationId (required), h, +8 more.
create_presentationA
Create a new PowerPoint presentation. Returns a presentation ID that should be used for all subsequent operations.
Inputs: id, title, author, company, +1 more.
delete_presentationA
Delete a presentation from memory.
Inputs: presentationId (required).
list_presentationsA
List all active presentations in memory with their IDs and metadata.
Inputs: no named parameters.
save_presentationA
Save the presentation to a file. Returns the full path where the file was saved.
Inputs: outputPath (required), presentationId (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool targets a distinct resource and action: presentation lifecycle (create, save, list, delete) and slide content additions (text, shape, image, table, chart). There is no overlap or ambiguity between tool purposes.
All tools follow a consistent verb_noun snake_case pattern (e.g., add_slide, create_presentation, list_presentations). Minor variation between 'add' and 'create' is still logically consistent and predictable.
With 10 tools, the server is well-scoped for creating and saving PowerPoint presentations. Each tool covers a necessary aspect without redundancy, making the set manageable and purposeful.
The core workflow of creating a presentation, adding various content types, and saving is fully covered. However, there are minor gaps such as no ability to delete slides or update existing slide content, which would be useful for editing but are not critical for basic generation.
Maintenance
Related MCP Connectors
Generate, edit, merge, translate and PDF-convert PowerPoint (.pptx) over MCP. 8 tools.
Generate and manage Storydoc presentations from any MCP-compatible client.
AI presentation maker and slide generator for MCP clients: create, edit and export editable PowerPoint (.pptx) decks and Word (.docx) documents from a chat prompt. Add your own text or notes as sources, pick a format (pitch deck, report, lecture, one-pager) and let Slaide plan, write and design the slides. Search and reopen your documents, track build progress, cancel jobs and download the finished file. Free account, OAuth sign-in, no API key.
AI presentation maker and slide generator for MCP clients: create, edit and export editable PowerPoint (.pptx) decks and Word (.docx) documents from a chat prompt. Add your own text or notes as sources, pick a format (pitch deck, report, lecture, one-pager) and let Slaide plan, write and design the slides. Search and reopen your documents, track build progress, cancel jobs and download the finished file. Free account, OAuth sign-in, no API key.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA FastMCP-powered server for programmatically creating, editing, and rendering PowerPoint (PPTX) presentations with features for slide creation, content insertion, and PNG rendering.35Apache 2.0
- AlicenseNot gradedqualityDmaintenance基于 PptxGenJS 的 MCP 服务器,提供 PowerPoint 演示文稿创建和编辑功能,支持幻灯片操作、内容添加及多种启动模式。1MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables creating, editing, and manipulating PowerPoint presentations programmatically through Claude and other MCP-compatible clients.MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that lets any AI model create standardised, high-quality PowerPoint presentations via a clean JSON API.43 npmMIT