Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the PowerPoint (Microsoft 365) in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Let your AI work with PowerPoint presentations in OneDrive and SharePoint: find decks, read their details, version history and who has access, see a slide thumbnail, get them as PDF or as the original file, create new decks from a template, rename, move, check out and in, and restore an earlier version. Microsoft 365 through Microsoft Graph, signed in with your Microsoft account; sharing links and deleting install switched off.
Try asking
Example prompts for PowerPoint (Microsoft 365)
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → PowerPoint (Microsoft 365), paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
PowerPoint (Microsoft 365) + ChatGPT
Let your AI work with PowerPoint presentations in OneDrive and SharePoint: find decks, read their details, version history and who has access, see a slide thumbnail, get them as PDF or as the original file, create new decks from a template, rename, move, check out and in, and restore an earlier version. Microsoft 365 through Microsoft Graph, signed in with your Microsoft account; sharing links and deleting install switched off.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
MICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRET, MICROSOFT_TENANT_ID
Step 1 — Get credentials
Setting up takes about 10 minutes. You need the Microsoft account whose OneDrive or SharePoint holds the presentations, and a free app registration in Microsoft Entra.
-
Open https://entra.microsoft.com (or https://portal.azure.com) and go to Applications → App registrations → New registration.
-
Name the app, for example "AnythingMCP Microsoft 365", and choose the Supported account types. The choice decides what goes into
MICROSOFT_TENANT_ID:- Accounts in this organizational directory only (single tenant): the Directory (tenant) ID from the app's Overview page (a GUID), or your domain, such as
contoso.onmicrosoft.com. - Accounts in any organizational directory (multi-tenant):
organizations. - Accounts in any organizational directory and personal Microsoft accounts:
common(work, school and personal accounts) orconsumers(personal accounts only).
If the value does not match the account type, Microsoft refuses the sign-in with AADSTS50194 or AADSTS50020.
- Accounts in this organizational directory only (single tenant): the Directory (tenant) ID from the app's Overview page (a GUID), or your domain, such as
-
Under Redirect URI pick the platform Web and enter
<your AnythingMCP URL>/api/mcp-oauth/callback, on AnythingMCP Cloudhttps://cloud.anythingmcp.com/api/mcp-oauth/callback. It must match character for character, otherwise Microsoft answers AADSTS50011. -
Open API permissions → Add a permission → Microsoft Graph → Delegated permissions and add
offline_access,User.ReadandFiles.ReadWrite. AddFiles.ReadWrite.Allas well if the AI should reach presentations in SharePoint, in Teams or shared with you (see Scopes). -
Open Certificates & secrets → New client secret and copy the secret Value, not the Secret ID; it is shown only once. Note the expiry date: when the secret expires, the connector stops working until you paste a new one.
-
Paste the Application (client) ID into
MICROSOFT_CLIENT_ID, the secret value intoMICROSOFT_CLIENT_SECRETand the tenant value from step 2 intoMICROSOFT_TENANT_ID, then install the connector. -
On the connector page click Authorize with Provider and sign in with the account whose presentations the AI should work with. The refresh token is stored encrypted, and access tokens (valid for about an hour) are renewed automatically.
-
Run
microsoft_powerpoint_get_my_drive: it shows which OneDrive the connector is signed in to.
One Entra app for all Microsoft connectors: the app registration made for the Outlook, OneDrive or Excel connector works here too. Add the permissions from step 4, keep the same redirect URI and reuse the same client ID, secret and tenant. Each connector asks only for its own scopes when you authorize it.
Admin consent: these delegated permissions normally do not need an administrator, but many organisations turn off user consent. If the sign-in shows "Need admin approval" (AADSTS65001 or AADSTS90094), a tenant administrator opens the app registration once and clicks API permissions → Grant admin consent for the organisation.
Whose presentations it sees: everything runs as the user who authorized the connector, so the AI sees and changes exactly what that user can. Work or school accounts (Microsoft 365) support every tool; a personal OneDrive supports search, details, download, PDF, copy, rename and move.
Scopes: the connector asks for offline_access User.Read Files.ReadWrite. offline_access is what makes Microsoft issue a refresh token, and Files.ReadWrite covers your own OneDrive. For presentations in SharePoint libraries, in Teams channels or shared by other people, and for microsoft_powerpoint_find_presentations, add Files.ReadWrite.All to the app registration, replace Files.ReadWrite with it in the connector's OAuth settings and authorize again. For a read-only setup use offline_access User.Read Files.Read.All, authorize again and disable microsoft_powerpoint_copy_presentation, microsoft_powerpoint_rename_presentation, microsoft_powerpoint_move_presentation, microsoft_powerpoint_restore_version, microsoft_powerpoint_check_out and microsoft_powerpoint_check_in.
What it reads: PowerPoint presentations (.pptx, .pptm, .ppsx and the older .ppt). It finds them by name and content in your OneDrive (microsoft_powerpoint_search_my_presentations, which also returns other file types), by path such as Documents/Sales/Pitch 2026.pptx, by browsing folders, or everywhere you have access (OneDrive, SharePoint, Teams, shared with you) with Microsoft Search and KQL in microsoft_powerpoint_find_presentations, work or school accounts only. For each presentation it reads the name, size, who created and last changed it and when, the webUrl that opens it in PowerPoint for the web, the check-out state, the version history and who has access. To read the content, microsoft_powerpoint_convert_to_pdf has Microsoft 365 turn the deck into a PDF the AI can read, one page per slide: Graph has no API that returns a presentation's text. microsoft_powerpoint_get_thumbnail returns a picture of the first slide that the AI can look at, and microsoft_powerpoint_list_thumbnails lists the available sizes. microsoft_powerpoint_download_presentation and microsoft_powerpoint_download_version hand over the original file or an earlier version.
What it writes: Graph cannot write into a presentation, and the connector cannot upload files. A new deck is made by copying a template with microsoft_powerpoint_copy_presentation under a new name; the copy runs in the background and appears in the target folder after a few seconds. The connector also renames presentations, moves them within the same drive, makes an earlier version current again with microsoft_powerpoint_restore_version (the replaced content stays in the history, so it can be undone; work or school only), and checks presentations out and back in with a comment in SharePoint libraries that require check-out. You then edit the deck yourself through its webUrl.
Switched off at install: microsoft_powerpoint_create_sharing_link (a view or edit link for anonymous, organization or users) and microsoft_powerpoint_delete_presentation. A sharing link hands the file to other people, and a presentation the AI reads could ask it to share or delete something, so an admin switches them on when the team needs them. Deleted presentations go to the recycle bin and can be restored there.
Data formats: every tool takes the presentation's drive_id and item_id. Search and path lookups return them as id and parentReference.driveId; in microsoft_powerpoint_find_presentations the hits sit in hitsContainers[0].hits[], with resource.id and resource.parentReference.driveId. microsoft_powerpoint_list_folder with item_id root lists the top of a drive. Thumbnail sizes are small (96 px wide), medium (176 px), large (800 px) or a custom size such as c1600x900. Version ids look like 4.0 and come newest first. Files, PDFs included, are attached up to 10 MB; larger files are described but not attached, and the AI gives you the webUrl instead. PDF conversion works for .pptx, .ppt, .ppsx, .pps and .odp files and does not change the stored file.
Paging and limits: list and search answers carry @odata.nextLink while more results exist; the AI calls the same tool again with skip_token set to the $skiptoken value from that link. microsoft_powerpoint_find_presentations pages with from and size, and moreResultsAvailable says whether there are more. Microsoft Graph throttles per user and per app: a 429 or 503 with Retry-After means wait and retry. Converting a large presentation to PDF can take a few seconds.
Common errors: 401 InvalidAuthenticationToken means the authorization was revoked or the client secret expired: paste a new secret if needed and click Authorize with Provider again. 403 accessDenied means a permission is missing or not consented, or the presentation belongs to someone else and the scope lacks Files.ReadWrite.All; microsoft_powerpoint_find_presentations answers 403 without Files.Read.All or Files.ReadWrite.All. 404 itemNotFound is a wrong drive, item or version id, or a deleted item. 406 or 415 on the PDF conversion means the file type cannot be converted or the file is password protected. 409 nameAlreadyExists means the name is taken in that folder: pick another one or set conflict_behavior to rename. 423 resourceLocked means the file is checked out by someone else or locked for editing.
The connector does not upload PowerPoint files, edit their slides, read or add comments, or manage SharePoint sites (the Microsoft SharePoint connector does that).
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in ChatGPT
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
ChatGPT adds MCP servers as plugins on its Plugins page, on the web and on paid plans. Developer mode is no longer needed. In a Business workspace only admins and owners can add one; in Enterprise and Edu an admin can grant the Create plugins with MCPs permission.
- Go to chatgpt.com/plugins, click Add, then Add custom MCP server.
- Enter a name, e.g. Name:
PowerPoint (Microsoft 365). - Under Connection, enter the Server URL
https://cloud.anythingmcp.com/mcp/YOUR_SERVER_IDand keep Authentication on OAuth. - Select I understand and want to continue, then Create as a plugin. When ChatGPT asks, sign in to AnythingMCP and allow access.
- Install the new plugin from your personal plugins, then type @ in a chat and pick it.
Available tools
| Tool | What it does |
|---|---|
microsoft_powerpoint_get_my_drive | Get the signed-in user's OneDrive: drive id (the drive_id for presentations stored there), type (personal or business), owner, storage… |
microsoft_powerpoint_search_my_presentations | Search the user's own OneDrive by name, metadata and content, e.g. "offer 2026" |
microsoft_powerpoint_find_presentations | Find PowerPoint presentations everywhere the user has access (their OneDrive, SharePoint sites, Teams files, files shared with them) with… |
microsoft_powerpoint_list_folder | List the files and folders inside a folder of a drive (item_id "root" for its top level), to browse to a presentation |
microsoft_powerpoint_get_presentation | Get a presentation's details: name, size, created and last modified (when and by whom), folder (parentReference), mimeType and hashes… |
microsoft_powerpoint_get_presentation_by_path | Get a presentation in the user's own OneDrive by its path, e.g. "Documents/Sales/Pitch 2026.pptx" |
microsoft_powerpoint_download_presentation | Download the presentation file itself (.pptx), as it is stored |
microsoft_powerpoint_convert_to_pdf | Get the presentation converted to PDF by Microsoft 365 (works for .pptx, .ppt, .ppsx, .pps and .odp files), attached to the result as a PDF… |
microsoft_powerpoint_list_thumbnails | List the thumbnail images Microsoft 365 made of the presentation's first slide: sizes small, medium and large with width, height and a… |
microsoft_powerpoint_get_thumbnail | Get a picture of the presentation's first slide, returned as an image the AI can look at. size: small (96 px wide), medium (176 px), large… |
microsoft_powerpoint_list_versions | List the presentation's version history: each version's id (e.g. "4.0"), when and by whom it was saved, and size, newest first |
microsoft_powerpoint_download_version | Download an earlier version of the presentation as an attached file (up to 10 MB), e.g. to compare it with the current one |
microsoft_powerpoint_list_permissions | List who has access to the presentation: each permission's id, roles (read, write, owner), the people or groups granted (grantedToV2… |
microsoft_powerpoint_copy_presentation | Create a new presentation as a copy of an existing one, typically a template (e.g. "Templates/Company deck.pptx"), in a target folder under… |
microsoft_powerpoint_rename_presentation | Rename a presentation in place |
microsoft_powerpoint_move_presentation | Move a presentation into another folder of the same drive, optionally renaming it on the way |
microsoft_powerpoint_restore_version | Make an earlier version the current content of the presentation |
microsoft_powerpoint_check_out | Check out a presentation in a SharePoint library that requires check-out, so that only the user can change it until it is checked in |
microsoft_powerpoint_check_in | Check a checked-out presentation back in, with a comment that is stored with the new version, so other people see the changes and can edit… |
microsoft_powerpoint_create_sharing_link | Create a sharing link for the presentation: type "view" or "edit", scope "anonymous" (anyone with the link, if the organisation allows it)… |
microsoft_powerpoint_delete_presentation | Delete a presentation |
Example prompts
- "Find the latest investor deck in SharePoint and summarise its key figures slide by slide."
- "Create a new deck from Templates/Company deck.pptx in the folder Sales/2026 and name it Pitch Acme 2026.pptx."
- "Show me the title slide of Documents/Sales/Pitch 2026.pptx."
- "Who changed this presentation last week? Show the version history and restore the version from Monday."
- "Which presentations in my OneDrive have an edit link for anyone in the organisation?"
FAQ
Does the free ChatGPT plan work with custom MCP servers? OpenAI documents custom MCP servers for paid plans only; the Free plan is not on its list.
Next steps
- Connector landing page
- Connect to Claude
- Connect to Cursor
- Connect to Gemini
- Connect to Meta Muse
- Connect to Microsoft Copilot
Was this guide helpful?