Koppla - Active Directory MCP Server
Koppla MCP server is a locally run integration for AI assistants that speak the Model Context Protocol. Koppla - Active Directory MCP Server.
Koppla is a model-context-protocol server for Active Directory that enables you to manage users, groups, and computer objects using natural language.
The server ships on PyPI as koppla, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.
Once Koppla is connected, these are the calls the assistant has available:
AD_SERVER — The address of the Active Directory serverAD_USER — Username for authenticationAD_PASSWORD — Password for authenticationBASE_DN — Base DN for LDAP queriesAD_WRITE_ENABLED — Enable or disable write operations (true/false)You will need 5 environment variables: AD_SERVER, AD_USER, AD_PASSWORD, BASE_DN, AD_WRITE_ENABLED. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Plenty of file and storage access servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Koppla's toolset — AD_SERVER, AD_USER, AD_PASSWORD and 2 more — is a fair guide to whether it matches your workflow. It is maintained by Rudy Mens - LazyAdmin.nl; worth a glance at recent repository activity before you build anything load-bearing on it.
We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.
| Tool | What it does |
|---|---|
| AD_SERVER | The address of the Active Directory server. |
| AD_USER | Username for authentication. |
| AD_PASSWORD | Password for authentication. |
| BASE_DN | Base DN for LDAP queries. |
| AD_WRITE_ENABLED | Enable or disable write operations (true/false). |
{
"mcpServers": {
"Koppla-Active-Directory": {
"command": "python",
"args": ["-m", "koppla.server"],
"env": {
"AD_SERVER": "ldap://<domain-controller-name>:389",
"AD_USER": "<domain\\username>",
"AD_PASSWORD": "<password>",
"BASE_DN": "DC=lazyadmin,DC=nl",
"AD_WRITE_ENABLED": "false"
}
}
}
}Configuration as documented by the project. Restart the client after saving.
| Variable | Description | Required |
|---|---|---|
| AD_SERVER | Configuration value read at startup. | Optional |
| AD_USER | Configuration value read at startup. | Optional |
| AD_PASSWORD | Configuration value read at startup. | Optional |
| BASE_DN | Configuration value read at startup. | Optional |
| AD_WRITE_ENABLED | Configuration value read at startup. | Optional |
Scoped local file access — read, write, search and reorganise files in directories you explicitly allow.
Search and read your Drive — Docs, Sheets and files become context your assistant can actually use.
Query, modify and analyse local SQLite databases in conversation — the fastest way to chat with a data file.
Build a programmable telecommunications stack for connecting telephony services with the Internet via a cloud-based utility.
Chat with your second brain — search, read and write vault notes through the Local REST API.
Connects AI models to an Obsidian knowledge base for direct access and manipulation of notes and folders.