MCP-MSGraph について
MCP-MSGraphは、Microsoft Graphからユーザープロフィールを読み取るプロトタイプのMCPサーバーです。MCPとMicrosoft Graphデータの接続を示す概念実証として作られています。
主な機能
- 01Microsoft Graphからのユーザープロフィール取得
- 02HTTPエンドポイントでプロフィール要求を受付
- 03Azure ADアプリケーション資格情報で認証
活用シーン
- 01ユーザーIDを指定したプロフィール取得
- 02Microsoft Graph接続のMCPプロトタイプ作成
MCP 対応
リクエストエンドポイントを介して、Microsoft Graphのユーザープロフィール読み取り機能をMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP-MSGraph
Microsoft Graph からユーザープロファイルを読み取る、プロトタイプの MCP(Model Context Protocol) サーバーです。
このプロジェクトでは、概念実証として、Microsoft Graph に保存されたデータに MCP を接続する方法を紹介します。
Azure AD アプリケーションの作成
- Azure Portal にログインします。
- Azure Active Directory > App registrations > New registration に移動します。
- 新しいアプリケーションを作成します。
- 生成された Application (client) ID と Client Secret を控えます。
- API permissions で User.Read.All を追加し(適切な委任アクセス許可またはアプリケーションのアクセス許可を選択)、管理者の同意を付与します。
サーバーの実行手順:
-
リポジトリを クローンするか、独自のフォルダーとファイル構成をセットアップします。
-
仮想環境を作成します:
python3 -m venv venv
source venv/bin/activate
- 必要なパッケージをインストールします:
pip install fastapi uvicorn requests requests-oauthlib pydantic
-
'main.py' を開き、プレースホルダーの値をアプリ ID、テナント ID、クライアントシークレットに置き換えます。
-
サーバーを起動します
uvicorn main:app --reload
サーバーは http://127.0.0.1:8000 で利用できます。
リクエストの例
curl(または任意の REST クライアント)を使用して、ユーザープロファイルを取得するリクエストを送信します:
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-d '{
"action":"readUserProfile",
"contextId":"abc123",
"data": {"userId":"[email protected]"}
}'
結果は次のようになります:
{"status":"success","action":"readUserProfile","contextId":"abc123","data":{"@odata.context":"https://graph.microsoft.com/beta/$metadata#users('adelev%40M365x17584779.onmicrosoft.com')/profile/$entity","id":"profileId","[email protected]":"https://graph.microsoft.com/beta/$metadata#users('adelev%40M365x17584779.onmicrosoft.com')/profile/account","account":[{"ageGroup":"","countryCode":"","userPrincipalName":"[email protected]","allowedAudiences":"organization","createdDateTime":"2025-01-30T11:06:01.7661211Z","lastModifiedDateTime":"2025-01-30T11:06:01.9431431Z","id":"c74cb3af-2f62-43fa-9709-5d2cfc4b4042","isSearchable":false,"inference":null,"preferredLanguageTag":{"locale":null,"displayName":null},"createdBy":{"user":null,"device":null,"application":{"displayName":"AAD","id":null}},"lastModifiedBy":{"user":null,"device":null,"application":{"displayName":"MsGraph","id":null}},"source":{"type":["AAD","MsGraph"]},"sources":[{"sourceId":"4ce763dd-9214-4eff-af7c-da491cc3782d","isDefaultSource":true},{"sourceId":"0024a795-114d-4031-95c7-5fb543e00e80","properties":["isSipEnabled"]}]},{"ageGroup":"","countryCode":"","userPrincipalName":"","allowedAudiences":"federatedOrganizations","createdDateTime":"2025-01-30T11:06:01.7661213Z","lastModifiedDateTime":"2025-01-30T11:06:01.9431431Z","id":"750f8cc2-2f72-4b38-88c6-531dfc5ed47f","isSearchable":false,"inference":null,"preferredLanguageTag":{"locale":null,"displayName":null},"createdBy":{"user":null,"device":null,"application":{"displayName":"AAD","id":null}},"lastModifiedBy":{"user":null,"device":null,"application":{"displayName":"MsGraph","id":null}},"source":{"type":["AAD","MsGraph"]},"sources":[{"sourceId":"4ce763dd-9214-4eff-af7c-da491cc3782d","isDefaultSource":true},{"sourceId":"0024a795-114d-4031-95c7-5fb543e00e80","properties":["isSipEnabled"]}]}]}}%
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。