Microsoft PowerPoint
Arcade.dev LLM tools for Microsoft PowerPoint
This toolkit integrates with Microsoft OneDrive/Microsoft Graph and enables LLM-driven creation, modification, and extraction of PowerPoint presentations. It supports programmatic slide creation, layout management, speaker-note editing in Markdown, and presentation-to-Markdown export.
Capabilities
- Create and append slides and layouts (including two-column content) with resumable uploads for large files.
- Read, set, and batch-export speaker notes using Markdown, preserving basic formatting and lists.
- Convert presentations to structured Markdown (text, tables, chart data; media as placeholders).
- Retrieve user/environment info and apply best-effort concurrency checks during edits.
OAuth
- Provider: microsoft
- Scopes: Files.Read, Files.ReadWrite, User.Read
Available tools(8)
| Tool name | Description | Secrets | |
|---|---|---|---|
Create a new PowerPoint presentation in OneDrive.
The presentation will be created with a title slide containing the specified title. | |||
Append a new slide to the end of an existing PowerPoint presentation in OneDrive.
The slide will be added at the end of the presentation. Both title and body
are optional to support layouts like BLANK or TITLE_ONLY.
For presentations larger than 4 MB, the upload uses a resumable session.
Concurrency protection (etag check) is best-effort in that case, since
Microsoft Graph upload sessions do not support If-Match headers. | |||
Append a TWO_CONTENT slide with side-by-side content areas to the end of a PowerPoint presentation.
This layout is useful for comparisons, pros/cons lists, or any content that
benefits from a two-column layout.
For presentations larger than 4 MB, the upload uses a resumable session.
Concurrency protection (etag check) is best-effort in that case, since
Microsoft Graph upload sessions do not support If-Match headers. | |||
Get all speaker notes from every slide in a PowerPoint presentation.
Returns notes for all slides in one call, which is more efficient than
calling get_slide_notes for each slide individually. Notes are returned
in markdown format. | |||
Get the content of a PowerPoint presentation as markdown.
This tool downloads the presentation and converts it to a markdown representation,
preserving text content, tables, and chart data. Images and other media are
represented as placeholders. | |||
Get the speaker notes from a specific slide in a PowerPoint presentation.
Speaker notes are returned in markdown format, preserving basic formatting
like bold, italic, and bullet points. | |||
Set or update the speaker notes on a specific slide in a PowerPoint presentation.
Notes can be formatted using markdown:
- **bold** for bold text
- *italic* for italic text
- __underline__ for underlined text
- Lines starting with - or * become bullet points
For presentations larger than 4 MB, the upload uses a resumable session.
Concurrency protection (etag check) is best-effort in that case, since
Microsoft Graph upload sessions do not support If-Match headers.
- Indent with spaces for nested bullets | |||
Get information about the current user and their PowerPoint environment. |
Selected tools
No tools selected.
Click "Show all tools" to add tools.
Requirements
Select tools to see requirements
MicrosoftPowerpoint.CreatePresentation
Create a new PowerPoint presentation in OneDrive. The presentation will be created with a title slide containing the specified title.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
title | string | Required | The title for the new presentation. |
parent_folder_id | string | Optional | The ID of the folder to create the presentation in. If not provided, the presentation will be created in the root of the user's OneDrive. |
Requirements
Output
json— The created presentation details.MicrosoftPowerpoint.CreateSlide
Append a new slide to the end of an existing PowerPoint presentation in OneDrive. The slide will be added at the end of the presentation. Both title and body are optional to support layouts like BLANK or TITLE_ONLY. For presentations larger than 4 MB, the upload uses a resumable session. Concurrency protection (etag check) is best-effort in that case, since Microsoft Graph upload sessions do not support If-Match headers.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
item_id | string | Required | The ID of the PowerPoint presentation to add a slide to. |
slide_title | string | Optional | The title for the new slide. Optional for layouts like BLANK. |
slide_body | string | Optional | The body content for the new slide. Supports markdown: **bold**, *italic*, __underline__, and bullet points (- item, indented with spaces for nesting). Optional for layouts like TITLE_ONLY or BLANK. |
layout | string | Optional | The layout to use for the slide. For TWO_CONTENT layout, use create_two_content_slide.TITLETITLE_AND_CONTENTSECTION_HEADERTITLE_ONLYBLANKCONTENT_WITH_CAPTIONPICTURE_WITH_CAPTIONTITLE_AND_VERTICAL_TEXTVERTICAL_TITLE_AND_TEXT |
Requirements
Output
json— The updated presentation details with new slide info.MicrosoftPowerpoint.CreateTwoContentSlide
Append a TWO_CONTENT slide with side-by-side content areas to the end of a PowerPoint presentation. This layout is useful for comparisons, pros/cons lists, or any content that benefits from a two-column layout. For presentations larger than 4 MB, the upload uses a resumable session. Concurrency protection (etag check) is best-effort in that case, since Microsoft Graph upload sessions do not support If-Match headers.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
item_id | string | Required | The ID of the PowerPoint presentation to add a slide to. |
slide_title | string | Optional | The title for the new slide. |
left_body | string | Optional | Content for the left side of the slide. Supports markdown: **bold**, *italic*, __underline__, and bullet points (- item, indented with spaces for nesting). |
right_body | string | Optional | Content for the right side of the slide. Supports markdown: **bold**, *italic*, __underline__, and bullet points (- item, indented with spaces for nesting). |
Requirements
Output
json— The updated presentation details with new slide info.MicrosoftPowerpoint.GetAllSlideNotes
Get all speaker notes from every slide in a PowerPoint presentation. Returns notes for all slides in one call, which is more efficient than calling get_slide_notes for each slide individually. Notes are returned in markdown format.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
item_id | string | Required | The ID of the PowerPoint presentation. |
Requirements
Output
json— All speaker notes from the presentation.MicrosoftPowerpoint.GetPresentationAsMarkdown
Get the content of a PowerPoint presentation as markdown. This tool downloads the presentation and converts it to a markdown representation, preserving text content, tables, and chart data. Images and other media are represented as placeholders.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
item_id | string | Required | The ID of the PowerPoint presentation to read. |
Requirements
Output
json— The presentation content as markdown.MicrosoftPowerpoint.GetSlideNotes
Get the speaker notes from a specific slide in a PowerPoint presentation. Speaker notes are returned in markdown format, preserving basic formatting like bold, italic, and bullet points.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
item_id | string | Required | The ID of the PowerPoint presentation. |
slide_index | integer | Required | The 1-based index of the slide to get notes from. |
Requirements
Output
json— The speaker notes for the specified slide.MicrosoftPowerpoint.SetSlideNotes
Set or update the speaker notes on a specific slide in a PowerPoint presentation. Notes can be formatted using markdown: - **bold** for bold text - *italic* for italic text - __underline__ for underlined text - Lines starting with - or * become bullet points For presentations larger than 4 MB, the upload uses a resumable session. Concurrency protection (etag check) is best-effort in that case, since Microsoft Graph upload sessions do not support If-Match headers. - Indent with spaces for nested bullets
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
item_id | string | Required | The ID of the PowerPoint presentation. |
slide_index | integer | Required | The 1-based index of the slide to set notes on. |
notes | string | Required | The speaker notes in markdown format. Supports **bold**, *italic*, __underline__, and bullet points (- or *). |
Requirements
Output
json— Confirmation of the notes update.MicrosoftPowerpoint.WhoAmI
Get information about the current user and their PowerPoint environment.
Parameters
No parameters required.
Requirements
Output
json— Get comprehensive user profile and PowerPoint environment information.