msloop-mcp
Provides read access to Microsoft Loop workspaces and pages, including listing workspaces and pages, reading page content as Markdown, searching across Loop files, and experimental workspace creation.
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., "@msloop-mcp list my workspaces"
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.
msloop-mcp
MCP server for Microsoft Loop. No app registration required.
Give any MCP client (Claude, Cursor, Devin, ...) read access to your Microsoft Loop workspaces and pages. It works by reusing your existing Loop web session, the same way msteams-mcp and msoutlook-mcp reuse the Teams and Outlook web sessions: you sign in once in a browser, then tokens are cached and refreshed automatically.
Why
Microsoft does not publish a public API for Loop. This server reuses the Loop web app's own first party client ID, so your access is exactly what your account already has, with no Azure app registration, no admin consent, and no client secrets. Nothing leaves your own machine.
Related MCP server: loop-reader-mcp
What it can and cannot do
Loop is built differently from Teams or Outlook. Pages are not REST resources, they are Fluid Framework documents stored in SharePoint Embedded containers, and there is no public content-write API. So this server is a read and discovery tool, not a read-write one:
Supported: list workspaces, list pages in a workspace, read a page's content as Markdown (or raw HTML), search across your Loop files, and an experimental workspace creation.
Not supported: creating or editing page content, real time collaboration. These need the in browser Fluid runtime and have no HTTP API.
Page content is read by asking SharePoint to render the Fluid document to HTML on demand (the ?format=html export), which is then converted to Markdown. Rich, interactive components (tables, voting, mentions) may render approximately.
How it works
The Loop web app (loop.cloud.microsoft) uses MSAL to store OAuth tokens in the browser. This server:
Opens a browser to
loop.cloud.microsoftvia Playwright.Extracts the MSAL tokens from local and session storage, using Loop's own first party client ID (
a187e399-0c36-4b98-8f04-1edc167a0996). It keeps three: a Substrate token (workspace and page metadata), a SharePoint token (page content), and a Graph token (search).Caches the access tokens, refresh token, and session state in
~/.msloop-mcp-server/(AES-256-GCM encrypted).Refreshes tokens automatically using the refresh token (HTTP, no browser) or a headless browser as fallback.
Quick start
{
"mcpServers": {
"loop": {
"command": "npx",
"args": ["-y", "msloop-mcp@latest"]
}
}
}Then run loop_login from your MCP client. On first use a browser opens so you can sign in; after that, logins are silent and no browser appears. Do not close the window manually, it closes itself once you are signed in.
Tools
Auth
Tool | Description |
| Sign in to Loop (silent if possible, browser only when needed) |
| Check authentication status and token validity |
| Clear the saved session and tokens |
Workspaces and pages
Tool | Description |
| List all Loop workspaces you can access, including your personal "My workspace" |
| List the pages in a workspace (pass a workspace id) |
| Read a page's content as Markdown (or |
| Search across your Loop pages and components by keyword (via Microsoft Graph) |
| Experimental. Create a new shared workspace. Content cannot be created via API |
Session storage
Session files are stored encrypted in ~/.msloop-mcp-server/:
session-state.json: Playwright browser session (cookies + localStorage)token-cache.json: Extracted and cached tokensbrowser-profile/: Persistent browser profile for headless refresh
If your session expires, run loop_login again.
Token refresh
Tokens are refreshed automatically:
HTTP refresh (fast, no browser): uses the cached refresh token with Loop's client ID, one call per resource (Substrate, SharePoint, Graph).
Headless browser refresh: fallback if HTTP refresh fails; opens a headless browser with the saved profile to silently reacquire tokens.
Requirements
Node.js 20+
A Chromium based browser: Edge or Chrome (detected automatically from system default)
A Microsoft 365 work or school account with access to Microsoft Loop
Environment variables
Variable | Description |
| Enable debug logging to stderr |
| Force a specific browser: |
| Pin a specific Chrome profile dir for cookie import (e.g. |
| Pin a specific Edge profile dir for cookie import (e.g. |
| Skip importing SSO cookies from your real browser (avoids the one time Keychain/keyring prompt). You sign in once manually; the persistent profile then remembers the session |
Security notes
Uses the same auth as the Loop web client, so your access is limited to what your account can do.
Tokens are encrypted at rest (AES-256-GCM with a machine derived key).
Uses undocumented internal APIs, which Microsoft may change without notice.
Acknowledgements
The Loop endpoint mapping (Substrate discovery, the SharePoint multipart "GET via POST" convention, and the HTML export route) was informed by exec-astraea/loop-migration and Nico De Cleyre's "Microsoft Loop under the hood".
License
MIT. See LICENSE.
Available Tools
8 toolsloop_create_workspaceA
EXPERIMENTAL: Create a new shared Loop workspace. Workspace creation is only partially documented and the new workspace may need a moment to finish provisioning in the Loop app. Creating page content is not supported.
Inputs: name (required).
loop_get_pageA
Read the content of a Loop page as Markdown. Pass the page id from loop_list_pages. Loop pages are rich Fluid documents exported to HTML, so some interactive components may render approximately.
Inputs: page_id (required), format.
loop_list_pagesB
List the pages in a Loop workspace. Pass the workspace id from loop_list_workspaces.
Inputs: workspace_id (required), include_deleted.
loop_list_workspacesA
List all Microsoft Loop workspaces you can access, including your personal "My workspace". Returns each workspace id and title.
Inputs: no named parameters.
loop_loginA
Sign in to Microsoft Loop. Tries silently first (no browser); opens a browser only when the session has expired. Set force_new: true to force a full re-login.
Inputs: force_new.
loop_logoutA
Clear the saved Loop session and tokens. You will need to run loop_login again.
Inputs: no named parameters.
loop_searchA
Search across your Loop pages and components by keyword (via Microsoft Graph). Returns matching files with their titles, web links, and last-modified dates.
Inputs: query (required), limit.
loop_statusA
Check the current Loop authentication status and token validity.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Each tool has a distinct purpose: auth (login, logout, status), resource listing (workspaces, pages), reading and searching page content, and workspace creation. No overlap in functionality.
All tools follow the 'loop_verb_noun' pattern with consistent verbs (create, get, list, login, logout, search, status) and nouns, making naming predictable and clear.
8 tools cover the core operations for Microsoft Loop: authentication, workspace/page listing, page reading, searching, and workspace creation. This is a well-scoped and manageable set.
The set provides read and list operations along with workspace creation, but lacks update/delete for pages and workspaces, and does not support creating or editing page content. Notable gaps exist.
Maintenance
Related MCP Connectors
Official Microsoft MCP Server to query Microsoft Entra data using natural language
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Official Fibery MCP server: query and update your workspace from any AI client via OAuth.
Hosted MCP server with managed OAuth for 15+ toolkits: Google Workspace, Fitbit, Oura, Kalshi, etc.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for Microsoft 365 via the Microsoft Graph API, providing read-only access to profile, calendar, email, Teams chats, OneDrive files, and meeting transcripts from any MCP client.1614 npm3MIT
- AlicenseNot gradedqualityDmaintenanceA read-only MCP server that enables AI assistants to search and read Microsoft Loop content through the Microsoft Graph API, with per-user permission trimming ensuring each user only sees pages they already have access to.MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that provides access to Microsoft 365 email, calendar, and Teams chats via Microsoft Graph, reusing the VS Code sign-in session. It enables reading/sending mail, managing calendar events, and interacting with Teams chats, with optional PolibioDesk integration for meeting minutes.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Microsoft Teams that lets AI assistants search, message, and manage chats, meetings, files, and contacts using your existing Teams browser login—no app approval or Azure AD registration needed.1,309 npm2MIT