Skills MCP AD
概要
Active Directory MCP は、オープンソースの Model Context Protocol サーバーであり、AI アシスタント(Claude、Gemini CLI、API 経由の ChatGPT など)が Active Directory 環境を安全に管理できるようにします。
主な機能
47 のツール:ユーザー、グループ、コンピューター、OU、セキュリティ、監査、および 15 の MSP プロンプトプレイブックをカバー。
3 つのトランスポート:stdio(
server.py)、FastMCP 経由の Streamable HTTP(server_http.py)、FastAPI 経由の Streamable HTTP(server_fastapi.py)。設計上マルチテナント:各インスタンスは
AD_MCP_CONFIGを介して独自の AD にバインドされます。同じコードベースで 1 台のホストから無制限のテナントにサービスを提供できます。書き込み操作のガードレール:すべての変更ツールは、AD に触れる前に、テナントごとのクライアント確認文字列または自動化 Bearer トークンのいずれかを必要とします。
すべての操作の監査ログ:各呼び出しは、操作名、ターゲット、モード(CONFIRMED / AUTOMATION / NO_CONFIRMATION_REQUIRED)、および結果を記録します。
命名規則
すべての MCP ツール名は、ad_* プレフィックスと説明的なサフィックスを使用します(例:ad_list_users_with_filters、ad_create_user_account、ad_disable_computer_account_trust)。これにより、この MCP が同じ AI クライアントに接続された他のサーバー(GLPI、Hudu など)と並行して実行される場合の衝突を回避します。
Related MCP server: Shell MCP
マルチテナントアーキテクチャ
この MCP は、テナントごとに 1 プロセスとして実行され、すべてが同じコードを共有するように設計されています:
.base-code/ <- this repository (shared source of truth)
src/active_directory_mcp/
ad-config/
ad-config.example.json <- template only (real configs are .gitignored)
<deployment>/ <- one directory per tenant, OUTSIDE this repo
tenant-a/
ad-config/ad-config.json <- real credentials (NEVER committed)
start.sh <- exports AD_MCP_CONFIG and launches the server
tenant-b/
ad-config/ad-config.json
start.sh各 start.sh は、そのテナントの設定を指す AD_MCP_CONFIG をエクスポートし、専用ポートで python -m active_directory_mcp.server_http を実行します。共有の .base-code/ を一度更新し、すべてのテナントを再起動します — 同じコード、分離された状態。
クイックスタート
前提条件
Python 3.11+
ホストから到達可能な LDAP/LDAPS
公開予定の操作に必要な権限を持つ AD サービスアカウント
1. インストール
git clone https://github.com/DevSkillsIT/Skills-MCP-Active-Directory.git
cd Skills-MCP-Active-Directory
python -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
pip install -e . # installs from pyproject.toml2. 設定
mkdir -p /etc/ad-mcp
cp ad-config/ad-config.example.json /etc/ad-mcp/ad-config.json
$EDITOR /etc/ad-mcp/ad-config.json # set server, bind_dn, password, base_dn, OUs
chmod 600 /etc/ad-mcp/ad-config.jsonサンプルファイルは git に保持されている唯一のテンプレートです。実際の
ad-config.jsonは.gitignore(ad-config/*.json+!ad-config/*.example.json)によってブロックされます。
3. 実行
export AD_MCP_CONFIG=/etc/ad-mcp/ad-config.json
# stdio transport (for direct Claude Desktop / mcp-cli use):
python -m active_directory_mcp.server
# HTTP transport (for Claude Code, Gemini CLI, n8n, etc.):
python -m active_directory_mcp.server_http --host 0.0.0.0 --port 8813 --path /activedirectory-mcp4. Claude Code から接続
claude mcp add --transport http ad http://localhost:8813/activedirectory-mcp \
--headers "Authorization: Bearer YOUR_AUTOMATION_TOKEN"5. Gemini CLI から接続
~/.gemini/settings.json:
{
"mcpServers": {
"ad": {
"httpUrl": "http://localhost:8813/activedirectory-mcp",
"headers": { "Authorization": "Bearer YOUR_AUTOMATION_TOKEN" },
"timeout": 30000
}
}
}ツール
すべてのツールは ad_* プレフィックスを使用します。書き込みとマークされたツールは、確認文字列または自動化 Bearer トークンのいずれかを必要とします。
テナント識別(3)
ツール | 操作 |
| このインスタンスのテナント情報を返す(最初に呼び出す) |
| クライアントレジストリに登録されているすべてのクライアントを一覧表示 |
| 指定されたクライアントスラッグに AD が設定されているか確認 |
ユーザー管理(9)
ツール | 書き込み | 操作 |
| — | ユーザーを一覧表示(OU/条件でオプションでフィルタリング) |
| — | sAMAccountName でユーザー属性を取得 |
| — | ユーザーがメンバーであるグループを一覧表示 |
| あり | 新しいユーザーを作成 |
| あり | ユーザー属性を変更 |
| あり | ユーザーを削除 |
| あり | ユーザーアカウントを有効化 |
| あり | ユーザーアカウントを無効化 |
| あり | パスワードをリセット(次回ログイン時に変更を強制) |
グループ管理(8)
ツール | 書き込み | 操作 |
| — | グループを一覧表示 |
| — | グループ属性を取得 |
| — | メンバーを一覧表示(オプションで再帰的) |
| あり | セキュリティまたは配布グループを作成 |
| あり | グループ属性を変更 |
| あり | グループを削除 |
| あり | メンバーを追加 |
| あり | メンバーを削除 |
コンピューター管理(8)
ツール | 書き込み | 操作 |
| — | コンピューターを一覧表示 |
| — | コンピューター属性を取得 |
| — | N 日以上アイドル状態のコンピューターを一覧表示 |
| あり | コンピューターオブジェクトを作成 |
| あり | コンピューター属性を変更 |
| あり | コンピューターオブジェクトを削除 |
| あり | コンピューターアカウントを有効化 |
| あり | コンピューターアカウントを無効化 |
| あり | コンピューターのセキュアチャネルパスワードをリセット |
組織単位(OU)管理(7)
ツール | 書き込み | 操作 |
| — | OU を一覧表示(再帰オプション) |
| — | OU 属性を取得 |
| — | OU 内のオブジェクトを一覧表示 |
| あり | OU を作成 |
| あり | OU を変更 |
| あり | OU を削除(force=true で空でない OU も削除) |
| あり | OU を新しい親に移動 |
セキュリティと監査(6)
ツール | 操作 |
| ドメイン情報 + パスワード/ロックアウトポリシー |
| 特権グループを一覧表示(Domain Admins、Enterprise Admins など) |
| ユーザーの実効権限を表示 |
| N 日以上ログオンしていないユーザー |
| パスワードポリシーに違反しているアカウント |
| 特権アカウントの衛生状態を監査 |
MSP プロンプト(2 ツール + 15 プロンプト)
ツール | 操作 |
| 15 のプロフェッショナル MSP プレイブックを一覧表示(マネージャー&アナリスト) |
| 引数付きで指定されたプレイブックを実行 |
完全なプロンプトカタログ(セキュリティ監査、オンボーディング、オフボーディング、パスワードリセットプレイブックなど)については、PROMPTS.md を参照してください。
システム(4)
ツール | 操作 |
| LDAP 接続プローブ |
| 完全なヘルスチェック(サーバー + LDAP 検索テスト + 統計) |
| 登録済み全ツールの自己記述スキーマ |
設定
ランタイム設定ファイルのパスは、AD_MCP_CONFIG 環境変数を介して提供されます。スキーマは ad-config/ad-config.example.json にあります。
主要フィールド
フィールド | 必須 | 説明 |
| はい | プライマリLDAP URL(例: |
| いいえ | フェイルオーバー用の追加LDAP URL |
| はい | サービスアカウントの完全DN |
| はい | サービスアカウントのパスワード(ファイルは |
| はい | ベースDN(例: |
| はい | ユーザー/グループ/コンピューター/サービスアカウントのデフォルトOU |
| いいえ | StartTLS / LDAPSを強制 |
| いいえ |
|
| いいえ | 平文でのバインドを拒否 |
| いいえ | 無人書き込み操作用のベアラートークン |
| いいえ |
|
サービスアカウントの権限
公開する予定の操作に必要な最小限の委任権限をバインドアカウントに付与します:
読み取り専用デプロイ: ドメインルートに対する「すべてのプロパティの読み取り」+「内容の一覧表示」で十分です。
ユーザー/グループ書き込み: 対象OUに「オブジェクトの作成/削除」+「すべてのプロパティの書き込み」を委任します。
パスワードリセット: 対象OUに「パスワードのリセット」拡張権限を委任します。
コンピューターの参加/離脱: コンピューターOUに「コンピューターオブジェクトの作成/削除」を委任します。
常に専用のサービスアカウントを使用し、本番環境ではLDAPSを使用し、パスワードを定期的にローテーションしてください。
セキュリティ
書き込み保護モデル
すべての変更ツール(ad_create_*、ad_modify_*、ad_delete_*、ad_enable_*、ad_disable_*、ad_reset_*、ad_add_*、ad_remove_*、ad_move_*)は、LDAPに到達する前にcheck_write_permission()を呼び出します。以下のいずれかが満たされた場合に書き込みを許可します:
automation_tokenが設定ファイルのautomation.tokenと一致する — CI / スケジュールジョブ向け。client_confirmationがテナントスラッグと一致する — AIアシスタントは最初にad_get_client_tenant_infoを呼び出し、スラッグをユーザーに読み上げ、その正確な文字列を渡す必要があります。テナントが
require_confirmation_for_writes: falseに設定されている(明示的なオプトアウト。推奨されません)。
上記のいずれも満たされない場合、呼び出しはpermitted: falseメッセージで短絡され、LDAP書き込みは試行されません。
監査ログ
すべての操作は、タイムスタンプ、ツール名、ターゲット、確認モード(AUTOMATION / CONFIRMED / WRONG_CONFIRMATION / NO_CONFIRMATION_REQUIRED)、成功/失敗を含む構造化ログ行を書き込みます。ログはlogging.fileが指す場所に出力されます。
シークレットの衛生管理
実際の
ad-config.jsonファイルはgit-ignoreされます。追跡されるのは*.example.jsonのみです。実際の
passwordまたはautomation.tokenを含む設定を、ログ記録または第三者によって文字起こしされるチャットに貼り付けないでください。automation.tokenを再生成するたびにローテーションしてください。特権資格情報として扱ってください。
テスト
# Unit + integration tests
pytest tests/ -v
# Coverage
pytest --cov=src --cov-report=term-missing
# Lint
ruff check .同梱のdocker-compose-ad.ymlは、192.168.1.100にSamba ADコンテナとMCPコンテナを起動し、本番環境に触れることなく実際のLDAPバックエンドに対して統合テストを実行できるようにします。
トラブルシューティング
症状 | 考えられる原因 | 修正 |
|
|
|
| サービスアカウントに委任権限がない | 対象OUで再委任 |
| 信頼されていない自己署名証明書 |
|
すべての書き込みで | 確認/トークンが不足 | 最初に |
| ソケットは開いているがLDAP検索が失敗 | サービスアカウントのロックアウト/レプリケーション/ネットワークACLを確認 |
コントリビューション
リポジトリをフォークします。
フィーチャーブランチを作成します:
git checkout -b feat/your-feature。テストを実行します:
pytest。明確な説明と関連するIssueへのリンクを添えてPRを開きます。
コミットはConventional Commitsに従います。
ライセンス
MIT — LICENSEを参照してください。
謝辞
Alperen Adalarによる
alpadalar/ActiveDirectoryMCPプロジェクトをベースにしています。
サポート
バグ報告: GitHub Issues
ディスカッション: GitHub Discussions
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA comprehensive production-ready MCP server with AI integration, plugin management, and web-based administration. Features multi-database support, RAG capabilities, SSH/SFTP access, and a built-in plugin hub for managing the MCP ecosystem.
- AlicenseAqualityDmaintenanceA production-ready MCP server that enables AI assistants to execute shell commands, manage files, monitor system resources, and automate complex workflows with advanced features like stock tracking and web automation.732MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that enables AI-powered assessment of Active Directory on-premises environments by exposing AD data as queryable tools for LLMs like Claude.MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to manage, monitor, and diagnose Windows systems through 42 tools across 8 modules, including services, event viewer, task scheduler, processes, network, diagnostics, observability, and safety features.328MIT
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DevSkillsIT/Skills-MCP-Active-Directory'
If you have feedback or need assistance with the MCP directory API, please join our Discord server