Skip to main content
Glama
supercurses

Powerpoint MCP Server

by supercurses

powerpoint MCP server

A MCP server project that creates powerpoint presentations

Components

Tools

The server implements multiple tools:

  • create-presentation: Starts a presentation

    • Takes "name" as required string arguments

    • Creates a presentation object

  • add-slide-title-only: Adds a title slide to the presentation

    • Takes "presentation_name" and "title" as required string arguments

    • Creates a title slide with "title" and adds it to presentation

  • add-slide-section-header: Adds a section header slide to the presentation

    • Takes "presentation_name" and "header" as required string arguments

    • Creates a section header slide with "header" (and optionally "subtitle") and adds it to the presentation

  • add-slide-title-content: Adds a title with content slide to the presentation

    • Takes "presentation_name", "title", "content" as required string arguments

    • Creates a title with content slide with "title" and "content" and adds it to presentation

  • add-slide-title-with-table: Adds a title slide with a table

    • Takes "presentation_name", "title", "data" as required string and array arguments

    • Creates a title slide with "title" and adds a table dynamically built from data

  • add-slide-title-with-chart: Adds a title slide with a chart

    • Takes "presentation_name", "title", "data" as required string and object arguments

    • Creates a title slide with "title" and adds a chart dynamically built from data. Attempts to figure out the best type of chart from the data source.

  • add-slide-picture-with-caption: Adds a picture with caption slide

    • Takes "presentation_name", "title", "caption", "image_path" as required string arguments

    • Creates a picture with caption slide using the supplied "title", "caption", and "image_path". Can either use images created via the "generate-and-save-image" tool or use an "image_path" supplied by the user (image must exist in folder_path)

  • open-presentation: Opens a presentation for editing

    • Takes "presentation_name" as required arguments

    • Opens the given presentation and automatically saves a backup of it as "backup.pptx"

    • This tool allows the client to work with existing pptx files and add slides to them. Just make sure the client calls "save-presentation" tool at the end.

  • save-presentation: Saves the presentation to a file.

    • Takes "presentation_name" as required arguments.

    • Saves the presentation to the folder_path. The client must call this tool to finalize the process.

  • generate-and-save-image: Generates an image for the presentation using a FLUX model

    • Takes "prompt" and "file_name" as required string arguments

    • Creates an image using the free FLUX model on TogetherAI (requires an API key)

Related MCP server: PowerPoint MCP Server

Configuration

An environment variable is required for image generation via TogetherAI Register for an account: https://api.together.xyz/settings/api-keys

"env": {
        "TOGETHER_API_KEY": "api_key"
      }

A folder_path is required. All presentations and images will be saved to this folder.

"--folder-path",
        "/path/to/decks_folder"

Quickstart

Install

Make sure you have UV installed

MacOS/Linux

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Clone the repo

git clone https://github.com/supercurses/powerpoint.git

Claude Desktop

On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

  • --directory: the path where you cloned the repo above

  • --folder-path: the path where powerpoint decks and images will be saved to. Also the path where you should place any images you want the MCP server to use.

  # Add the server to your claude_desktop_config.json
  "mcpServers": {
    "powerpoint": {
      "command": "uv",
      "env": {
        "TOGETHER_API_KEY": "api_key"
      },
      "args": [
        "--directory",
        "/path/to/powerpoint",
        "run",
        "powerpoint",
        "--folder-path",
        "/path/to/decks_folder"
      ]
    }

Usage Examples

Create a presentation about fish, create some images and include tables and charts
Create a presentation about the attached paper. Please use the following images in the presentation:
author.jpeg

Assuming you have SQLite MCP Server installed.

Review 2024 Sales Data table. Create a presentation showing current trends, use tables and charts as appropriate

License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

Available Tools

11 tools
add-slide-comparisonA

Add a new a comparison slide with title and comparison content. Use when you wish to compare two concepts

ParametersJSON Schema
NameRequiredDescriptionDefault
presentation_nameYesName of the presentation to add the slide to
titleYesTitle of the slide
left_side_titleYesTitle of the left concept
left_side_contentYesContent/body text of left concept. Separate main points with a single carriage return character.Make sub-points with tab character.Do not use bullet points, asterisks or dashes for points.Max main points is 4
right_side_titleYesTitle of the right concept
right_side_contentYesContent/body text of right concept. Separate main points with a single carriage return character.Make sub-points with tab character.Do not use bullet points, asterisks or dashes for points.Max main points is 4

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the tool adds a slide, it doesn't cover critical aspects like whether this modifies an existing presentation, requires specific permissions, has side effects, or how errors are handled. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is highly concise and front-loaded, consisting of just two sentences that directly state the purpose and usage guidelines. Every sentence earns its place with no wasted words, making it efficient and easy to parse.

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

Completeness3/5

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

Given the tool's complexity (6 required parameters, no output schema, and no annotations), the description is minimally adequate. It clarifies the purpose and usage but lacks details on behavioral traits, error handling, or output expectations. With no annotations to fill gaps, it should do more to be fully complete for a mutation tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all parameters thoroughly. The description adds no additional meaning beyond what the schema provides, such as explaining relationships between parameters or usage nuances. The baseline score of 3 reflects adequate coverage from the schema alone.

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

Purpose4/5

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

The description clearly states the action ('Add a new comparison slide') and the resource ('with title and comparison content'), making the purpose evident. However, it doesn't explicitly differentiate this tool from sibling tools like 'add-slide-title-content' or 'add-slide-title-with-table', which also add slides with specific content types.

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

Usage Guidelines4/5

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

The description provides explicit guidance on when to use this tool ('Use when you wish to compare two concepts'), which is helpful. It doesn't mention when not to use it or name specific alternatives among the sibling tools, but the context is clear enough for basic decision-making.

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

add-slide-picture-with-captionC

Add a new slide with a picture and caption to an existing presentation

ParametersJSON Schema
NameRequiredDescriptionDefault
presentation_nameYesName of the presentation to add the slide to
titleYesTitle of the slide
captionYesCaption text to appear below the picture
image_pathYesPath to the image file to insert

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool adds a slide, implying a write operation, but doesn't cover critical aspects like whether it modifies the presentation in-place, requires specific permissions, handles errors (e.g., invalid image paths), or returns any confirmation. This leaves significant gaps for a mutation tool.

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

Conciseness4/5

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

The description is a single, clear sentence that efficiently conveys the core action and content. It's front-loaded with the main purpose and avoids unnecessary details. However, it could be slightly more structured by explicitly mentioning the target ('existing presentation') to enhance clarity without adding bulk.

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

Completeness2/5

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

Given the tool is a mutation operation (adding slides) with no annotations and no output schema, the description is incomplete. It doesn't address behavioral traits like side effects, error handling, or return values, which are crucial for safe and effective use. The high schema coverage helps with parameters, but overall context is lacking.

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

Parameters3/5

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

The input schema has 100% description coverage, so parameters are well-documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain relationships between parameters like how 'title' and 'caption' are positioned relative to the image). Baseline score of 3 is appropriate as the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Add a new slide') and specifies the content ('with a picture and caption'), distinguishing it from siblings like 'add-slide-title-only' or 'add-slide-title-with-table'. However, it doesn't explicitly mention the target ('to an existing presentation'), which is implied but could be more precise in differentiating from 'create-presentation'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'add-slide-title-content' or 'add-slide-comparison'. It lacks context such as use cases for picture-based slides versus other slide types, prerequisites (e.g., needing an existing presentation), or exclusions (e.g., not for creating new presentations).

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

add-slide-section-headerC

This tool adds a section header (a.k.a segue) slide to the presentation you are working on. The tool doesn't return anything. It requires the presentation_name to work on.

ParametersJSON Schema
NameRequiredDescriptionDefault
presentation_nameYesName of the presentation to add the slide to
headerYesSection header title
subtitleNoSection header subtitle

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'The tool doesn't return anything', which is useful, but lacks details on side effects (e.g., whether it modifies an existing presentation in-place), error handling, or permissions needed. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness4/5

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

The description is concise with two sentences that directly address the tool's action and a key requirement. It avoids unnecessary words, though it could be slightly more structured by front-loading the core purpose more explicitly.

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

Completeness3/5

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

Given the tool's moderate complexity (adding a slide with specific content), no annotations, no output schema, and 100% schema coverage, the description is minimally adequate. It covers the basic purpose and a behavioral note about no return value, but lacks details on usage context, error cases, or integration with sibling tools, leaving room for improvement.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters (presentation_name, header, subtitle) with clear descriptions. The description adds no additional meaning beyond the schema, such as examples or constraints, but doesn't need to compensate for gaps. Baseline 3 is appropriate when the schema handles parameter documentation adequately.

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

Purpose4/5

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

The description clearly states the verb ('adds') and resource ('a section header slide to the presentation you are working on'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'add-slide-title-only' or 'add-slide-title-content', which also add slides but with different content types.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as when a section header is needed versus other slide types like title slides or comparison slides. It mentions that it 'requires the presentation_name to work on', but this is a basic requirement rather than contextual usage advice.

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

add-slide-title-contentC

Add a new slide with a title and content to an existing presentation

ParametersJSON Schema
NameRequiredDescriptionDefault
presentation_nameYesName of the presentation to add the slide to
titleYesTitle of the slide
contentYesContent/body text of the slide. Separate main points with a single carriage return character.Make sub-points with tab character.Do not use bullet points, asterisks or dashes for points.Max main points is 4

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is an 'Add' operation (implying mutation) but doesn't describe permissions needed, whether the slide is appended or inserted at a specific position, what happens on duplicate presentation names, or what the tool returns. For a mutation tool with zero annotation coverage, this is inadequate.

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

Conciseness5/5

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

The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for this tool's complexity and front-loaded with the essential information.

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

Completeness2/5

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

This is a mutation tool with no annotations and no output schema, yet the description provides minimal behavioral context. It doesn't explain what happens after adding the slide (e.g., success/failure response, slide position, error conditions). Given the tool's purpose and lack of structured data, the description should do more to compensate.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain formatting rules for 'content' that the schema already covers). Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Add a new slide'), the resource ('to an existing presentation'), and the content ('with a title and content'). It distinguishes from siblings like 'add-slide-title-only' by specifying both title and content, but doesn't explicitly contrast with all alternatives like 'add-slide-comparison'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus its many siblings (e.g., 'add-slide-title-only', 'add-slide-title-with-chart', 'add-slide-comparison'). It mentions 'existing presentation' which implies the presentation must already exist, but doesn't reference 'create-presentation' for when a presentation doesn't exist yet.

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

add-slide-title-onlyB

This tool adds a new title slide to the presentation you are working on. The tool doesn't return anything. It requires the presentation_name to work on.

ParametersJSON Schema
NameRequiredDescriptionDefault
presentation_nameYesName of the presentation to add the slide to
titleYesTitle of the slide

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. It states 'The tool doesn't return anything,' which is useful behavioral info, but lacks details on permissions, side effects (e.g., if it modifies existing slides), or error handling. For a mutation tool with zero annotation coverage, this is inadequate.

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

Conciseness4/5

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

The description is appropriately sized with two sentences, front-loading the core purpose. However, the second sentence could be more integrated or omitted since schema covers requirements, slightly reducing efficiency.

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

Completeness2/5

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

Given no annotations, no output schema, and a mutation tool, the description is incomplete. It lacks crucial context like what happens on success/failure, how the slide is positioned, or dependencies (e.g., requires an open presentation). More detail is needed for safe agent use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters (presentation_name and title). The description adds minimal value by mentioning presentation_name is required, but doesn't provide additional context like format examples or constraints beyond the schema.

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 the specific action ('adds a new title slide') and resource ('to the presentation you are working on'), distinguishing it from siblings like add-slide-comparison or add-slide-title-content by specifying it's title-only. It's not a tautology of the tool name, which lacks context.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like add-slide-title-content or add-slide-title-with-chart. It mentions the presentation_name requirement but doesn't help differentiate among similar slide-adding tools in the sibling list.

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

add-slide-title-with-chartC

Add a new slide with a title and chart. The chart type will be automatically selected based on the data structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
presentation_nameYesName of the presentation to add the slide to
titleYesTitle of the slide
dataYesChart data structure

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that 'chart type will be automatically selected based on the data structure,' which adds some context about automation. However, it lacks critical details: whether this is a mutation (likely, but not stated), what permissions are needed, if there are rate limits, or what happens on failure. For a tool that creates content with no annotation coverage, this is insufficient.

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

Conciseness5/5

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

The description is a single, efficient sentence that states the core functionality upfront. There's no wasted text or redundancy, making it easy for an agent to parse quickly. It's appropriately sized for the tool's complexity.

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

Completeness2/5

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

Given the tool's complexity (3 parameters with nested objects, no output schema, and no annotations), the description is incomplete. It doesn't cover behavioral aspects like mutation effects, error handling, or output format. For a tool that creates slides with charts, more context is needed to guide the agent effectively, especially without annotations or output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents the three parameters. The description adds minimal value beyond the schema: it implies the 'data' parameter influences chart type selection, but doesn't explain how. With high schema coverage, the baseline is 3, as the description doesn't significantly enhance parameter understanding.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Add a new slide with a title and chart.' It specifies both the action (add) and the resources (slide with title and chart). However, it doesn't explicitly differentiate from sibling tools like 'add-slide-title-with-table' or 'add-slide-title-only,' which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'add-slide-title-with-table' for tabular data or 'add-slide-title-only' for slides without charts, nor does it specify prerequisites or exclusions. This leaves the agent without clear usage context.

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

add-slide-title-with-tableA

Add a new slide with a title and table containing the provided data

ParametersJSON Schema
NameRequiredDescriptionDefault
presentation_nameYesName of the presentation to add the slide to
titleYesTitle of the slide
dataYesTable data object with headers and rows

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like whether this modifies existing presentations, requires specific permissions, what happens on failure, or if there are rate limits. 'Add' implies mutation but lacks safety or operational context.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for this functionality and front-loads the key information.

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

Completeness3/5

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

For a mutation tool with no annotations and no output schema, the description is minimal. While it states the basic purpose clearly, it lacks important context about what the tool returns, error conditions, or behavioral constraints that would be needed for safe and effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all 3 parameters. The description adds no additional meaning beyond what's in the schema - it mentions 'title' and 'data' but doesn't explain their formats or relationships beyond the schema's detailed specifications.

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 the specific action ('Add a new slide'), the resource ('with a title and table'), and distinguishes it from siblings by specifying the table content. It explicitly mentions 'title and table' which differentiates it from tools like 'add-slide-title-only' or 'add-slide-title-with-chart'.

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

Usage Guidelines3/5

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

The description implies usage when you need a slide with both a title and table, but doesn't explicitly state when to choose this over alternatives like 'add-slide-title-content' or 'add-slide-title-with-chart'. No guidance on prerequisites or exclusions is provided.

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

create-presentationB

This tool starts the process of generating a new powerpoint presentation with the name given by the user. Use this tool when the user requests to create or generate a new presentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the presentation (without .pptx extension)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'starts the process of generating,' which implies a creation operation but doesn't clarify what 'starts' entails (e.g., whether it creates a file immediately, requires saving later, or has side effects). It lacks details on permissions, error handling, or what happens after generation, leaving significant gaps for a mutation tool.

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

Conciseness4/5

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

The description is concise and front-loaded, consisting of two sentences that directly address purpose and usage. There's no wasted text, and it efficiently communicates the core information. However, it could be slightly more structured by separating purpose and guidelines more clearly, preventing a perfect score.

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

Completeness2/5

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

Given the complexity of a presentation creation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a presentation object, success status), potential errors, or how it interacts with sibling tools like 'save-presentation'. For a mutation tool, this leaves too many unknowns for effective agent use.

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

Parameters3/5

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

The schema description coverage is 100%, with the 'name' parameter fully documented in the input schema. The description adds minimal value beyond the schema by mentioning 'name given by the user' but doesn't provide additional context like naming conventions or constraints. This meets the baseline of 3 since the schema handles most of the parameter documentation.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'starts the process of generating a new powerpoint presentation with the name given by the user.' It specifies the verb ('starts generating'), resource ('new powerpoint presentation'), and key input ('name given by the user'). However, it doesn't explicitly differentiate from sibling tools like 'open-presentation' or 'save-presentation', which prevents a perfect score.

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

Usage Guidelines3/5

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

The description provides some usage guidance: 'Use this tool when the user requests to create or generate a new presentation.' This implies the context but doesn't explicitly state when NOT to use it or mention alternatives like 'open-presentation' for existing presentations. The guidance is helpful but lacks specificity about exclusions or comparisons to siblings.

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

generate-and-save-imageA

Generates an image using a FLUX model and save the image to the specified path. The tool will return a PNG file path. It should be used when the user asks to generate or create an image or a picture.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDescription of the image to generate in the form of a prompt.
file_nameYesFilename of the image. Include the extension of .png

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool saves the image to a specified path and returns a PNG file path, which is useful. However, it lacks critical details such as potential rate limits, authentication requirements, file size constraints, or error handling, leaving significant gaps in understanding the tool's behavior.

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

Conciseness5/5

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

The description is front-loaded with the core functionality in the first sentence and uses a second sentence to provide usage guidelines. Both sentences are essential and contribute directly to understanding the tool, with no wasted words or redundancy.

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

Completeness3/5

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

Given the complexity of an image generation tool with no annotations and no output schema, the description is incomplete. It covers the basic purpose and usage but lacks details on behavioral aspects like performance, limitations, or error cases. The absence of an output schema means the description should ideally explain return values more thoroughly, which it does not.

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

Parameters3/5

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

The input schema has 100% description coverage, so the schema already documents both parameters (prompt and file_name) adequately. The description does not add any additional meaning or context beyond what the schema provides, such as examples or constraints, resulting in a baseline score of 3.

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 the specific action ('Generates an image using a FLUX model and save the image to the specified path') and distinguishes it from sibling tools focused on presentation slides. It identifies the resource (image) and the technology (FLUX model), making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool ('when the user asks to generate or create an image or a picture'), which is helpful for an AI agent. However, it does not explicitly state when NOT to use it or mention alternatives, such as other image generation tools or methods, which prevents a perfect score.

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

open-presentationB

Opens an existing presentation and saves a copy to a new file for backup. Use this tool when the user requests to open a presentation that has already been created.

ParametersJSON Schema
NameRequiredDescriptionDefault
presentation_nameYesName of the presentation to open
output_pathNoPath where to save the presentation (optional)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions saving a copy for backup, which implies non-destructive behavior, but doesn't disclose other traits like whether it requires specific permissions, what happens if the presentation doesn't exist, or if there are rate limits. For a tool with mutation implications (saving a copy) and zero annotation coverage, this is inadequate.

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

Conciseness4/5

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

The description is appropriately sized with two sentences: the first states the purpose, and the second provides usage guidelines. It's front-loaded with the core functionality. However, the second sentence could be slightly more concise (e.g., 'Use when opening an existing presentation').

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

Completeness3/5

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

Given the tool's moderate complexity (opening and saving a copy), no annotations, no output schema, and 100% schema coverage, the description is minimally adequate. It covers purpose and usage but lacks behavioral details (e.g., error handling, backup specifics) and output information, leaving gaps for an agent to operate effectively.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters fully. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain the backup purpose in relation to parameters). Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Opens an existing presentation and saves a copy to a new file for backup.' This specifies the verb (open and save copy) and resource (presentation), distinguishing it from siblings like 'create-presentation' or 'save-presentation'. However, it doesn't explicitly differentiate from 'save-presentation' in terms of backup vs. regular save.

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

Usage Guidelines4/5

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

The description provides clear context for when to use it: 'Use this tool when the user requests to open a presentation that has already been created.' This distinguishes it from 'create-presentation' for new presentations. However, it doesn't specify when NOT to use it (e.g., vs. 'save-presentation' for saving without opening) or mention alternatives explicitly.

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

save-presentationA

Save the presentation to a file. Always use this tool at the end of any process that has added slides to a presentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
presentation_nameYesName of the presentation to save
output_pathNoPath where to save the presentation (optional)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions saving to a file but lacks details on permissions, file formats, error handling, or whether it overwrites existing files. For a write operation with zero annotation coverage, this leaves significant behavioral gaps.

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

Conciseness4/5

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

The description is concise with two sentences that are front-loaded with the core purpose and usage rule. However, the second sentence could be slightly more precise (e.g., specifying 'slides' vs. other changes), but overall it's efficient with minimal waste.

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

Completeness3/5

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

Given the tool's complexity (a write operation with 2 parameters), no annotations, and no output schema, the description is adequate but incomplete. It covers purpose and usage well but lacks details on behavior, output, or error handling, making it minimally viable but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters ('presentation_name' and 'output_path'). The description doesn't add any meaning beyond what the schema provides, such as explaining parameter interactions or constraints. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('save') and resource ('presentation to a file'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from potential sibling tools like 'generate-and-save-image' or 'create-presentation', which might also involve saving operations, leaving some ambiguity in sibling context.

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?

The description provides explicit usage guidance: 'Always use this tool at the end of any process that has added slides to a presentation.' This clearly indicates when to use it (after slide additions) and implies when not to use it (e.g., at other times or for other purposes), offering strong contextual direction.

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

TDQS

A3.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity. The slide-adding tools are specialized for different slide types (comparison, picture-with-caption, section-header, title-content, title-only, title-with-chart, title-with-table), while the other tools handle presentation lifecycle operations (create, open, save) and image generation. An agent can easily select the right tool based on the desired slide type or operation.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case. The slide-adding tools consistently use 'add-slide-' prefix followed by the slide type, while other tools use clear action verbs like 'create-', 'open-', 'save-', and 'generate-and-save-'. There are no deviations in naming conventions.

Tool Count5/5

With 11 tools, this server is well-scoped for PowerPoint presentation creation and management. The count is appropriate, covering various slide types, presentation lifecycle operations, and image generation. Each tool earns its place without being excessive or insufficient for the domain.

Completeness4/5

The tool surface is nearly complete for PowerPoint presentation creation and editing. It covers creation, opening, saving, and multiple slide types. The only minor gap is the lack of tools for editing or deleting existing slides, which agents might need to work around by creating new presentations. However, core workflows for building presentations from scratch are well-covered.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/supercurses/powerpoint'

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