# How to integrate Microsoft PowerPoint MCP with Hermes

```json
{
  "title": "How to integrate Microsoft PowerPoint MCP with Hermes",
  "toolkit": "Microsoft PowerPoint",
  "toolkit_slug": "microsoft_powerpoint",
  "framework": "Hermes",
  "framework_slug": "hermes-agent",
  "url": "https://composio.dev/toolkits/microsoft_powerpoint/framework/hermes-agent",
  "markdown_url": "https://composio.dev/toolkits/microsoft_powerpoint/framework/hermes-agent.md",
  "updated_at": "2026-10-24T05:34:39.286Z"
}
```

## Introduction

Hermes is a 24/7 autonomous agent that lives on your computer or server — it remembers what it learns and evolves as your usage grows.
This guide explains the easiest and most robust way to connect your Microsoft PowerPoint account to Hermes. You can do this through either Composio Connect CLI or Composio Connect MCP. For personal use we recommend the CLI, but you won't go wrong with MCP either.

## Also integrate Microsoft PowerPoint with

- [ChatGPT](https://composio.dev/toolkits/microsoft_powerpoint/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/microsoft_powerpoint/framework/claude-cowork)
- [Atomic Agent](https://composio.dev/toolkits/microsoft_powerpoint/framework/atomic-agent)

## TL;DR

### What is Composio Connect?
Composio Connect is a consumer offering that lets anyone plug 1,500+ applications directly into their agent harness — including Hermes. It can:
- Search and load tools from relevant toolkits on-demand, reducing context usage.
- Chain multiple tools to accomplish complex workflows via a remote workbench, without excessive back-and-forth with the LLM.
- Manage app authentication end-to-end with zero manual overhead.

## Connect Microsoft PowerPoint to Hermes

### Integrating Microsoft PowerPoint with Hermes
### Using Composio Connect CLI
1. Install the Composio CLI
Run the install script directly, or paste https://composio.dev/hermes into your Hermes chat box to have it installed for you.

```bash
curl -fsSL https://composio.dev/install | bash
```

## What is the Microsoft PowerPoint MCP server, and what's possible with it?

The Microsoft PowerPoint MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Microsoft PowerPoint account. It provides structured and secure access to your presentations and related OneDrive files, so your agent can create, inspect, edit, share, and organize presentations on your behalf.
- Create and update presentations: Have your agent build new PPTX presentations with structured slides, titles, bullets, tables, images, and speaker notes, or update existing slide content, text, order, and document properties.
- Find and understand slide content: Let the agent search for PowerPoint files, inspect presentation metadata, read slide text and notes, review shapes, tables, images, hyperlinks, alt text, layouts, and retrieve presentation thumbnails.
- Manage presentation files: Direct your agent to upload, download, copy, rename, move, organize, or delete PowerPoint files and folders, including exporting presentations as PDF or JPG.
- Share presentations with others: Instruct your agent to create view or edit sharing links and grant named people read or write access to a presentation.
- Work with presentation versions: Have your agent check presentations in or out, list and inspect retained versions, download a previous version, or restore one as the current version.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `MICROSOFT_POWERPOINT_CHECK_IN_PRESENTATION` | Check In Presentation | Check in a checked-out PowerPoint DriveItem and make its version available according to the SharePoint/document-library configuration. Microsoft Graph documents no atomic If-Match/eTag option for this operation. |
| `MICROSOFT_POWERPOINT_CHECK_OUT_PRESENTATION` | Check Out Presentation | Check out a PowerPoint DriveItem where its SharePoint/document-library configuration supports checkout, preventing others from editing and hiding changes until check-in. Microsoft Graph documents no atomic If-Match/eTag option for this operation. |
| `MICROSOFT_POWERPOINT_COPY_PRESENTATION` | Copy Presentation | Start an asynchronous Microsoft Graph copy of a PowerPoint presentation. A successful result means only that Graph accepted the submission; it does not mean the copy completed or ultimately succeeded. The action never returns the bearer-equivalent Location monitor URL. Discover the result by destination and filename with FIND_PRESENTATIONS. conflict_behavior is unsupported on OneDrive Personal. To preserve all versions, omit name and rename the copy after discovery. |
| `MICROSOFT_POWERPOINT_COPY_PRESENTATION_AND_WAIT` | Copy Presentation and Wait | Submit a PowerPoint presentation copy with a required unique filename, then boundedly search the resolved destination folder for an exact-name candidate. Search results cannot be correlated to the copy request, so a discovered candidate is returned as discovered_unverified and may belong to another writer. The bearer-equivalent Graph monitor URL is never returned or read. An exact-name search result is returned only as an uncorrelated candidate, never as confirmed completion, because Graph's secret monitor URL is not exposed or consumed. A timeout or indeterminate result is not proof of failure: verify the destination before retrying. All-version-history copies require the asynchronous COPY_PRESENTATION workflow because Graph does not safely combine that option with a discovery name. |
| `MICROSOFT_POWERPOINT_CREATE_FOLDER` | Create Folder | Create a folder for PowerPoint files in the current or an explicitly selected accessible drive. |
| `MICROSOFT_POWERPOINT_CREATE_PRESENTATION` | Create Presentation | Create a bounded macro-free PPTX from one to 50 structured slides containing titles, plain text, nested bullets, rectangular tables, uploaded PNG images, and optional speaker notes. The generated Open XML package, relationships, and semantic readback are validated locally before exactly one Microsoft Graph upload. Limits include 500 content blocks, 500,000 text characters, 10,000 line breaks, 2,000 table cells, and 20 PNGs (10 MiB each, 25 MiB compressed and decoded in aggregate); the final package is limited to 50 MiB. |
| `MICROSOFT_POWERPOINT_CREATE_PRESENTATION_SHARING_LINK` | Create Presentation Sharing Link | Create or return a view or edit sharing link for a PowerPoint presentation in the current or an explicitly selected drive. |
| `MICROSOFT_POWERPOINT_DELETE_FOLDER` | Delete Folder | Move a folder to the Microsoft Graph recycle bin after a metadata preflight proves the DriveItem has a folder facet. Recycling a nonempty folder removes the entire descendant tree from its current location. Files are rejected. The preflight eTag is used for a concurrency-safe delete when available. |
| `MICROSOFT_POWERPOINT_DELETE_PRESENTATION` | Delete Presentation | Move a PowerPoint presentation to the Microsoft Graph recycle bin. This action does not permanently erase the file. It can require a matching eTag or cTag and can send Microsoft's documented shared-lock or checkout bypass preferences. |
| `MICROSOFT_POWERPOINT_DOWNLOAD_PRESENTATION` | Download Presentation | Download a PowerPoint file in its original format or export it as PDF or JPG. Export conversion is not presentation editing and accepts source files up to 2 MB. |
| `MICROSOFT_POWERPOINT_DOWNLOAD_PRESENTATION_VERSION` | Download Presentation Version | Verify that the selected DriveItem is a PPTX, then download one retained previous version as a bounded PPTX file. Non-PPTX items are rejected before content download. Use LIST_PRESENTATION_VERSIONS to obtain a version ID, but do not use its first newest/current entry: Microsoft Graph refuses current-version content here. Use DOWNLOAD_PRESENTATION for the current version. |
| `MICROSOFT_POWERPOINT_FILL_TEMPLATE` | Fill PowerPoint Template | Create one presentation from an existing designed PPTX template by replacing unique literal {{tokens}} simultaneously across reachable slides and speaker notes. The template is downloaded and its eTag is rechecked before one create upload; no intermediate provider copy is created. Every requested token must match. |
| `MICROSOFT_POWERPOINT_FIND_PRESENTATIONS` | Find Presentations | List a folder or search a drive and return only PowerPoint files. Omit search_text to browse folder_id; provide it to search the full drive. A page can contain no matching files while has_more remains true. |
| `MICROSOFT_POWERPOINT_GET_CURRENT_DRIVE` | Get Current Drive | Return the signed-in user's default OneDrive ID and basic owner, type, and quota details. Use the drive ID to target other accessible-drive actions explicitly. |
| `MICROSOFT_POWERPOINT_GET_PRESENTATION` | Get Presentation | Return metadata for one PowerPoint file by item ID, including its current eTag for concurrency-safe updates. |
| `MICROSOFT_POWERPOINT_GET_PRESENTATION_CONTENT` | Get Presentation Content | Read bounded, text-first semantic content from a current macro-free PPTX, including slides, shapes, text, safe hyperlinks, alt text, image metadata, tables, and speaker notes. Default budgets are 100 slides, 200 shapes per slide, 100 paragraphs per shape, 100 runs per paragraph, 20,000 characters per shape, 100,000 total characters, 5,000 structural elements, and 100 comments per slide. Maxima are respectively 500, 1,000, 500, 500, 100,000, 500,000, 20,000, and 200. For ordinary reads, use slide_numbers for only the needed slides and lower budgets instead of reading a whole large deck. Formatting, geometry, supported chart data, and modern comments are opt-ins. Uses eTag consistency and never returns layouts, package bytes, raw XML, unsafe external targets, or preauthenticated URLs. |
| `MICROSOFT_POWERPOINT_GET_PRESENTATION_LAYOUTS` | Get Presentation Layouts | Download and validate the current macro-free PPTX, then return its complete bounded slide-layout catalog. Each layout has a unique opaque selector accepted by UPDATE_PRESENTATION_CONTENT add_slide, plus exact human-facing name and matchingName values and safe type/placeholder summaries for duplicate-name disambiguation. Never returns package paths, raw OOXML, package bytes, or download URLs. |
| `MICROSOFT_POWERPOINT_GET_PRESENTATION_THUMBNAILS` | Get Presentation Thumbnails | List generated thumbnail metadata for a PowerPoint presentation. Microsoft Graph represents only the first slide and can return an empty set; it does not provide per-slide thumbnails. Returned URLs are short-lived bearer-equivalent capabilities for the caller only and must not be shared, logged, cached, or persisted. |
| `MICROSOFT_POWERPOINT_GET_PRESENTATION_VERSION` | Get Presentation Version | Retrieve compact metadata for one retained or current version of a PowerPoint file. Use List Presentation Versions to discover retained version IDs. |
| `MICROSOFT_POWERPOINT_INVITE_TO_PRESENTATION` | Invite People to Presentation | Grant named people read or write access to a PowerPoint presentation. By default, send_invitation=true also causes Microsoft to send external invitation emails; set it false to grant permission without notifications. A 207 response preserves recipient-level errors and is never reported as complete success. |
| `MICROSOFT_POWERPOINT_LIST_PRESENTATION_VERSIONS` | List Presentation Versions | List retained versions of a PowerPoint file in Microsoft Graph's newest-first order, one provider page at a time. Continue while has_more is true before treating the final version as the oldest retained version. The first entry is current: its metadata is readable, but Graph refuses its content through DOWNLOAD_PRESENTATION_VERSION. Choose a later entry for version download/restore, or use DOWNLOAD_PRESENTATION for current content. Version retention depends on the drive's configuration. |
| `MICROSOFT_POWERPOINT_REPLACE_PRESENTATION_FILE` | Replace Presentation File | Replace the bytes of an existing PowerPoint DriveItem with a valid, non-macro-enabled PPTX package no larger than 250 MiB, optionally requiring a matching eTag. |
| `MICROSOFT_POWERPOINT_RESTORE_PRESENTATION_VERSION` | Restore Presentation Version | Restore a retained previous version of a PowerPoint presentation as a new current version while preserving its version history. |
| `MICROSOFT_POWERPOINT_TRANSFORM_PRESENTATION_TEXT_AND_PROPERTIES` | Transform Presentation Text and Properties | Transform text, slide order, or embedded core document properties inside a macro-free PPTX, then conditionally replace the same file. Supports literal, run-normalized text and {{placeholder}} replacement within DrawingML paragraphs, complete slide reordering, and core document-property updates. Provide at least one non-empty text_replacements, slide_order, or core_properties transformation. Rules run sequentially; a find string crosses a line break only when it includes a newline. Use UPDATE_PRESENTATION_METADATA instead to rename or move the DriveItem or change its filesystem metadata. It does not add or delete slides or edit layouts, themes, animations, charts, tables, or images. |
| `MICROSOFT_POWERPOINT_UPDATE_PRESENTATION_CONTENT_DESTRUCTIVE` | Update Presentation Content Destructively | Atomically update one macro-free PPTX with at least one irreversible delete operation, under an exact eTag and one conditional upload. delete_slide permanently removes a slide and eligible private dependencies; delete_shape permanently removes a top-level shape and unreferenced relationships; delete_comment permanently removes a root comment and its replies. Supporting non-delete operations may be included in the same transaction, but every call must contain delete_slide, delete_shape, or delete_comment and requires irreversible-update approval. Validates the package graph and semantic result. Limits include 50 MiB packages, 100 operations, 500,000 text characters, 20 uploaded PNGs, and 10,000 generated line breaks. |
| `MICROSOFT_POWERPOINT_UPDATE_PRESENTATION_CONTENT_SAFE` | Update Presentation Content Safely | Atomically update one macro-free PPTX without delete operations, under an exact eTag and one conditional upload. Allowed operations are add_text_box, add_image, replace_image, set_existing_speaker_notes, add_table, add_slide, duplicate_slide, set_slide_hidden, set_shape_text, format_text_run, set_shape_bounds, set_shape_alt_text, set_shape_hyperlink, set_text_run_hyperlink, add_comment, reply_comment, add_chart, and replace_chart_data. delete_slide, delete_shape, and delete_comment are rejected during request validation before any network request. Validates the package graph and semantic result. Limits include 50 MiB packages, 100 operations, 500,000 text characters, 20 uploaded PNGs, and 10,000 generated line breaks. |
| `MICROSOFT_POWERPOINT_UPDATE_PRESENTATION_METADATA` | Update Presentation Metadata | Update Microsoft Graph DriveItem metadata or path only: rename a PowerPoint presentation, move it within its current drive, or set supported filesystem metadata. This action does not edit slide text, slide order, document properties inside the PPTX package, or other presentation content. Optionally require a matching eTag. Provide at least one of name, parent_folder_id, description, created_datetime, or last_modified_datetime. OneDrive may accept a description without persisting it; the response reports that limitation. |
| `MICROSOFT_POWERPOINT_UPLOAD_NEW_PRESENTATION` | Upload New Presentation | Create a new PPTX in a Microsoft Graph drive folder, with configurable filename-conflict behavior. The file must be a valid, non-macro-enabled PPTX package no larger than 250 MiB. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Microsoft PowerPoint MCP server provides comprehensive access to Microsoft PowerPoint operations through Composio. Once connected, Hermes can perform all major Microsoft PowerPoint actions on your behalf using natural language commands.

## Complete Code

None listed.

## Conclusion

### Way Forward
With Microsoft PowerPoint connected, Hermes can now act on your behalf whenever it detects a relevant task or you ask it to.
From here, you can extend Hermes further:
- Connect more apps: Calendar, Slack, Notion, Linear, and hundreds of others are available through the same Composio Connect setup. Each new integration compounds what Hermes can do for you.
- Build workflows across tools: Once multiple apps are connected, Hermes can chain actions together — turn an email into a calendar invite, a Slack message into a Linear ticket, or a meeting note into a follow-up draft.
- Let it learn your patterns: The more you use Hermes, the better it gets at anticipating how you'd handle recurring tasks. Give it feedback on drafts and decisions, and it will adapt.
If you run into trouble or want to share what you've built, join the [community](https://discord.com/invite/composio) or check out the [Docs](https://docs.composio.dev?utm_source=toolkits&utm_medium=framework_template&utm_campaign=hermes&utm_content=docs) for deeper configuration options.

## How to build Microsoft PowerPoint MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/microsoft_powerpoint/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/microsoft_powerpoint/framework/claude-cowork)
- [Atomic Agent](https://composio.dev/toolkits/microsoft_powerpoint/framework/atomic-agent)

## Related Toolkits

- [Google Drive](https://composio.dev/toolkits/googledrive) - Google Drive is a cloud storage platform for uploading, sharing, and collaborating on files. It's perfect for keeping your documents accessible and organized across devices.
- [Google Docs](https://composio.dev/toolkits/googledocs) - Google Docs is a cloud-based word processor that enables document creation and real-time collaboration. Its seamless sharing and version history make team editing and content management a breeze.
- [Google Super](https://composio.dev/toolkits/googlesuper) - Google Super is an all-in-one suite combining Gmail, Drive, Calendar, Sheets, Analytics, and more. It gives you a unified platform to manage your digital life, boosting productivity and organization.
- [ActiveMerge](https://composio.dev/toolkits/active_merge) - ActiveMerge is a document automation platform for generating documents, images, merged files, and e-signature workflows. It helps teams turn templates and stored files into finished, shareable documents faster.
- [Affinda](https://composio.dev/toolkits/affinda) - Affinda is an AI-powered document processing platform that automates data extraction from resumes, invoices, and more. It streamlines document-heavy workflows by turning files into structured, actionable data.
- [Agility cms](https://composio.dev/toolkits/agility_cms) - Agility CMS is a headless content management system for building and managing digital experiences across platforms. It lets teams update content quickly and deliver omnichannel experiences with ease.
- [Airparser](https://composio.dev/toolkits/airparser) - Airparser is an AI-powered parser for extracting structured data from emails, documents, PDFs, and files. It turns messy inbound content into clean fields your apps and workflows can use.
- [Algodocs](https://composio.dev/toolkits/algodocs) - Algodocs is an AI-powered platform that automates data extraction from business documents. It delivers fast, secure, and accurate processing without templates or manual training.
- [Api2pdf](https://composio.dev/toolkits/api2pdf) - Api2Pdf is a REST API for generating PDFs from HTML, URLs, and documents using powerful engines like wkhtmltopdf and Headless Chrome. It streamlines document conversion and automation for developers and businesses.
- [Archive.org](https://composio.dev/toolkits/archive_org) - Archive.org is the Internet Archive's digital library of websites, books, audio, video, and images. Use it to preserve, explore, and access historical web captures and public-domain media.
- [Aryn](https://composio.dev/toolkits/aryn) - Aryn is an AI-powered platform for parsing, extracting, and analyzing data from unstructured documents. Use it to automate document processing and unlock actionable insights from your files.
- [Boldsign](https://composio.dev/toolkits/boldsign) - Boldsign is a digital eSignature platform for sending, signing, and tracking documents online. Organizations use it to automate agreements and manage legally binding workflows efficiently.
- [Boloforms](https://composio.dev/toolkits/boloforms) - BoloForms is an eSignature platform built for small businesses, offering unlimited signatures, templates, and forms. It simplifies digital document signing and team collaboration at a predictable, fixed price.
- [Box](https://composio.dev/toolkits/box) - Box is a cloud content management and file sharing platform for businesses. It helps teams securely store, organize, and collaborate on files from anywhere.
- [Box MCP](https://composio.dev/toolkits/box_mcp) - Box MCP is Box's hosted MCP server that exposes enterprise files, folders, and metadata. It provides secure, centralized access to corporate content for search and management.
- [Carbone](https://composio.dev/toolkits/carbone) - Carbone is a blazing-fast report generator that turns JSON data into PDFs, Word docs, spreadsheets, and more using flexible templates. It lets you automate document creation at scale with minimal code.
- [Castingwords](https://composio.dev/toolkits/castingwords) - CastingWords is a transcription service specializing in human-powered, accurate transcripts via a simple API. Get seamless audio-to-text conversion for interviews, meetings, podcasts, and more.
- [CertSeal](https://composio.dev/toolkits/cert_seal) - CertSeal is an API platform for issuing and managing verifiable digital certificates. Use it to automate trusted certificate workflows for recipients, batches, designs, and webhooks.
- [Cloudconvert](https://composio.dev/toolkits/cloudconvert) - CloudConvert is a powerful file conversion service supporting over 200 file formats. It streamlines converting, compressing, and managing documents, media, and more, all in one place.
- [Cloudlayer](https://composio.dev/toolkits/cloudlayer) - Cloudlayer is a document and asset generation service for creating PDFs and images via API or SDKs. It lets you automate high-quality doc creation, saving dev time and reducing manual work.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Microsoft PowerPoint MCP?

With a standalone Microsoft PowerPoint MCP server, the agents and LLMs can only access a fixed set of Microsoft PowerPoint tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Microsoft PowerPoint and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Hermes?

Yes, you can. Hermes fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Microsoft PowerPoint tools.

### Can I manage the permissions and scopes for Microsoft PowerPoint while using Tool Router?

Yes, absolutely. You can configure which Microsoft PowerPoint scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Microsoft PowerPoint data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
