Lokka (Microsoft 365 MCP server) について
Lokka は Microsoft Graph と Azure Resource Manager API 向けの MCP サーバーで、自然言語で Azure と Microsoft 365 テナントを照会・管理できます。テナント管理作業に AI を使いたい管理者に向いています。インタラクティブ認証、アプリ専用認証、クライアント提供トークンに対応しています。
主な機能
- 01Microsoft Graph と Azure 管理 API の呼び出し
- 02インタラクティブ、証明書、クライアントシークレットによる認証
- 03クライアント提供トークンモードと認証状態の確認
- 04Graph の v1.0 を固定する設定
- 05トークン設定と権限追加用のツール
活用シーン
- 01Entra の条件付きアクセスポリシーの確認
- 02Intune デバイス構成ポリシーの割り当て状況の確認
- 03Azure の前月のサービス費用の分析
MCP 対応
Lokka-Microsoft、set-access-token、get-auth-status、add-graph-permission などのツールを MCP クライアントに公開し、Graph と Azure API へのアクセスを提供する MCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Lokka
Lokka は Microsoft Graph および Azure RM API 用の Model Context Protocol サーバーです。AI を使って Azure および Microsoft 365 のテナントにクエリを実行し、管理できます。
お気に入りの AI モデルやチャットクライアントで Lokka を使う方法については、Lokka.dev をご覧ください。
Lokka を使うと、Claude Desktop や任意の MCP クライアントから自然言語で Microsoft API を操作し、Azure および Microsoft 365 のテナントでさまざまなタスクを実行できます。
例:
Create a new security group called 'Sales and HR' with a dynamic rule based on the department attribute.Find all the conditional access policies that haven't excluded the emergency access accountShow me all the Intune device configuration policies assigned to the 'Call center' groupWhat was the most expensive service in Azure last month?

認証方法
Lokka は、さまざまなデプロイシナリオに対応するため、複数の認証方法をサポートするようになりました。
対話型認証
対話型ログインを使ったユーザーベースの認証には、次の構成を使用できます。
これは最も簡単な構成で、既定の Lokka アプリを使用します。
{
"mcpServers": {
"Lokka-Microsoft": {
"command": "npx",
"args": ["-y", "@merill/lokka"]
}
}
}
カスタムアプリを使った対話型認証
カスタムの Microsoft Entra アプリを使用する場合は、Microsoft Entra で新しいアプリ登録を作成し、次の環境変数を設定します。
{
"mcpServers": {
"Lokka-Microsoft": {
"command": "npx",
"args": ["-y", "@merill/lokka"],
"env": {
"TENANT_ID": "<tenant-id>",
"CLIENT_ID": "<client-id>",
"USE_INTERACTIVE": "true"
}
}
}
}
アプリ専用認証
従来のアプリ専用認証です。次の構成では、証明書(推奨)またはクライアントシークレットによる認証を使用できます。
Entra アプリの作成方法について詳しくは、インストールガイドをご覧ください。
証明書を使ったアプリ専用認証
PEM 形式でエンコードされたクライアント証明書を使うアプリ専用認証です。
{
"mcpServers": {
"Lokka-Microsoft": {
"command": "npx",
"args": ["-y", "@merill/lokka"],
"env": {
"TENANT_ID": "<tenant-id>",
"CLIENT_ID": "<client-id>",
"CERTIFICATE_PATH": "/path/to/certificate.pem",
"CERTIFICATE_PASSWORD": "<optional-certificate-password>",
"USE_CERTIFICATE": "true"
}
}
}
}
PFX クライアント証明書を PEM 形式でエンコードされた証明書に変換するには、次のコマンドを使用します。
openssl pkcs12 -in /path/to/cert.pfx -out /path/to/cert.pem -nodes -clcerts
クライアントシークレットを使ったアプリ専用認証
{
"mcpServers": {
"Lokka-Microsoft": {
"command": "npx",
"args": ["-y", "@merill/lokka"],
"env": {
"TENANT_ID": "<tenant-id>",
"CLIENT_ID": "<client-id>",
"CLIENT_SECRET": "<client-secret>"
}
}
}
}
クライアント提供トークン
MCP クライアントがアクセストークンを提供する、トークンベースの認証です。
{
"mcpServers": {
"Lokka-Microsoft": {
"command": "npx",
"args": ["-y", "@merill/lokka"],
"env": {
"USE_CLIENT_TOKEN": "true"
}
}
}
}
クライアント提供トークンモードを使用する場合:
USE_CLIENT_TOKEN=trueを指定して MCP サーバーを起動しますset-access-tokenツールを使って、有効な Microsoft Graph アクセストークンを指定しますget-auth-statusツールを使って、認証状態を確認します- 必要に応じて
set-access-tokenを使い、トークンを更新します
新しいツール
トークン管理ツール
set-access-token:Microsoft Graph 認証のアクセストークンを設定または更新しますget-auth-status:現在の認証状態と機能を確認しますadd-graph-permission:追加の Microsoft Graph 権限スコープを対話形式で要求します
Graph API のバージョン管理
Lokka では、すべてのリクエストで使用する Microsoft Graph API のデフォルトバージョンを制御できるようになりました。
- デフォルトの動作:最新機能にアクセスするため、
betaバージョンを使用します - 本番環境モード:
USE_GRAPH_BETA=falseを設定すると、すべてのリクエストでv1.0バージョンが強制的に使用されます - リクエストごとの上書き:個別のリクエストで
graphApiVersionパラメーターを指定することもできます(ただし、USE_GRAPH_BETA=falseの場合を除きます)
USE_GRAPH_BETA=false の場合、graphApiVersion パラメーターで明示的に beta を指定しても、すべての Graph API 呼び出しで安定版の v1.0 が使用されます。
はじめに
Lokka のインストール方法と設定方法の詳細については、ドキュメントをご覧ください。
VS Code にワンクリックでインストール
| プラットフォーム | VS Code | VS Code Insiders |
|---|---|---|
| Windows | ||
| macOS/Linux |
コンポーネント
ツール
-
Lokka-Microsoft- Microsoft Graph と Azure API を呼び出します。Azure および Microsoft 365 テナントのクエリに対応しています。アクセス許可が付与されている場合は、更新にも対応します。
- 入力:
apiType(string):クエリ対象の Microsoft API の種類です。選択肢:Microsoft Graph(Entra)の場合は 'graph'、Azure Resource Management の場合は 'azure'。path(string):呼び出す Azure または Graph API の URL パスです(例:'/users'、'/groups'、'/subscriptions')。method(string):使用する HTTP メソッドです(例:get、post、put、patch、delete)apiVersion(string):Azure Resource Management API のバージョンです(apiType が Azure の場合は必須)subscriptionId(string):Azure サブスクリプション ID です(Azure Resource Management 用)。queryParams(string):$filter、$select などのクエリパラメーターの配列です。すべてのパラメーターは文字列です。body(JSON):リクエスト本文です(POST、PUT、PATCH 用)
- 戻り値:Azure または Graph API 呼び出しの結果です。
-
set-access-token(v0.2.0 で追加)- クライアント提供トークンモードの使用時に、Microsoft Graph 認証用のアクセストークンを設定または更新します。
- 入力:
accessToken(string):Microsoft Graph 認証で取得したアクセストークンexpiresOn(string, optional):ISO 形式のトークン有効期限
- 戻り値:トークン更新の確認
-
get-auth-status(v0.2.0 で追加)- MCP サーバーの現在の認証状態とモードを確認します
- 戻り値:認証モード、準備状態、機能
環境変数
サーバーは環境変数を使用して設定します。次の環境変数がサポートされています。
| 名前 | 説明 | 必須 |
|---|---|---|
TENANT_ID | Microsoft Entra テナントの ID です。 | はい(クライアント提供トークンモードを除く) |
CLIENT_ID | Microsoft Entra に登録されたアプリケーションの ID です。 | はい(クライアント提供トークンモードを除く) |
CLIENT_SECRET | Microsoft Entra に登録されたアプリケーションのクライアントシークレットです。 | はい(クライアント資格情報モードのみ) |
USE_INTERACTIVE | インタラクティブ認証モードを有効にするには、"true" を設定します。 | いいえ |
USE_CLIENT_TOKEN | クライアント提供トークン認証モードを有効にするには、"true" を設定します。 | いいえ |
USE_CERTIFICATE | 証明書認証モードを有効にするには、"true" を設定します。 | いいえ |
CERTIFICATE_PATH | 証明書認証に使用する PEM エンコード証明書ファイルのパスです。 | はい(証明書モードのみ) |
CERTIFICATE_PASSWORD | 証明書ファイルのパスワード(暗号化されている場合)です。 | いいえ |
REDIRECT_URI | インタラクティブ認証のリダイレクト URI です(デフォルト:http://localhost:3000)。 | いいえ |
ACCESS_TOKEN | クライアント提供トークンモードで使用する初期アクセストークンです。 | いいえ |
USE_GRAPH_BETA | すべての Graph API 呼び出しで beta ではなく v1.0 を使用するには、"false" を設定します(デフォルト:true、beta を使用できます)。 | いいえ |
貢献者
- インタラクティブ認証とトークンベース認証(v0.2.0) - @darrenjrobinson
- 証明書認証(v0.2.1) - @nitzpo
スポンサー
Lokka は無料で広告もなく、投資家もいません。時間の節約に役立った場合は、GitHub でのスポンサーをご検討ください。💙
インストール
このサーバーを Claude Desktop アプリで使用するには、次の設定を
claude_desktop_config.json の「mcpServers」セクションに追加します。
インタラクティブ認証
{
"mcpServers": {
"Lokka-Microsoft": {
"command": "npx",
"args": ["-y", "@merill/lokka"]
}
}
}
クライアント資格情報認証
{
"mcpServers": {
"Lokka-Microsoft": {
"command": "npx",
"args": ["-y", "@merill/lokka"],
"env": {
"TENANT_ID": "<tenant-id>",
"CLIENT_ID": "<client-id>",
"CLIENT_SECRET": "<client-secret>"
}
}
}
}
<tenant-id>、<client-id>、および <client-secret> を、Microsoft Entra アプリケーションの実際の値に置き換えてください。(Entra アプリの作成方法とエージェントの設定方法の詳細については、インストールガイドをご覧ください。)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。