mcpField
O
OneDrive MCP Server

OneDrive MCP Server

ローカル
github.com/karthik20ファイル・ストレージ080 週間前に更新

OneDrive MCP Server について

OneDrive MCP Serverは、Microsoft OneDriveのファイルやフォルダーを検索・閲覧するためのMCPサーバーです。Microsoft Graph APIでアクセスし、ファイルやフォルダーのWeb URLも取得できます。

主な機能

  1. 01フォルダーで絞り込んだファイル検索
  2. 02フォルダー構造の検索と閲覧
  3. 03指定フォルダー内の項目一覧
  4. 04ファイルとフォルダーのWeb URL取得

活用シーン

  1. 01OneDrive内の特定ファイルの検索
  2. 02フォルダー内のファイルとサブフォルダーの確認
  3. 03ファイルやフォルダーのWeb URL取得

MCP 対応

MCPクライアントに、OneDriveのファイル・フォルダー検索とフォルダー内容の一覧表示ツールを提供します。Microsoft Graph APIを通じてアカウントのデータにアクセスします。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"onedrive-mcp-server-spring": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ONEDRIVE_ACCESS_TOKEN",
"karthik20/onedrive-mcp-server:0.0.1"
],
"env": {
"ONEDRIVE_ACCESS_TOKEN": "<ONEDRIVE_ACCESS_TOKEN>"
}
}
}
}
起動コマンドdocker run -i --rm -e ONEDRIVE_ACCESS_TOKEN karthik20/onedrive-mcp-server:0.0.1
設定が必要な環境変数
ONEDRIVE_ACCESS_TOKENシークレット

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

パッケージ
ocikarthik20/onedrive-mcp-server:0.0.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

OneDrive MCP サーバー

AI エージェントが Microsoft OneDrive 内のファイルやフォルダーを検索、移動できるようにする、Model Context Protocol(MCP)サーバーの実装です。Spring Boot と Spring AI で構築されています。

特長

  • 🔍 フォルダーによる絞り込みに対応した、OneDrive 内のファイル検索
  • 📁 フォルダー構造の検索と移動
  • 🔗 ファイルやフォルダーの直接アクセス用 Web URL の取得
  • 🤖 AI エージェントとの連携に対応した MCP 互換インターフェース
  • 🔒 Microsoft Graph API を使用した安全なアクセス

前提条件

  • Java 21 以上
  • Maven 3.6+
  • Docker(任意、コンテナーでデプロイする場合)
  • Microsoft OneDrive アカウントとアクセストークン

Microsoft OneDrive アクセストークンの取得

アクセストークンは、次の 2 つの方法で取得できます。

方法 1:Microsoft Graph Explorer を使用する(簡単な方法)
  1. Microsoft Graph Explorer にアクセスします
  2. Microsoft アカウントでサインインします
  3. 「Access token」タブに移動します
  4. 次のアクセス許可が有効になっていることを確認します
    • Files.Read
    • Files.Read.All
  5. トークンフィールドからアクセストークンをコピーします

注:このトークンは一時的なもので、数時間後に有効期限が切れます。テストには適していますが、本番環境での使用は推奨されません。

方法 2:独自のアプリケーションを登録する(本番環境に推奨)
  1. Microsoft Azure Portal でアプリケーションを登録します

    • 「New Registration」をクリックします
    • アプリケーション名を入力します
    • 「Supported account types」で「Accounts in any organizational directory and personal Microsoft accounts」を選択します
    • 「Redirect URI」で「Public client/native (mobile & desktop)」を選択し、「https://login.microsoftonline.com/common/oauth2/nativeclient」を入力します
    • 「Register」をクリックします
  2. 登録したアプリケーションの次の値を控えておきます

    • アプリケーション(クライアント)ID
    • リダイレクト URI
  3. API アクセス許可を設定します

    • 「API Permissions」に移動します
    • 「Add a permission」をクリックします
    • 「Microsoft Graph」を選択します
    • 「Delegated permissions」を選択します
    • 次のアクセス許可を追加します
      • Files.Read
      • Files.Read.All
  4. アクセストークンを取得します

    • ブラウザーで次の URL にアクセスします(YOUR_CLIENT_ID を置き換えてください)
    https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=YOUR_CLIENT_ID&scope=files.read&response_type=token&redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient
    
    • Microsoft アカウントでサインインします
    • 認証後、アクセストークンを含む URL にリダイレクトされます
    • URL パラメーター access_token= からアクセストークンの値をコピーします

このトークンは数時間有効で、定期的に更新する必要があります。本番環境で使用する場合は、適切な OAuth2 トークン更新フローを実装してください。

設定

  1. OneDrive アクセストークンを設定します

アプリケーションは、環境変数 MICROSOFT_ONEDRIVE_ACCESS_TOKEN でアクセストークンを受け取ります。この環境変数は application.yaml で参照されています。

onedrive:
    access-token: ${MICROSOFT_ONEDRIVE_ACCESS_TOKEN}
  1. VS Code MCP 設定:

ローカル JAR ファイルまたは Docker を使用して、VS Code で MCP サーバーを設定できます。VS Code のワークスペースで .vscode/mcp.json を作成するか、更新します。

方法 1:ローカル JAR を使用
{
    "servers": {
        "onedrive-mcpserver": {
            "type": "stdio",
            "command": "java",
            "args": [
                "-jar",
                "~/onedrive-mcp-server/target/onedrive-mcp-server-0.0.1.jar"
            ],
            "env": {
                "MICROSOFT_ONEDRIVE_ACCESS_TOKEN": "<INSERT TOKEN HERE>"
            }
        }
    }
}
方法 2:Docker を使用
{
    "servers": {
        "onedrive-mcpserver-docker": {
            "type": "stdio",
            "command": "docker",
            "args": [
                "run",
                "--rm",
                "-i",
                "-e",
                "MICROSOFT_ONEDRIVE_ACCESS_TOKEN",
                "karthik20/onedrive-mcp-server:0.0.1"
            ],
            "env": {
                "MICROSOFT_ONEDRIVE_ACCESS_TOKEN": "<INSERT TOKEN HERE>"
            }
        }
    }
}

<INSERT TOKEN HERE> を Microsoft OneDrive のアクセストークンに置き換えてください。ローカル JAR を使用する場合は、JAR のパスをローカル環境に合わせて更新してください。

ビルドと実行

ローカル開発
  1. プロジェクトをビルドします。
mvn clean package
  1. サーバーを実行します。
java -jar target/onedrive-mcp-server-0.0.1.jar
Docker でのデプロイ
  1. Docker イメージをビルドします。
mvn spring-boot:build-image

これにより、karthik20/onedrive-mcp-server:0.0.1 という名前のイメージが作成されます。

  1. コンテナーを実行します。
docker run -p 8080:8080 -e ONEDRIVE_ACCESS_TOKEN=your-token karthik20/onedrive-mcp-server:0.0.1

MCP クライアントでのテスト

GitHub Copilot
  1. VS Code に GitHub Copilot をインストールします
  2. MCP サーバーを使用するように AI の設定を行います。
{
    "mcp.server.url": "http://localhost:8080"
}
Claude Desktop
  1. Claude Desktop の設定を開きます
  2. URL http://localhost:8080 を指定して、新しい MCP サーバーを追加します
  3. 組み込みのファイルブラウザーを使用して OneDrive のファイルにアクセスします

利用可能な MCP ツール

1. ファイルの検索

フォルダーによる絞り込みに対応して、OneDrive 内のファイルを検索します。

public String searchFiles(String fileName, String folder)
2. フォルダーの検索

フォルダー構造を移動して検索します。

public String searchFolderPath(String folderName)
3. フォルダーの内容を一覧表示する

特定のフォルダーパス配下にあるすべてのファイルとフォルダーを一覧表示します。

public String listFolderContents(String folderPath)

名前、Web URL、パスなどのファイルとフォルダーの情報を含む JSON 配列を返します。フォルダーパスは「Documents/Bills」のように入れ子にできます。

テスト

テストスイートを実行します。

mvn test

使用技術

  • Spring Boot 3.4.4
  • Spring AI 1.0.0-M7
  • Microsoft Graph API
  • JUnit 5 & Mockito

ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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