mcpField
M
Microsoft 365 Files

Microsoft 365 Files

ローカル
github.com/mindstoneファイル・ストレージ13今日更新

Microsoft 365 Files について

Microsoft 365 Files は、Microsoft Graph 経由で OneDrive ファイルを管理する MCP サーバーです。ファイル操作、共有、バージョン履歴、アクティビティ、テキスト抽出に対応し、Microsoft 365 Mail のホストが管理する OAuth 認証情報を再利用します。

主な機能

  1. 01ファイルの一覧表示、検索、詳細取得
  2. 02アップロード、ダウンロード、移動、コピー、削除
  3. 03共有リンクの作成とアクセス許可の管理
  4. 04バージョン履歴とファイル操作履歴の確認
  5. 05テキストの読み取りと Word・PowerPoint の内容抽出

活用シーン

  1. 01OneDrive の文書を検索して共有
  2. 02以前のファイルバージョンの復元
  3. 03Word または PowerPoint ファイルからのテキスト抽出

MCP 対応

Microsoft Graph 経由で OneDrive のファイルとフォルダー操作を MCP クライアントに提供し、共有、アクセス許可、バージョン、アクティビティ、文書テキスト抽出に対応します。OAuth はホストが Microsoft 365 Mail 経由で行い、このサーバーは保存済みの認証情報を読み取ります。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"mindstone-mcp-server-microsoft-files": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-microsoft-files"
],
"env": {
"MS_CLIENT_ID": "<MS_CLIENT_ID>",
"MS_CONFIG_DIR": "<MS_CONFIG_DIR>",
"MS_ACCOUNT_EMAIL": "<MS_ACCOUNT_EMAIL>",
"MS_MCP_PACKAGE_ID": "<MS_MCP_PACKAGE_ID>",
"MICROSOFT_REQUEST_TIMEOUT_MS": "<MICROSOFT_REQUEST_TIMEOUT_MS>"
}
}
}
}
起動コマンドnpx -y @mindstone/mcp-server-microsoft-files
設定が必要な環境変数
MS_CLIENT_IDMicrosoft Entra (Azure AD) application client ID
MS_CONFIG_DIRPath to the per-user Microsoft config directory (credentials/, accounts.json)
MS_ACCOUNT_EMAILAccount email when running in multi-account per-instance mode (falls back to the first account in accounts.json)
MS_MCP_PACKAGE_IDLogical package ID surfaced in error responses
MICROSOFT_REQUEST_TIMEOUT_MSOverride the upstream Microsoft Graph request timeout in milliseconds (max 300000 = 5 min)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@mindstone/mcp-server-microsoft-files0.2.1

ツール

20

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
topintegerいいえ返す最大項目数(デフォルト:50)
pathstringいいえフォルダーパス(例:"/Documents")またはアイテム ID

詳細

@mindstone/mcp-server-microsoft-files

npm version License: FSL-1.1-MIT

Microsoft 365 OneDrive ファイル用 MCP サーバーです。Microsoft Graph API を介して、ファイルの一覧表示、検索、取得、ダウンロード、アップロード、削除、移動、コピー、共有、共有アクセス許可とバージョン履歴の管理、ファイルのアクティビティの確認、テキストと Office ドキュメントの内容の読み取りを行います。

コホート形式の Microsoft 365 OneDrive MCP です。@mindstone/mcp-server-microsoft-mail が管理する OAuth の仕組みを再利用するため、ホストで一度サインインするだけで、同じ認証情報からファイル、メール、カレンダー、Teams、SharePoint を利用できます。

ステータス

開発の背景

2026年5月にこのサーバーを移植した時点では、Microsoft 独自の Graph MCP のラインナップに、単独で動作する OneDrive サーバーはまだありませんでした。また、当時のコミュニティ製の選択肢では、OneDrive が独自のログイン対象として扱われていました。つまり、コネクターごとに別々の OAuth 認証フローを実行し、それぞれが独自の更新トークンを保存していました。MindstoneRebel にバンドルされていたコネクターをそのまま移植し、同じ Microsoft 365 コホートの5つのコネクター(メール、カレンダー、ファイル、Teams、SharePoint)で、単一の認証情報セット、トークンの永続化とリクエストタイムアウトを扱う単一の共有ライブラリパッケージ、そしてホストがすでに復旧方法を把握している構造化された auth_required エンベロープを共有できるようにしました。Files は独自の認証ツールを定義せず、@mindstone/mcp-server-microsoft-mail の authenticate_microsoft_account ツールを再利用します。

やり取りの例

「OneDrive から最新版の Q3-plan.docx を見つけて、チームが閲覧できる共有リンクを作成してください。」

ホストが呼び出すツール:

  1. search_files — name:Q3-plan.docx を指定し、条件に一致する最新のアイテムを返します。
  2. share_file — そのアイテムの読み取り専用共有リンクを作成します。

応答(抜粋):

{
  "match": {
    "id": "01H7...",
    "name": "Q3-plan.docx",
    "lastModifiedDateTime": "2026-05-18T17:42:00Z"
  },
  "share": {
    "type": "view",
    "scope": "organization",
    "webUrl": "https://example-my.sharepoint.com/:w:/g/personal/.../EZk..."
  }
}

要件

  • Node.js 20+
  • npm
  • Microsoft OAuth フローを実行し、アカウントごとのトークンファイルを ${MS_CONFIG_DIR}/credentials/${sanitised-email}.token.json に、${MS_CONFIG_DIR}/accounts.json のインデックスを作成するホストアプリケーション。このサーバーはそれらのファイルを読み取りますが、OAuth 自体は開始しません。

ワンクリックインストール

Cursor に追加 VS Code に追加 VS Code Insiders に追加

ボタンをクリックすると、ホストから次の値を入力するよう求められます:MS_CLIENT_ID、MS_CONFIG_DIR、MS_MCP_PACKAGE_ID、MICROSOFT_REQUEST_TIMEOUT_MS。

Claude Desktop / Claude Code / Goose / Continue.dev 用の手動設定(Microsoft 365 Files)
{
  "mcpServers": {
    "Microsoft 365 Files": {
      "command": "npx",
      "args": [
        "-y",
        "@mindstone/mcp-server-microsoft-files"
      ],
      "env": {
        "MS_CLIENT_ID": "",
        "MS_CONFIG_DIR": "",
        "MS_MCP_PACKAGE_ID": "Microsoft365Files",
        "MICROSOFT_REQUEST_TIMEOUT_MS": "60000"
      }
    }
  }
}

クイックスタート

インストールとビルド
cd <path-to-repo>/connectors/microsoft-files
npm install
npm run build
npx(公開後)
npx -y @mindstone/mcp-server-microsoft-files
ローカル
node dist/index.js

設定

このサーバーは、Microsoft 365 の OAuth フローを管理するホストアプリケーションと連携して動作します。ホストが認証情報をディスクに書き込み、このサーバーがそれを読み込みます。

必須の環境変数
名前説明
MS_CLIENT_IDMicrosoft Entra(Azure AD)アプリケーションのクライアント ID。
MS_CONFIG_DIRユーザーごとの Microsoft 設定ディレクトリ(credentials/、accounts.json)へのパス。
オプションの環境変数
名前説明デフォルト
MS_ACCOUNT_EMAILアカウントごとにインスタンスを実行するマルチアカウントモードで使用するアカウントのメールアドレス。accounts.json の最初のアカウント。
MS_MCP_PACKAGE_IDエラーレスポンスに表示される論理パッケージ ID。Microsoft365Files
MICROSOFT_REQUEST_TIMEOUT_MSMicrosoft Graph へのリクエストタイムアウトを上書きします(最大 300000 ms)。60000
MICROSOFT_DISABLE_REFRESHトークンの更新を無効にするには 1 を設定します。このサーフェスでは、ホストが再認証を実行できるように、ツールは構造化された auth_required レスポンスを返して安全に失敗します。クラウドサーフェスではこれを 1 に設定します。未設定

ホスト設定の例

Claude Desktop / Cursor
{
  "mcpServers": {
    "Microsoft365Files": {
      "command": "npx",
      "args": ["-y", "@mindstone/mcp-server-microsoft-files"],
      "env": {
        "MS_CLIENT_ID": "your-entra-application-client-id",
        "MS_CONFIG_DIR": "/absolute/path/to/microsoft-config"
      }
    }
  }
}

まず @mindstone/mcp-server-microsoft-mail の authenticate_microsoft_account を使ってサインインしてください。その後、ファイルツールはそこで書き込まれた ${MS_CONFIG_DIR}/ の認証情報を再利用します。

ローカル開発(npm への公開は不要)
{
  "mcpServers": {
    "Microsoft365Files": {
      "command": "node",
      "args": ["<path-to-repo>/connectors/microsoft-files/dist/index.js"],
      "env": {
        "MS_CLIENT_ID": "your-entra-application-client-id",
        "MS_CONFIG_DIR": "/absolute/path/to/microsoft-config"
      }
    }
  }
}

ツール(20)

ツール説明
list_filesOneDrive 内のファイルとフォルダーを一覧表示します(デフォルトではルート)。
get_file指定したファイルまたはフォルダーのメタデータを取得します。
download_fileファイルの有効期間が短いダウンロード URL を取得します。
search_filesOneDrive 内のファイルを名前または内容で検索します。
upload_fileOneDrive にファイルをアップロードします(テキストは最大 4 MB、バイナリは再開可能なアップロードセッション経由で base64 として最大 10 MB)。
create_folderOneDrive に新しいフォルダーを作成します。
delete_fileファイルまたはフォルダーを削除します。
move_fileファイルまたはフォルダーを新しい場所に移動します。
copy_fileファイルまたはフォルダーを新しい場所にコピーします。
get_recent最近アクセスしたファイルを一覧表示します。
get_shared他のユーザーから共有されたファイルを一覧表示します。
share_fileファイルまたはフォルダーの共有リンクを作成します。
read_text_fileテキストファイルの内容を読み取ります。
invite_to_fileメールで特定のユーザーとファイルまたはフォルダーを共有します(読み取りまたは書き込み)。
list_file_permissionsファイルまたはフォルダーに付与された共有アクセス許可を一覧表示します。
revoke_file_permissionID を指定して共有アクセス許可を取り消します。
list_file_versionsファイルのバージョン履歴を一覧表示します。
restore_file_version以前のバージョンを復元し、現在の内容を置き換えます。
list_file_activities最近のファイルアクティビティを一覧表示します(ドライブ全体または項目ごと。OneDrive for Business / SharePoint のみ)。
read_documentWord(.docx)または PowerPoint(.pptx)ファイルのテキストを直接抽出します。

セキュリティに関する注意事項

  • 独自の認証ツールはありません。コホートで OAuth の窓口を統一するため、サインインは @mindstone/mcp-server-microsoft-mail に委任されます。
  • トークンプロバイダーの更新に失敗した場合は、構造化された auth_required レスポンスに変換されるため、ホストはクラッシュせずに再認証を促せます。
  • upload_file は、同梱のコネクターに準拠して空のコンテンツを検証し、誤用によるゼロバイトのアップロードを拒否します。
  • バイナリのアップロードでは、Graph の要件に従い、事前認証済みのアップロードセッション URL に Graph アクセストークンを付けずにチャンクを送信します。バイトを送信する前にセッション URL を検証します。HTTPS かつデフォルトポートであること、userinfo がないこと、Microsoft OneDrive / SharePoint のホストのみであることを確認し、リダイレクトは追従せずに拒否します。
  • Microsoft 365 で作成されたコンテンツ(ファイル名、共有相手の識別情報、アクティビティの実行者とアクションキー、アクセス許可のロール、抽出されたドキュメントのテキスト、Graph のエラーメッセージ)は、<untrusted-content> エンベロープ内で返されます。アクセス許可、バージョン、アクティビティ、アップロード、ドキュメントの各パスにおける Graph のレスポンスは境界で Zod によって検証されます。機能上の識別子(アクセス許可/バージョン/項目 ID)と webUrls は構造化されたままなので、後続のツール呼び出しに引き継げます。
  • アクセス許可/バージョン/アクティビティの一覧は @odata.nextLink に従ってページネーションされます(上限があり、truncated フラグで明示されます)。継続リンクは Graph ホストへのリンクのみ追跡されるため、アクセストークンが別のオリジンに漏れることはありません。
  • read_document のダウンロードは、通知されたメタデータ上のサイズだけでなく、ストリームの途中でもバイト数に上限を設けます。また、Office ZIP の展開はエントリーごとおよび累積で上限を設け、ZIP 爆弾によるメモリ上での展開を防ぎます。
  • read_document は Graph のリダイレクト先である事前認証済みダウンロード URL を手動で追跡します。各ホップはアップロードセッションと同じ OneDrive / SharePoint ホストポリシーに照らして再検証され、ホップ数にも上限があります。アクセストークンは Graph ホストにのみ送信され、別のオリジンには転送されません。
  • 数値制限(top、maxSize、maxChars)は正の整数でなければならず、ネットワークリクエストを送信する前に拒否されます。
  • ツールごとの Graph 呼び出しには、呼び出し元とコホートのタイムアウトシグナルを合成したものが適用されます。

ライセンス

FSL-1.1-MIT — Functional Source License、Version 1.1。将来のライセンスは MIT です。競合しない用途では無料で使用でき、LICENSE に記載された変換日に MIT に再ライセンスされます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。