Microsoft 365 Files について
Microsoft 365 Files は、Microsoft Graph 経由で OneDrive ファイルを管理する MCP サーバーです。ファイル操作、共有、バージョン履歴、アクティビティ、テキスト抽出に対応し、Microsoft 365 Mail のホストが管理する OAuth 認証情報を再利用します。
主な機能
- 01ファイルの一覧表示、検索、詳細取得
- 02アップロード、ダウンロード、移動、コピー、削除
- 03共有リンクの作成とアクセス許可の管理
- 04バージョン履歴とファイル操作履歴の確認
- 05テキストの読み取りと Word・PowerPoint の内容抽出
活用シーン
- 01OneDrive の文書を検索して共有
- 02以前のファイルバージョンの復元
- 03Word または PowerPoint ファイルからのテキスト抽出
MCP 対応
Microsoft Graph 経由で OneDrive のファイルとフォルダー操作を MCP クライアントに提供し、共有、アクセス許可、バージョン、アクティビティ、文書テキスト抽出に対応します。OAuth はホストが Microsoft 365 Mail 経由で行い、このサーバーは保存済みの認証情報を読み取ります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @mindstone/mcp-server-microsoft-filesMS_CLIENT_IDMicrosoft Entra (Azure AD) application client IDMS_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 responsesMICROSOFT_REQUEST_TIMEOUT_MSOverride the upstream Microsoft Graph request timeout in milliseconds (max 300000 = 5 min)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
20掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| top | integer | いいえ | 返す最大項目数(デフォルト:50) |
| path | string | いいえ | フォルダーパス(例:"/Documents")またはアイテム ID |
詳細
@mindstone/mcp-server-microsoft-files
Microsoft 365 OneDrive ファイル用 MCP サーバーです。Microsoft Graph API を介して、ファイルの一覧表示、検索、取得、ダウンロード、アップロード、削除、移動、コピー、共有、共有アクセス許可とバージョン履歴の管理、ファイルのアクティビティの確認、テキストと Office ドキュメントの内容の読み取りを行います。
コホート形式の Microsoft 365 OneDrive MCP です。@mindstone/mcp-server-microsoft-mail が管理する OAuth の仕組みを再利用するため、ホストで一度サインインするだけで、同じ認証情報からファイル、メール、カレンダー、Teams、SharePoint を利用できます。
ステータス
- バージョン: 0.2.1 · npm
- 認証: OAuth(ホスト側でオーケストレーション。認証情報は
mcp-server-microsoft-mailと共有)(MS_CLIENT_ID) - ツール: 20(ファイル、フォルダー、共有、アクセス許可、バージョン、アクティビティ)
- サーフェス: cloud-api
- 機械可読情報:
STATUS.json - 共有ライブラリ:
@mindstone/mcp-server-microsoft-shared
開発の背景
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を見つけて、チームが閲覧できる共有リンクを作成してください。」
ホストが呼び出すツール:
search_files—name:Q3-plan.docxを指定し、条件に一致する最新のアイテムを返します。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 自体は開始しません。
ワンクリックインストール
ボタンをクリックすると、ホストから次の値を入力するよう求められます: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_ID | Microsoft 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_MS | Microsoft 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_files | OneDrive 内のファイルとフォルダーを一覧表示します(デフォルトではルート)。 |
get_file | 指定したファイルまたはフォルダーのメタデータを取得します。 |
download_file | ファイルの有効期間が短いダウンロード URL を取得します。 |
search_files | OneDrive 内のファイルを名前または内容で検索します。 |
upload_file | OneDrive にファイルをアップロードします(テキストは最大 4 MB、バイナリは再開可能なアップロードセッション経由で base64 として最大 10 MB)。 |
create_folder | OneDrive に新しいフォルダーを作成します。 |
delete_file | ファイルまたはフォルダーを削除します。 |
move_file | ファイルまたはフォルダーを新しい場所に移動します。 |
copy_file | ファイルまたはフォルダーを新しい場所にコピーします。 |
get_recent | 最近アクセスしたファイルを一覧表示します。 |
get_shared | 他のユーザーから共有されたファイルを一覧表示します。 |
share_file | ファイルまたはフォルダーの共有リンクを作成します。 |
read_text_file | テキストファイルの内容を読み取ります。 |
invite_to_file | メールで特定のユーザーとファイルまたはフォルダーを共有します(読み取りまたは書き込み)。 |
list_file_permissions | ファイルまたはフォルダーに付与された共有アクセス許可を一覧表示します。 |
revoke_file_permission | ID を指定して共有アクセス許可を取り消します。 |
list_file_versions | ファイルのバージョン履歴を一覧表示します。 |
restore_file_version | 以前のバージョンを復元し、現在の内容を置き換えます。 |
list_file_activities | 最近のファイルアクティビティを一覧表示します(ドライブ全体または項目ごと。OneDrive for Business / SharePoint のみ)。 |
read_document | Word(.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 に再ライセンスされます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。