power-point-mcp
This server allows you to read, create, and edit a single pre-bound PowerPoint (.pptx) file through a set of structured tools:
Inspect the presentation — Retrieve high-level info such as slide count, dimensions, available layouts, and master slide details.
List all slides — Get an overview of every slide including its index, layout, title, and a short text snippet.
List available layouts — View layout names, indices, and their placeholder names.
Read a specific slide — Retrieve detailed shape-level information (including text) for any individual slide.
Create from template — Initialize the target
.pptxfile from an optional configured template, with an overwrite flag.Add a new slide — Append a slide using a named layout and optionally fill specific placeholders with text.
Set placeholder text — Update a placeholder on an existing slide by its name or by its layout index.
Set a slide's title — Directly update the title placeholder of any slide.
Delete a slide — Remove a slide from the presentation by its index.
Reorder slides — Move a slide to a new position within the presentation.
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., "@power-point-mcpadd a slide with title 'Key Findings' and three bullets"
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.
power-point-mcp
An MCP (Model Context Protocol) server that lets Claude read, create, and
edit a single, pre-bound PowerPoint file. Bind the server to one
.pptx and one optional template via environment variables; the server
refuses to touch anything else on disk. Claude can then ask for slide
metadata, list slides, read a slide's shapes, create the file from your
template, and add new slides whose text comes only from the user.
Prerequisites
Python 3.14 (matches
.python-version).uvfor environment and dependency management.
That is the entire toolchain. Nothing is installed globally.
Related MCP server: mcp-powerpoint
Setup
git clone <this-repo-url> power-point-mcp
cd power-point-mcp
uv sync # runtime deps into a local .venv
uv sync --group dev # add pytest for running the test suiteFor a step-by-step walkthrough including Claude Desktop wiring and
troubleshooting, see SETUP.md.
Configuration
The server is bound to a single PPTX file via environment variables:
Variable | Required | Purpose |
| yes | Absolute path to the one |
| no | Absolute path to a |
If PPTX_TARGET is unset, the server refuses to start.
You can put these in a .env file at the repo root (copy .env.example)
instead of exporting them every time. os.environ wins over .env so a
one-off override on the command line still works. Run
uv run power-point-mcp --doctor to validate the environment without
starting the server.
Running locally
PPTX_TARGET=/abs/path/to/deck.pptx \
PPTX_TEMPLATE=/abs/path/to/template.pptx \
uv run power-point-mcpThe server speaks MCP over stdio (FastMCP's default transport).
Claude Desktop configuration
Add an entry like this to your Claude Desktop MCP config:
{
"mcpServers": {
"power-point-mcp": {
"command": "uv",
"args": ["run", "power-point-mcp"],
"env": {
"PPTX_TARGET": "/abs/path/to/deck.pptx",
"PPTX_TEMPLATE": "/abs/path/to/template.pptx"
}
}
}
}Tools exposed
presentation_info()— slide count, dimensions, layouts, master.list_slides()— index, layout, title, text snippet for every slide.list_layouts()— name, idx, and placeholder names for every layout.read_slide(slide_index)— every shape on one slide, with its text.create_presentation_from_template(overwrite=False)— initialise the bound target fromPPTX_TEMPLATE.add_slide(layout_name, placeholders)— append a slide using a named layout; only fills placeholders you supply.set_slide_placeholder(slide_index, placeholder_name, text)— set a placeholder on an existing slide by name.set_slide_placeholder_by_idx(slide_index, placeholder_idx, text)— set a placeholder by its layout idx.set_slide_title(slide_index, text)— set the title placeholder of a slide.delete_slide(slide_index)— remove a slide.reorder_slide(slide_index, new_index)— move a slide to a new position.
Recommended companion skill
Pair this server with the academic-pptx-skill. It provides the slide-design conventions and prompts; this MCP gives Claude the file-system hands to actually write the deck.
Security note
The server only ever reads or writes PPTX_TARGET. Every path the tools
receive is routed through a single security check that compares it
against the bound target and rejects anything else. There is no
network code in the package.
Development
uv sync --group dev
uv run pytestSee docs/architecture.md for the layering and where to add new tools.
Available Tools
10 toolsadd_slideB
Add a slide using layout_name; fill ONLY supplied placeholders.
| Name | Required | Description | Default |
|---|---|---|---|
| layout_name | Yes | ||
| placeholders | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It mentions that only supplied placeholders are filled, but omits side effects, permissions, or impact on existing slides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, but it is too sparse; it could add more detail without becoming long-winded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, two parameters, and an output schema, the description fails to cover usage context, error conditions, or return value expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, yet the description only vaguely references 'layout_name' and 'placeholders' without explaining their meaning or format beyond what the schema already shows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a slide') and the key behavior ('fill ONLY supplied placeholders'), distinguishing it from sibling tools like delete_slide or list_slides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (add a slide) and hints at scope ('ONLY supplied'), but does not explicitly contrast with alternatives like set_slide_placeholder or reorder_slide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_presentation_from_templateC
Create the bound target file from PPTX_TEMPLATE.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as whether creation is idempotent, what happens on overwrite, or required permissions. The brief description adds minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but lacks essential information, making it under-specified rather than concise. Every sentence should add value; here the single sentence is ambiguous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (unknown content), the description still leaves major gaps: 'bound target file' is undefined, no mention of how the template is specified, and no explanation of the overwrite parameter. Incomplete for effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'overwrite' has a schema with default and title but no description. The tool description does not mention this parameter or explain its behavior, leaving the agent to guess. With 0% schema description coverage, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description mentions creating a file from PPTX_TEMPLATE but uses vague phrase 'bound target file' without specifying that the tool creates a presentation from a template. The purpose is somewhat clear but lacks specificity and does not distinguish from sibling tools like 'add_slide' or 'presentation_info'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as manually creating slides or using other presentation-related tools. No context is provided about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_slideC
Remove a slide from the bound presentation.
| Name | Required | Description | Default |
|---|---|---|---|
| slide_index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'Remove' but does not disclose destructive side effects, error conditions, or any behavioral requirements. With no annotations, the description fails to inform the agent about the tool's implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, consisting of a single sentence. However, it sacrifices necessary details for brevity. It is not optimally structured, lacking any front-loading of critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter with no schema description, no annotations, and an output schema, the description is severely incomplete. It does not explain the return value, parameter meaning, or context of the 'bound presentation'. The description leaves many gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (slide_index) with no description, and the tool description does not elaborate on how the parameter should be used or its valid range. Schema description coverage is 0%, and the description adds no value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Remove' and the resource 'a slide from the bound presentation', making the tool's purpose unambiguous. It's distinct from sibling tools like add_slide or reorder_slide.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of constraints, prerequisites, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_slidesA
List every slide with its layout, title, and a short text snippet.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavioral traits. It only states what the tool lists but does not explicitly indicate it is a read-only operation, whether it requires authentication, or any other behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters) and the existence of an output schema, the description is largely complete. It could mention that it returns all slides without filtering, but it is adequate for a minimal listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (0 params), and the schema coverage is 100%. The description does not need to add parameter info; it indirectly describes the output (layout, title, snippet) which is not part of parameters, so baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'slides', and specifies that it includes layout, title, and a short text snippet. It distinguishes itself from siblings like 'read_slide' (single slide) and 'presentation_info' (presentation-level info).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'read_slide' for a specific slide or 'presentation_info' for overall details. It does not mention exclusions or context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation_infoA
Return high-level facts about the bound presentation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only vaguely mentions 'high-level facts' without specifying read-only nature, performance, side effects, or any other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence that communicates the tool's purpose without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no parameters and an output schema exists, the description is reasonably complete. It could benefit from specifying a few example facts, but the output schema presumably covers details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has zero parameters (coverage 100%). Baseline for no parameters is 4. The description does not need to add parameter meaning, but it briefly indicates the kind of output (high-level facts).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Return high-level facts about the bound presentation', using a specific verb+resource. It distinguishes from sibling tools (add_slide, list_slides, etc.) which focus on slides rather than the presentation itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when high-level presentation facts are needed, but provides no explicit guidance on when to use versus alternatives, nor any conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_slideC
Return shape-level details for a single slide.
| Name | Required | Description | Default |
|---|---|---|---|
| slide_index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as mutability, performance, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence, but it lacks depth; no waste but also no valuable detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema that handles return values, the description omits essential usage context and parameter specifics for a minimal tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no parameter-level meaning beyond the schema property name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'shape-level details for a single slide', distinguishing it from sibling tools like list_slides or add_slide.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no explicit context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reorder_slideC
Move a slide to a new position.
| Name | Required | Description | Default |
|---|---|---|---|
| slide_index | Yes | ||
| new_index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral traits. It fails to disclose whether indices are zero-based or one-based, what happens to other slides (if positions shift), or any side effects. This is a critical gap for safe usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, which is easy to parse. However, extreme brevity sacrifices necessary detail, so while efficient, it is not optimally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only two parameters and an output schema exists, the description still fails to provide basic context such as index conventions, return value information, or error conditions. It is incomplete for a tool that could easily mislead if used without understanding index handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the meaning of 'slide_index' or 'new_index' beyond their names. There is no indication of constraints like range, required order, or exclusivity, so the description adds no value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Move a slide to a new position' clearly states the action and resource, using a specific verb and noun that distinguishes it from deletion or addition verbs, though it does not explicitly differentiate from sibling tools like reorder_slide vs. delete_slide+add_slide.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as delete_slide or add_slide, nor are there any prerequisites or context (e.g., only for existing presentations). The description lacks any explicit usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_slide_placeholderC
Set a placeholder on an existing slide by its name.
| Name | Required | Description | Default |
|---|---|---|---|
| slide_index | Yes | ||
| placeholder_name | Yes | ||
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only says 'set a placeholder,' lacking details on what happens if the placeholder doesn't exist, whether text overwrites, or any side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only one sentence, which is concise, but it sacrifices necessary detail. It is appropriately front-loaded but too brief to be fully effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 required parameters, no annotations, and only 0% schema description coverage, the description is insufficient. Even though an output schema exists (not examined), the description lacks details on parameter purpose, behavior, and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only hints at 'placeholder_name' via 'by its name,' but does not explain 'slide_index' (e.g., indexing, required) or 'text' (e.g., format, character limits). Fails to add meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Set') and resource ('placeholder on a slide'), and mentions 'by its name,' which hints at distinguishing from sibling 'set_slide_placeholder_by_idx'. However, it does not explicitly differentiate, so purpose is clear but not maximally helpful.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like 'set_slide_placeholder_by_idx'. No prerequisites, context, or exclusions are provided, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_slide_placeholder_by_idxC
Set a placeholder on an existing slide by its layout idx.
| Name | Required | Description | Default |
|---|---|---|---|
| slide_index | Yes | ||
| placeholder_idx | Yes | ||
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It fails to mention side effects (e.g., overwriting existing content), error conditions (e.g., invalid index), required permissions, or what the tool returns. The existence of an output schema does not compensate for the lack of description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it lacks structure and omits critical details. Every sentence should earn its place, but this one is too brief to be fully helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 required params, no schema descriptions), the description is incomplete. It does not explain the output, error behavior, or any constraints like valid indices. The presence of an output schema is not leveraged. The tool could not be used reliably without additional knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It only explains 'placeholder_idx' as a layout index, but leaves 'slide_index' (presumably slide position) and 'text' (content to set) largely implicit. The phrase 'set a placeholder' does not clarify that 'text' is the value to set on an existing placeholder, leading to ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and the resource 'placeholder on an existing slide', and specifies the method 'by its layout idx', distinguishing it from the sibling 'set_slide_placeholder' which likely uses a different identifier. However, the wording 'set a placeholder' is slightly ambiguous about whether it creates or updates content, given that 'text' is a parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool vs. alternatives like 'set_slide_placeholder' or 'set_slide_title'. The description does not mention prerequisites, required order of operations, or any conditions under which the tool should be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_slide_titleC
Set the title placeholder of a slide.
| Name | Required | Description | Default |
|---|---|---|---|
| slide_index | Yes | ||
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'set', implying a mutation, but does not disclose side effects (e.g., overwrites existing title), behavior when no title placeholder exists, or whether the operation is reversible. No annotations are provided, so the description should bear the full burden but fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure. It does not front-load critical information (e.g., mutation behavior) and provides only a bare statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and no annotations, the description is incomplete. It omits parameter explanations, behavior details, and return value despite an output schema existing. The sibling tools like set_slide_placeholder suggest broader functionality, but this description does not cover the specific context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds no meaning to the parameters (slide_index and text). The schema provides titles but no explanations; the description does not clarify what slide_index refers to (e.g., what indexing scheme) or any text formatting constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets the title placeholder of a slide, distinguishing it from generic placeholder setters like set_slide_placeholder. However, it does not explicitly differentiate from set_slide_placeholder_by_idx, which might also target the title placeholder by index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives (e.g., set_slide_placeholder, read_slide). The description lacks prerequisites or context for use, such as requiring a presentation to be open.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.2.1- First observed
add_slide - First observed
create_presentation_from_template - First observed
delete_slide - First observed
list_slides - First observed
presentation_info - First observed
read_slide - First observed
reorder_slide - First observed
set_slide_placeholder - First observed
set_slide_placeholder_by_idx - First observed
set_slide_title
TDQS
Scored across 10 tools
Most tools have distinct purposes, but set_slide_placeholder and set_slide_placeholder_by_idx could cause confusion as both set placeholders via different identifiers; however, descriptions clarify the difference.
Tools follow a consistent verb_noun pattern in snake_case, e.g., add_slide, delete_slide. The exception is presentation_info, which lacks a verb, but overall the naming is predictable.
10 tools cover the essential operations for PowerPoint slide management (create, read, update, delete, reorder) without being excessive or sparse for the domain.
The set covers core slide lifecycle and placeholder manipulation, but lacks tools for adding custom shapes, images, or saving/exporting, which may be needed for full PowerPoint editing.
Maintenance
Related MCP Connectors
Generate, edit, merge, translate and PDF-convert PowerPoint (.pptx) over MCP. 8 tools.
Presentations.AI MCP server — create designed slide decks from a topic, text, or document.
AI presentation and report generation: slides, diagrams, PPTX export, live preview MCP App.
Deterministic, fully editable PowerPoint from typed slide intents. 200+ layouts, brand templates.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI assistants to create, edit, and manipulate PowerPoint presentations programmatically with support for text styling, shapes, slide rearrangement, and direct Office XML access.81-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create and manipulate PowerPoint presentations programmatically, including adding slides, exporting to PDF, and reading metadata.17 npm5MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables creating, editing, and manipulating PowerPoint presentations programmatically through Claude and other MCP-compatible clients.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to create, inspect, and edit PowerPoint presentations programmatically using tools for slides, text, shapes, images, tables, and search-and-replace operations.-