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 連接器組、並由宿主應用程式負責 Microsoft 登入的團隊。
執行需求
透過 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 整合