Microsoft 365 SharePoint

io.github.mindstone由 GitHub 账号 mindstone 发布v0.2.1更新于 Nov 3, 2026

Microsoft 365 SharePoint via Graph: sites, libraries, pages, lists, search, file/list mutations.

发布方自己的服务:Microsoft Learn MCP

已验证STDIO仅桌面效率与工作流文件与存储

概览

AI 生成的概览

Microsoft 365 SharePoint 服务器,让助手通过 Microsoft Graph 发现站点、浏览文档库、读取页面和列表、搜索内容,并修改文件和列表。

可以做什么
  • 通过增量授权获取 SharePoint 的 Sites.Read.All 访问权限
  • 发现并查看站点、子站点、驱动器、站点项和最近文件
  • 浏览文档库与文件:列出、读取文本、下载、搜索、查看版本历史
  • 修改库项目:上传文本或二进制文件、新建文件夹、移动、复制、重命名、删除、创建共享链接
  • 管理项目权限:列出授权、邀请协作者、撤销访问
  • 编写与管理页面和列表:读取、创建、更新、发布页面;浏览和修改列表项与列,创建列表
适用场景
适合助手需要处理组织内 SharePoint 内容的场景:跨站点查找文档、读取页面和列表数据,或创建、更新和共享文件与列表项。适用于已使用 Mindstone Microsoft 365 连接器组、并由宿主应用负责微软登录的团队。
运行要求
通过 npx 在本地运行,需要 Node.js 20+ 和 npm。需要 MS_CLIENT_ID(Microsoft Entra 应用客户端 ID)和 MS_CONFIG_DIR(存放凭据与 accounts.json 的用户配置目录)。必须由宿主应用完成 Microsoft OAuth 流程并写入令牌文件,本服务器只读取这些文件。可选:MS_ACCOUNT_EMAIL、MS_MCP_PACKAGE_ID、MICROSOFT_REQUEST_TIMEOUT_MS、MICROSOFT_DISABLE_REFRESH。需要访问 Microsoft Graph 的网络连接。
安装前请注意
服务器会从 MS_CONFIG_DIR 读取 OAuth 令牌文件,该目录含敏感凭据,需妥善保护。许多工具会写入、移动、删除、发布或共享内容,create_sharing_link 和 invite_item_collaborators 可能把文件开放给他人,使用前请确认范围。所有请求都以登录账号的权限发往 Microsoft Graph。登录需先通过配套邮件服务器的 authenticate_microsoft_account 完成。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Microsoft 365 SharePoint,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@mindstone/mcp-server-microsoft-sharepoint

[npm version] [License: FSL-1.1-MIT]

Microsoft 365 SharePoint MCP server — discover sites, browse document libraries, read pages and lists, search content, and perform SharePoint file/list mutations via the Microsoft Graph API.

Cohort-style SharePoint MCP. Owns its own authenticate_sharepoint tool so the host can request incremental Sites.Read.All consent on top of the cohort's base Microsoft 365 OAuth surface.

Status

Why this exists

When we ported this in May 2026, Microsoft's own Graph MCP lineup did not yet ship a stand-alone SharePoint server, and the community options at the time either skipped the incremental-consent flow that SharePoint requires for cross-tenant scenarios or treated SharePoint as its own login surface — every connector ran a separate OAuth dance and stored its own copy of the refresh token. We pulled the bundled connector out of MindstoneRebel as a 1:1 port so that the same five-connector Microsoft 365 cohort (mail, calendar, files, teams, SharePoint) shares a single set of credentials and a single shared-library package for token persistence and request timeouts. SharePoint declares its own authenticate_sharepoint tool — separate from the cohort's authenticate_microsoft_account — so the host can request the additional Sites.Read.All scope without disturbing the existing mail/calendar/files/teams session.

Example interaction

"Find the Q3 OKR doc in the Strategy team's site, and create a read-only sharing link my whole team can use."

Tools the host calls:

  1. search_sharepoint — query Q3 OKR scoped to the Strategy site, returns the matching item.
  2. create_sharing_link — read-only, organisation scope, on that item.

Response (trimmed):

json
{  "match": {    "siteId": "example.sharepoint.com,...",    "name": "Q3-OKRs.docx",    "webUrl": "https://example.sharepoint.com/sites/Strategy/..."  },  "share": {    "type": "view",    "scope": "organization",    "webUrl": "https://example.sharepoint.com/:w:/r/sites/Strategy/.../EZk..."  }}

Requirements

  • Node.js 20+
  • npm
  • A host application that performs the Microsoft OAuth flow and writes per-account token files into ${MS_CONFIG_DIR}/credentials/${sanitised-email}.token.json and an ${MS_CONFIG_DIR}/accounts.json index. This server reads those files; it does not initiate OAuth itself.

One-click install

[Add to Cursor] [Add to VS Code] [Add to VS Code Insiders]

After clicking the button, your host will prompt you to fill: MS_CLIENT_ID, MS_CONFIG_DIR, MS_MCP_PACKAGE_ID, MICROSOFT_REQUEST_TIMEOUT_MS.

Manual config for Claude Desktop / Claude Code / Goose / Continue.dev (Microsoft 365 SharePoint)
json
{  "mcpServers": {    "Microsoft 365 SharePoint": {      "command": "npx",      "args": [        "-y",        "@mindstone/mcp-server-microsoft-sharepoint"      ],      "env": {        "MS_CLIENT_ID": "",        "MS_CONFIG_DIR": "",        "MS_MCP_PACKAGE_ID": "Microsoft365SharePoint",        "MICROSOFT_REQUEST_TIMEOUT_MS": "60000"      }    }  }}

Quick Start

Install & build

bash
cd <path-to-repo>/connectors/microsoft-sharepointnpm installnpm run build

npx (once published)

bash
npx -y @mindstone/mcp-server-microsoft-sharepoint

Local

bash
node dist/index.js

Configuration

This server runs alongside a host application that owns the Microsoft 365 OAuth flow. The host writes credentials to disk; this server reads them.

Required environment variables

NameDescription
MS_CLIENT_IDMicrosoft Entra (Azure AD) application client ID.
MS_CONFIG_DIRPath to the per-user Microsoft config directory (credentials/, accounts.json).

Optional environment variables

NameDescriptionDefault
MS_ACCOUNT_EMAILAccount email when running in multi-account per-instance mode.First account in accounts.json.
MS_MCP_PACKAGE_IDLogical package ID surfaced in error responses.Microsoft365SharePoint
MICROSOFT_REQUEST_TIMEOUT_MSOverride the upstream Microsoft Graph request timeout (max 300000 ms).60000
MICROSOFT_DISABLE_REFRESHSet to 1 to disable token refresh on this surface. Tools fail closed with the structured auth_required response so the host can drive reauth. Cloud surfaces set this to 1.unset

Host configuration examples

Claude Desktop / Cursor

json
{  "mcpServers": {    "Microsoft365SharePoint": {      "command": "npx",      "args": ["-y", "@mindstone/mcp-server-microsoft-sharepoint"],      "env": {        "MS_CLIENT_ID": "your-entra-application-client-id",        "MS_CONFIG_DIR": "/absolute/path/to/microsoft-config"      }    }  }}

Sign in via @mindstone/mcp-server-microsoft-mail's authenticate_microsoft_account first to negotiate the base session, then call this server's authenticate_sharepoint to request the additional SharePoint Sites.Read.All scope on top.

Local development (no npm publish needed)

json
{  "mcpServers": {    "Microsoft365SharePoint": {      "command": "node",      "args": ["<path-to-repo>/connectors/microsoft-sharepoint/dist/index.js"],      "env": {        "MS_CLIENT_ID": "your-entra-application-client-id",        "MS_CONFIG_DIR": "/absolute/path/to/microsoft-config"      }    }  }}

Tools (46)

ToolDescription
authenticate_sharepointRequest SharePoint incremental consent (Sites.Read.All).
list_sharepoint_sites, get_sharepoint_siteDiscover and inspect SharePoint sites.
list_site_document_libraries, list_library_files, get_library_fileBrowse libraries and items.
download_library_file, read_library_text_file, search_library_filesRead and search library content.
list_file_versionsList the version history of a library file.
upload_library_file, upload_library_file_binary, create_library_folder, delete_library_item, move_library_item, copy_library_item, rename_library_item, create_sharing_linkMutate and share library items (text upload, binary/large upload via resumable session).
list_item_permissions, invite_item_collaborators, revoke_item_permissionManage per-item sharing permissions (list grants, invite specific people, revoke access).
list_site_pages, read_site_pageBrowse and read SharePoint pages.
create_site_page, update_site_page, publish_site_pageAuthor pages: create drafts (with simple HTML content), update metadata, publish.
list_site_lists, list_list_items, get_list_item, create_list_item, update_list_item, delete_list_itemBrowse and mutate list items.
list_list_columns, create_site_listRead a list's column schema; create new lists with columns.
search_sharepointSearch across sites, libraries, lists, and content.
list_subsites, get_recent_files, get_library_treeSite discovery and hierarchy views.
get_file_metadata, update_file_metadataRead and update custom SharePoint metadata fields.
get_site_drive, list_site_items, get_site_item, get_site_list, get_site_by_path, get_sites_deltaAdditional site, list, and drive inspection APIs.

Security notes

  • authenticate_sharepoint is the SharePoint-specific incremental-consent setup tool; the rest of the cohort's base auth comes from @mindstone/mcp-server-microsoft-mail's authenticate_microsoft_account.
  • Manual error payloads include action_required and next_step recovery fields while preserving the existing auth_required and success shapes.
  • The bundled silent SharePoint page-content fallback was removed — handler errors now surface the actual failure rather than returning a stale page body.
  • Per-tool Graph calls run under a composed caller + cohort timeout signal via .options({signal}).

Licence

FSL-1.1-MIT — Functional Source License, Version 1.1, with MIT future licence. Free for non-competing use; relicenses to MIT on the converter date in LICENSE.

来源:connectors/microsoft-sharepoint/README.md,提交 22c4611

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.1最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。

其他 Microsoft 集成