mcpField
L
LDAP Assistant MCP

LDAP Assistant MCP

ローカル
github.comクラウド・インフラ112 週間前に更新

LDAP Assistant MCP について

LDAP Assistant MCPは、389 Directory Serverの稼働中、ローカル、オフライン、アーカイブの各環境を読み取り専用で診断します。健康状態、レプリケーション、性能、ログ、SOSレポートを調べる管理者向けで、機密情報は標準でマスキングされます。

主な機能

  1. 01ヘルス・レプリケーション診断
  2. 02性能・インデックス分析
  3. 03稼働中・オフライン・アーカイブ対応
  4. 04ログ・SOSレポート分析
  5. 05機密情報の標準マスキング
  6. 06調査ガイド用プロンプト

活用シーン

  1. 01レプリケーション障害の切り分け
  2. 02サーバーの状態と性能を確認
  3. 03停止中のインスタンスを調査
  4. 04SOSレポートを要約

MCP 対応

MCPクライアントに42種類の読み取り専用診断ツールと調査用プロンプトを提供します。対応プロバイダーは389 Directory Serverで、プライバシーモードでは機密値を標準でマスキングします。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"droideck-ldap-assistant": {
"command": "uvx",
"args": [
"ldap-assistant-mcp"
],
"env": {
"LDAP_SERVERS_CONFIG": "<LDAP_SERVERS_CONFIG>"
}
}
}
}
起動コマンドuvx ldap-assistant-mcp
設定が必要な環境変数
LDAP_SERVERS_CONFIGAbsolute path to the servers.json file describing the LDAP servers, offline instances, or SOS-report archives to analyze

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

パッケージ
pypildap-assistant-mcp0.5.0

ツール

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

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

詳細

LDAP Assistant MCP

Version License: GPL v3

ベータ版 — 読み取り専用の 389 Directory Server 診断機能です。評価や社内でのトラブルシューティングに適しています。ツールのスキーマ、出力形式、設定フィールドは、1.0.0 より前に変更される可能性があります。

LDAP Assistant MCP は、AI アシスタントを 389 Directory Server のサポートエンジニアに変えます。 稼働中のサーバー、停止中のインスタンス、または顧客案件の SOS レポートを指定して、次のように質問できます。

  • 「ディレクトリサーバーに何か問題がありますか?」
  • 「案件を開始する前に、この SOS レポートを要約してください。」
  • 「これらのサーバー間でレプリケーションが壊れているようです。なぜですか?」

lib389(公式の 389 DS 管理ライブラリ)を基盤とする 42 個の読み取り専用診断ツールから、優先順位付けされた調査結果(重大度、影響、修正方法)を返します。プライバシーモードはデフォルトで有効で、LLM に渡される前に DN、ホスト名、IP アドレスがマスキングされます。

サポート対象のプロバイダー:389 Directory Server。(OpenLDAP プロバイダーのコードは、オプトインフラグで実験的に利用できますが、プライバシーは保証されず、サポート契約の対象外です。詳しくは環境変数を参照してください。)

インストール

前提条件
  • Linux(主な対象)または macOS。Windows はネイティブではサポートされていません(python-ldap の公式 Windows ホイールがないため)。WSL2 を使用してください(インストール手順書を参照)

  • Python 3.11 以降(CI では 3.13 でテストしています)

  • uv パッケージマネージャー

  • MCP クライアント(Claude Desktop、Claude Code、Cursor、Gemini CLI など)

  • システム開発ライブラリ(python-ldap のビルドに必要):

    Fedora / RHEL / CentOS:

    sudo dnf install python3-devel openldap-devel cyrus-sasl-devel openssl-devel gcc
    

    Ubuntu / Debian:

    sudo apt install python3-dev libldap2-dev libsasl2-dev libssl-dev gcc
    

    macOS(Homebrew):

    brew install openldap
    export LDFLAGS="-L$(brew --prefix openldap)/lib"
    export CPPFLAGS="-I$(brew --prefix openldap)/include"
    

インストール中に問題が発生しましたか? → インストールのトラブルシューティング手順書

PyPI からインストール(推奨)

リポジトリをクローンする必要はありません。MCP クライアントが uvx を使って公開パッケージを実行します。サーバーの設定に進み、次のクライアント設定を使用してください(Claude Desktop の場合、macOS では ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "ldap-assistant-mcp": {
      "command": "uvx",
      "args": ["ldap-assistant-mcp"],
      "env": {
        "LDAP_SERVERS_CONFIG": "/absolute/path/to/servers.json"
      }
    }
  }
}

LDAP_SERVERS_CONFIG には絶対パスを指定してください。相対パスは MCP クライアントの作業ディレクトリを基準に解決されますが、その場所は通常、想定している場所とは異なります。

ソースからインストール(開発用)
git clone https://github.com/droideck/ldap-assistant-mcp.git
cd ldap-assistant-mcp
uv venv && source .venv/bin/activate
uv pip install -e .[dev]

# Register with your MCP client via FastMCP:
fastmcp install claude-desktop fastmcp.json   # or: fastmcp install claude-code fastmcp.json

その後、上記のように生成されたクライアントエントリで LDAP_SERVERS_CONFIG を設定してください。テスト用コンテナとアーキテクチャについては、開発ガイドを参照してください。

サーバーの設定

LDAP サーバーを登録した servers.json を作成します。注: name フィールドはプライバシーモードでもマスキングされません。ツール呼び出しをまたいでサーバーを識別できるよう、そのまま AI エージェントに渡されます。サーバー名にホスト名、IP アドレス、その他の個人情報を含めないでください。

{
  "servers": [
    {
      "name": "local-ds",
      "ldap_url": "ldap://localhost:389",
      "base_dn": "dc=example,dc=com",
      "bind_dn": "cn=Directory Manager",
      "bind_password": "your-password",
      "provider_type": "389ds",
      "is_local": true,
      "serverid": "localhost"
    },
    {
      "name": "remote-ds",
      "ldap_url": "ldap://ldap.example.com:389",
      "base_dn": "dc=example,dc=com",
      "bind_dn": "cn=Directory Manager",
      "bind_password": "your-password",
      "provider_type": "389ds"
    },
    {
      "name": "stopped-ds",
      "ldap_url": "ldap://localhost:389",
      "base_dn": "dc=example,dc=com",
      "bind_dn": "cn=Directory Manager",
      "bind_password": "unused-in-offline-mode",
      "provider_type": "389ds",
      "is_local": true,
      "serverid": "localhost",
      "is_offline": true
    },
    {
      "name": "sos-report",
      "provider_type": "389ds",
      "is_archive": true,
      "archive_path": "/path/to/sosreport-host-2025/",
      "instance_name": "slapd-instance"
    }
  ]
}

注: serverid は slapd- プレフィックスを除いたインスタンス名です(例:インスタンス slapd-localhost の場合は localhost)。

4 つのサーバーモード
モード設定利用できる機能
リモートldap_url のみLDAP 経由でヘルスチェック、レプリケーション、パフォーマンス、設定、エントリーのツールを利用できます。ログ/ディスク/証明書へのアクセスはできません
ローカル+ is_local: true、serverid上記のすべてに加え、ログ分析、ディスク監視、証明書チェック、プロセスメトリクスを利用できます
オフライン+ is_offline: true停止中のローカルインスタンスを、dse.ldif とログファイルを使って分析します。LDAP 接続は不要です。事後分析や起動しないインスタンスに適しています
アーカイブis_archive: true、archive_path任意のマシンの SOS レポートまたは設定/ログの抽出データを利用できます(tarball またはディレクトリ。レイアウトは自動検出)。LDAP もローカルインスタンスも不要です

ライブ接続が必要なツールは、その旨を通知します。エラーには、そのサーバーモードで利用できるツールが記載されるため、調査が行き詰まらずに続けられます。

リモート LDAPS 証明書の検証: リモートの ldaps:// サーバーでは、デフォルトでサーバー証明書が検証されます("tls_verify": true、または環境変数ベースの設定では LDAP_TLS_VERIFY)。自己署名証明書や、その他信頼されていない証明書を使うサーバーに接続するには、そのサーバーエントリーで "tls_verify": false を設定します。これにより証明書の検証が完全に無効になるため、信頼できるラボ環境でのみ使用してください。ローカルインスタンス(is_local: true)では、代わりにインスタンス独自の NSS 証明書ディレクトリを使用します。

クライアント設定または servers.json を編集したら、MCP クライアントを再起動してから、「どの LDAP サーバーが設定されていますか?」 と尋ねて確認してください。

プライバシーモード

デフォルトでは、プライバシーモードが有効になっており、ツールの出力から機密データ(DN、ホスト名、IP、ユーザーの詳細情報)がマスキングされます。個別のエントリーを公開するツール(get_user_details、ldap_search)は無効になり、一覧表示ツールは件数のみを返します。診断メトリクス(件数、比率、パーセンテージ)は引き続き表示されます。

信頼できる環境でのみ、すべてのデータへのアクセスを有効にするには:

{
  "env": {
    "LDAP_MCP_EXPOSE_SENSITIVE_DATA": "true"
  }
}

重要: ローカルモデル、プライベートクラウドの LLM インスタンスを使用する場合、またはテスト/サンプルデータを扱う場合にのみ有効にしてください。本番ディレクトリに接続している状態で公開 LLM を使用する場合は、有効にしないでください。ディレクトリ情報が、それらのトレーニングデータやログに含まれる可能性があります。

プライバシーモードが有効な場合(デフォルト):

  • ホスト名、DN、IP アドレス、サフィックスは匿名化されます
  • 設定値はマスキングされます
  • 機密情報を扱うツールは無効になります
  • 診断メトリクス(件数、比率、パーセンテージ)は引き続き表示されます
  • サーバー名(servers.json の name フィールド)は決してマスキングされません。ユーザーが選択するラベルであり、ツール呼び出し間で一貫性を保つ必要があります。サーバー名にホスト名、IP、その他の個人情報を含めないでください。
データの取り扱い
  • テレメトリーはありません。 サーバーは何も収集せず、外部に情報を送信することもありません。
  • すべてローカルで実行されます。 ディレクトリデータは LDAP サーバー、ローカルインスタンス、またはアーカイブファイルから読み取られ、MCP クライアントにのみ返されます。MCP クライアントは、ツールの結果を設定済みの任意の LLM に転送します。デフォルトで有効なプライバシーモードにより、機密値はサーバープロセスの外部に出る前にマスキングされます。
  • 認証情報はローカルの servers.json/環境変数に保持されます。ツールの出力に含まれることはなく、ツールのエラーもサニタイズされます。

最初に確認すること

目的質問する/使用する裏側で実行されるもの
すべてのサーバーの健全性を把握する「ディレクトリーサーバーに問題はありますか?」first_look
SOS レポートを要約する「SOS レポートのアーカイブを分析して」 または archive_investigation プロンプトanalyze_archive → アーカイブプレイブック
目的に合うツールを確認するtool_navigator プロンプト指定した目的に対応するツールマップ
レプリケーションのトリアージをガイド付きで行うdiagnose_replication プロンプトレプリケーションツールの実行順序
パフォーマンスのトリアージをガイド付きで行うperformance_investigation プロンプトパフォーマンスツールの実行順序
朝の運用レビューを行うdaily_health_check プロンプト健全性と監視の一括確認

プレイブック(症状 → ツール → ツールでは把握できないこと → 手動での確認方法):

グループ別ツール

読み取り専用ツールは 42 個です。パラメーターを含む完全なリファレンスは TOOLS.md をご覧ください。

グループツール主な機能
健全性first_look、run_healthcheck、list_healthchecks、server_health複数サーバーの概要、dsctl healthcheck と同等の完全なチェック
レプリケーションget_replication_status、get_replication_topology、check_replication_lag、list_replication_conflicts、get_agreement_statusRUV/CSN の分析、トポロジーのマッピング、競合エントリーの確認
パフォーマンスget_performance_summary、キャッシュ/接続/操作/スレッド/リソースの統計情報ボトルネックの検出とチューニングの推奨
インデックスlist_indexes、analyze_index_configuration、find_unindexed_searchesアクセスログに基づくインデックス未設定の検索の特定
設定get_server_configuration、compare_server_configurations、list_plugins、get_backend_configurationライブおよびオフライン(dse.ldif)の両方に対応
ログanalyze_access_log/analyze_error_log/analyze_audit_log(統計情報、プライバシーに配慮)、parse_*_log(全エントリー、機密データモードが必要)従来形式と JSON 形式のログ
アーカイブ/SOSanalyze_archive、validate_configuration、compare_dse_configsインベントリー、オフライン設定のリント、dse.ldif の完全な差分
ユーザーとグループユーザーの一覧表示/検索/詳細確認、有効/ロック中の絞り込み、グループプライバシーモードでは件数のみ
高度な機能ldap_search、run_monitor、list_servers、cn=config リソース汎用検索(機密データモードのみ)

環境変数リファレンス

変数デフォルト目的
LDAP_SERVERS_CONFIG–servers.json の絶対パス(マルチサーバー設定。推奨)
LDAP_PROVIDERdirsrvサーバー実装。サポートされているのは dirsrv(389 DS)のみです。openldap を使用するには、以下のオプトインフラグが必要です
LDAP_MCP_EXPERIMENTAL_OPENLDAPfalse実験的な OpenLDAP プロバイダーをオプトインします(2 つのツールを提供。プライバシーの保証はありません)
LDAP_MCP_EXPOSE_SENSITIVE_DATAfalseプライバシーモードを無効にします(プライバシーモードを参照)
LDAP_MCP_DEBUGfalseデバッグログとツールエラーのトレースバックを有効にします
LDAP_MCP_TOOL_TIMEOUT30ツール呼び出しごとのタイムアウト(秒)
LDAP_MCP_MAX_TOOL_TIMEOUT120負荷の高いツール(first_look、アーカイブの比較など)のタイムアウト上限
LDAP_CONNECT_TIMEOUT30LDAP のネットワーク/操作タイムアウト(到達できないサーバーへの接続によるハングを防ぎます)

単一サーバーへのフォールバック(LDAP_SERVERS_CONFIG が設定されていない場合のみ使用):

変数デフォルト目的
LDAP_URL–LDAP URL 全体(ホスト名/ポート/SSL 変数の代わりに使用)
LDAP_HOSTNAME / LDAP_PORT / LDAP_USE_SSLlocalhost / 389 / false接続パラメーター
LDAP_BASE_DN–デフォルトの検索ベース
LDAP_BIND_DN / LDAP_BIND_PASSWORDcn=Directory Manager / –バインド認証情報(デフォルトのパスワードはありません)
LDAP_AUTH_METHODsimplesimple または anonymous(実装されているバインド方式のみ。LDAPI/SASL EXTERNAL はここではなく LDAP_USE_LDAPI で選択します)
LDAP_IS_LOCAL / LDAP_SERVERIDfalse / –ローカルインスタンス機能(ログ、ディスク、証明書)を有効にします
LDAP_USE_LDAPIfalseLDAPI Unix ソケット経由で接続します
LDAP_IS_OFFLINEfalseローカルインスタンスを停止中として扱います(オフラインモード)
LDAP_TLS_VERIFYtrueリモートの ldaps:// 接続でサーバー証明書を検証します(信頼できる検証環境でのみ false に設定してください)

トラブルシューティング

症状原因/対処法
インストール中に python-ldap のビルドが失敗するシステムヘッダーが不足しています。インストールプレイブックを参照してください
ツールが設定の代わりにデフォルトの localhost サーバーを報告するLDAP_SERVERS_CONFIG が設定されていないか、MCP クライアントの設定から読み込めません。servers.json のパス解決を参照してください
list_* ツールが件数のみを返し、ldap_search/get_user_details の実行が拒否されるこれはプライバシーモードです(デフォルトで有効。正常な動作です)。プライバシーモードを参照してください
「requires a running server with a live LDAP connection」エラーが表示される対象はオフライン/アーカイブサーバーです。エラーメッセージに、そのサーバーで使用できるツールが記載されています
ローカルサーバーへの LDAPI 接続が失敗するserverid に slapd- プレフィックスが付いていないことと、インスタンスのソケットが存在することを確認してください

テストに使用できる LDAP サーバーがありませんか?開発ガイドでは、Docker でテスト用コンテナーを起動できます。

制限事項

  • ベータ版 — ツールのスキーマ、出力形式、設定フィールドは 1.0.0 より前に変更される場合があります
  • LLM による解釈 — ツールは正確なデータを返しますが、その解釈は LLM が行います。幻覚が生じる可能性があります。推奨事項に従って行動する前に、必ず確認してください。
  • 読み取り専用 — 書き込み操作はまだありません
  • プレーンテキストのパスワード — 設定ファイルのアクセス権を制限してください
  • STDIO トランスポートのみ — HTTP/SSE はまだサポートされていません

ドキュメント

ドキュメント説明
変更履歴バージョン履歴とリリースノート
アーカイブ/SOS プレイブックケースを開く前に SOS レポートを要約します
インストールプレイブックpython-ldap のビルド、WSL2、uvx、設定パスの解決
開発ガイド開発環境のセットアップ、設定、アーキテクチャ
テストガイドテストの実行と作成
貢献ガイド貢献方法
リリースチェックリストリリースの作成と検証方法
389 DS ツール389 Directory Server ツールのリファレンス
OpenLDAP ツールOpenLDAP ツールのリファレンス(実験的、オプトインのみ)

ライセンス

GPL-3.0-or-later。lib389(公式の 389 Directory Server 管理ライブラリ)および FastMCP を基盤としています。

参考資料

コメント

MCP は初めてですか?

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

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