Skip to main content
Glama
leanzero-srl

MCP Document Processor

Official
by leanzero-srl

create-pptx

Create editable PowerPoint presentations from markdown. Markdown headings become slides, with support for tables, charts, and bullet lists.

Instructions

Create an EDITABLE PowerPoint presentation (.pptx) you can open in PowerPoint / Keynote / Google Slides. USE when the user asks for slides / a deck / a presentation / a pitch deck / 'powerpoint' / 'keynote'. NOT for a flowing document (→ create-doc / create-pdf), code/repo docs (→ create-markdown), or pure tabular data (→ create-excel). SLIDE STRUCTURE: the title becomes a centered title slide; EACH '## ' heading starts a NEW slide whose body is the markdown beneath it. Inside a slide, '### ' is a sub-heading, '- '/'1. ' are bullets, '| a | b |' GitHub tables render as native slide tables, a chart fenced block (first line 'type: bar|column|line|pie|doughnut|area', optional 'title:', then a markdown table whose first column is the category and each other column is a data series) becomes a NATIVE editable chart, and fenced code blocks render as monospace. Keep each slide focused — a few bullets, not a wall of text. Styled from the same 8 presets as create-doc (colors/fonts map onto the slides). Supported markdown: '# H1' '## H2' '### H3' headings; 'bold'; 'italic'; 'code'; '- ' or '1. ' lists; '> ' blockquotes; '---' horizontal rule; fenced code blocks; '| a | b |' GitHub tables (with a '|---|---|' separator row); 'text' links. EXAMPLE content: "## Problem\n- Manual steps are slow\n- Errors slip through\n\n## Our Solution\n- One-click automation\n- Built-in checks\n\n## Results\n| Metric | Before | After |\n|---|---|---|\n| Time | 2h | 5m |". Title MUST be specific. Use dryRun: true to preview the slide breakdown. (To make a fixed, non-editable deck use create-pdf instead.)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNoTags for registry search and discovery.
styleNoAdvanced: fine-grained style overrides merged on top of stylePreset.
titleYesSpecific descriptive title (rejected: 'Document', 'Untitled', etc.). Becomes the title slide.
dryRunNoReturn a preview (title, slide count, section headings) without writing the file (default: false).
tablesNoOptional tables as 2D arrays. First row is the header. Rendered as native slide tables, appended after the body.
contentNoPREFERRED. The entire document body as ONE markdown string. Supported markdown: '# H1' '## H2' '### H3' headings; '**bold**'; '*italic*'; '`code`'; '- ' or '1. ' lists; '> ' blockquotes; '---' horizontal rule; ```fenced code blocks```; '| a | b |' GitHub tables (with a '|---|---|' separator row); '[text](https://url)' links. The title is added as the document H1 automatically, so start the body at '## '. EXAMPLE content: "## Overview\nThis report covers **Q2** results.\n\n### Highlights\n- Revenue up *18%*\n- Two new markets\n\n| Metric | Value |\n|---|---|\n| MRR | $42k |\n| Churn | 1.2% |\n\n> Next review: July." Use this instead of `paragraphs` unless you need per-paragraph style objects.
docTypeNoTone and depth of the documentation.
categoryNoDocument category for subfolder organization.
uploadUrlNoOPTIONAL. HTTPS URL of a receiver that will accept a JSON envelope `{data:base64, filename, mimeType, size}` POSTed with this Bearer auth. If you have NOT been given an uploadUrl in your context, OMIT this field and the tool just writes the file locally. Single-use semantics — do not retry on 4xx. Works with any compliant receiver (CogniRunner attachment-upload web trigger is the reference implementation, but the contract is generic).
clientHintNoHow the response should be shaped. 'interactive' = polished one-line message for end-users (no chatty registry/lineage notes). 'agent' = verbose response with all metadata for AI consumption. 'auto' (default) = detect from input shape or MCP_CLIENT_TYPE env var, falling back to 'agent'.
outputPathNoOptional. Default: derived from title, placed under docs/<category>/.
paragraphsNoALTERNATIVE to `content`. Body as an array of markdown strings or { text, headingLevel } objects. Prefer the single `content` string. Each '## ' heading starts a new slide.
descriptionNoBrief description stored in the registry; also used as the title-slide subtitle when the body has no preamble.
stylePresetNoStyle preset. 'claude-like' (modern blue-accented professional) is the default for general-purpose docs. 'professional' is the executive serif look. Auto-selected from category if omitted.
uploadFilenameNoOPTIONAL. Filename to put in the upload envelope. Defaults to the local file's basename. Useful when the local file got auto-suffixed (e.g. duplicate prevention) and you want a clean name on the receiver side.
uploadAuthHeaderNoOPTIONAL. Authorization header value for uploadUrl (e.g. 'Bearer abc123'). REQUIRED when uploadUrl is set; ignored otherwise. Never logged.
enforceDocsFolderNoIf false, allow output outside docs/. Default: true (recommended).
preventDuplicatesNoIf false, allow same-title duplicates. Default: true (recommended).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description fully carries the burden. It details slide structure (title slide, ## for new slides), markdown support, native chart creation, style presets, and dry-run behavior. Does not mention rate limits or auth, but those are not critical for this tool. The description is transparent about what the tool produces and how it behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is comprehensive but somewhat lengthy. It front-loads the core purpose and usage, then details slide structure and markdown. Every sentence adds value, but some redundancy (markdown lists repeated) could be trimmed. It balances completeness with readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 18 parameters and no output schema, the description covers key behavior: slide generation, markdown rendering, chart creation, styling, dry run. It lacks information on return format (but no output schema needed) and pagination. Sufficient for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all 18 parameters have descriptions), so the baseline is 3. The description adds significant value beyond schema by explaining how headings map to slides, how to structure content, the chart syntax, and the relationship between content and paragraphs. This helps the agent use parameters effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it creates an editable .pptx presentation and distinguishes from siblings like create-doc, create-pdf, create-markdown, create-excel by specifying use cases (slides/decks) and output format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'USE when the user asks for slides... NOT for flowing document...' and lists alternatives (create-doc/create-pdf/create-markdown/create-excel). Also mentions dryRun for preview, providing clear when-to-use and when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/leanzero-srl/leanzero-mcp-doc-processor'

If you have feedback or need assistance with the MCP directory API, please join our Discord server