PptxGenJS MCP Server
Click on "Install 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 ServerCreate 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.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Hrithik-s-Raj/PptxGenJS-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server