MCP Presentations - Remote MCP Server with PowerPoint Creation
This MCP server runs on Cloudflare Workers and provides five tools:
- ✅ add - Simple addition calculator
- ✅ calculate - Multi-operation calculator (add, subtract, multiply, divide)
- ✅ create_presentation - Creates PowerPoint presentations and stores them in R2
- ✅ get_presentation_url - Retrieves download URL for stored presentations
- ✅ list_presentations - Lists all stored presentations with metadata
Architecture
This project uses:
- Main Worker (TypeScript) - MCP server that handles tool requests
- R2 Storage - Cloudflare R2 bucket with public access for storing generated presentations
Generated presentations are automatically stored in R2 with metadata and can be accessed directly via public R2 URLs, leveraging Cloudflare's global CDN for fast downloads.
Get started:
This will deploy your MCP server to a URL like: remote-mcp-server-authless.<your-account>.workers.dev/sse
Alternatively, you can use the command line below to get the remote MCP Server created on your local machine:
npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-authless
🚀 Quick Deployment
Prerequisites: Create R2 bucket first (if not already created)
wrangler r2 bucket create mcp-presentations
Deploy the worker:
wrangler deploy
Before deploying to production, update WORKER_URL in wrangler.jsonc to your production URL.
See DEPLOYMENT.md and R2-STORAGE.md for detailed instructions.
🎨 Using the PowerPoint Tool
The create_presentation tool creates presentations and stores them in R2:
- title: Presentation filename
- slides: Array of slide objects with layout, title, and bullets
Example:
{
"title": "My Presentation",
"slides": [
{
"layout": "title",
"title": "Welcome"
},
{
"layout": "title_and_content",
"title": "Key Points",
"bullets": ["Point 1", "Point 2", "Point 3"]
}
]
}
Returns: Download URL and metadata
Additional Tools
Get presentation URL:
{ "filename": "My_Presentation_1732567890123.pptx" }
List all presentations:
{ "limit": 10 }
See R2-STORAGE.md for complete R2 storage documentation.
Customizing your MCP Server
To add your own tools to the MCP server, define each tool inside the init() method of src/index.ts using this.server.tool(...).
Connect to Cloudflare AI Playground
You can connect to your MCP server from the Cloudflare AI Playground, which is a remote MCP client:
- Go to https://playground.ai.cloudflare.com/
- Enter your deployed MCP server URL (
remote-mcp-server-authless.<your-account>.workers.dev/sse) - You can now use your MCP tools directly from the playground!
Connect Claude Desktop to your MCP server
You can also connect to your remote MCP server from local MCP clients, by using the mcp-remote proxy.
To connect to your MCP server from Claude Desktop, follow Anthropic's Quickstart and within Claude Desktop go to Settings > Developer > Edit Config.
Update with this configuration:
{
"mcpServers": {
"calculator": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8787/sse" // or remote-mcp-server-authless.your-account.workers.dev/sse
]
}
}
}
Restart Claude and you should see the tools become available.
📚 Documentation
📖 Complete Documentation Index - Find any documentation quickly!
Quick Access
- R2-STORAGE.md - R2 storage configuration and usage guide
- QUICKREF.md - Quick reference card with common commands
- DEPLOYMENT.md - Detailed deployment guide (step-by-step)
- EXAMPLES.md - PowerPoint usage examples and AI prompts
- IMPLEMENTATION.md - Technical architecture details
- SUMMARY.md - Complete project overview
- ARCHITECTURE.md - System architecture and diagrams
- TESTING.md - Comprehensive testing guide
- CHANGELOG.md - Version history and roadmap
🛠️ Helper Scripts
deploy.ps1- One-command deployment for both workersdev.ps1- Instructions for local development setup
