ADLS2 MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ADLS2 MCP Server list filesystems in my storage account"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ADLS2 MCP Server 🚀
A Model Context Protocol (MCP) server implementation for Azure Data Lake Storage Gen2. This service provides a standardized interface for interacting with ADLS2 storage, enabling file operations through MCP tools.
Setup 🛠️
Installation 📦
Requires Python 3.13 or higher.
Install the package using uv:
uv pip install adls2-mcp-serverMCP Configuration ⚙️
Claude Desktop Configuration
1 - Edit Claude Desktop Configuration:
Open claude_desktop_config.json and add the following configuration.
On MacOs, the file is located here:
~/Library/Application Support/Claude Desktop/claude_desktop_config.json.
On Windows, the file is located here:
%APPDATA%\Claude Desktop\claude_desktop_config.json.
{
"mcpServers": {
"adls2": {
"command": "adls2-mcp-server",
"env": {
"LOG_LEVEL": "DEBUG",
"UPLOAD_ROOT": "/path/to/store/uploads",
"DOWNLOAD_ROOT": "/path/to/store/downloads",
"AZURE_STORAGE_ACCOUNT_NAME": "your-azure-adls2-storage-account-name",
"READ_ONLY_MODE": "false"
}
}
}
}The following is a table of available environment configuration variables:
Variable | Description | Default |
| Logging level |
|
| Root directory for file uploads |
|
| Root directory for file downloads |
|
| Azure ADLS2 storage account name |
|
| Azure ADLS2 storage account key (optional) |
|
| Whether the server should operate in read-only mode |
|
If AZURE_STORAGE_ACCOUNT_KEY is not set, the server will attempt to authenticate using Azure CLI credentials. Ensure you have logged in with Azure CLI before running the server:
az login2 - Restart Claude Desktop.
Available Tools 🔧
Filesystem (container) Operations
list_filesystems- List all filesystems in the storage accountcreate_filesystem- Create a new filesystemdelete_filesystem- Delete an existing filesystem
File Operations
upload_file- Upload a file to ADLS2download_file- Download a file from ADLS2file_exists- Check if a file existsrename_file- Rename/move a fileget_file_properties- Get file propertiesget_file_metadata- Get file metadataset_file_metadata- Set file metadataset_file_metadata_json- Set multiple metadata key-value pairs using JSON
Directory Operations
create_directory- Create a new directorydelete_directory- Delete a directoryrename_directory- Rename/move a directorydirectory_exists- Check if a directory existsdirectory_get_paths- Get all paths under the specified directory
Related MCP server: mysql-mcp-zag
Development 💻
Local Development Setup
1 - Clone the repository:
git clone https://github.com/erikhoward/adls2-mcp-server.git
cd adls2-mcp-server2 - Create and activate virtual environment:
Linux/macOS:
python -m venv .venv
source .venv/bin/activateWindows:
.venv\Scripts\activate3 - Install dependencies:
pip install -e ".[dev]"4 - Copy and configure environment variables:
cp .env.example .envEdit .env with your settings.
AZURE_STORAGE_ACCOUNT_NAME=your_azure_adls2_storage_account_name
AZURE_STORAGE_ACCOUNT_KEY=your_azure_adls2_storage_key (optional)
DOWNLOAD_ROOT=/path/to/download/folder
UPLOAD_ROOT=/path/to/upload/folder
READ_ONLY_MODE=True
LOG_LEVEL=INFOIf AZURE_STORAGE_ACCOUNT_KEY is not set, the server will attempt to authenticate using Azure CLI credentials. Ensure you have logged in with Azure CLI before running the server:
az login5 - Claude Desktop Configuration
Open claude_desktop_config.json and add the following configuration.
On MacOs, the file is located here:
~/Library/Application Support/Claude Desktop/claude_desktop_config.json.
On Windows, the file is located here:
%APPDATA%\Claude Desktop\claude_desktop_config.json.
{
"mcpServers": {
"adls2": {
"command": "uv",
"args": [
"--directory",
"/path/to/adls2-mcp-server/repo",
"run",
"adls2-mcp-server"
],
"env": {
"LOG_LEVEL": "DEBUG",
"UPLOAD_ROOT": "/path/to/store/uploads",
"DOWNLOAD_ROOT": "/path/to/store/downloads",
"AZURE_STORAGE_ACCOUNT_NAME": "your-azure-adls2-storage-account-name",
"READ_ONLY_MODE": "false"
}
}
}
}6 - Restart Claude Desktop.
Contributions 🤝
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m '✨ Add some AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)Open a Pull Request
License ⚖️
Licensed under MIT - see LICENSE.md file.
This is not an official Microsoft product.
Available Tools
16 toolscreate_directoryC
Create a new directory in the specified filesystem
Inputs: filesystem (required), path (required).
create_filesystemC
Create a new ADLS2 filesystem (container)
Inputs: name (required).
delete_directoryC
Delete a directory from the specified filesystem
Inputs: filesystem (required), path (required).
delete_filesystemC
Delete an ADLS2 filesystem
Inputs: name (required).
directory_existsB
Check if a directory exists in the specified filesystem
Inputs: filesystem (required), path (required).
directory_get_pathsC
Get all paths under the specified directory
Inputs: filesystem (required), directory_path (required), recursive.
download_fileC
Download a file from ADLS2
Inputs: filesystem (required), source (required), download_path (required).
file_existsB
Check if a file exists in the specified filesystem
Inputs: filesystem (required), file_path (required).
get_file_metadataC
Get metadata of a file in the specified filesystem
Inputs: filesystem (required), file_path (required).
get_file_propertiesC
Get properties of a file in the specified filesystem
Inputs: filesystem (required), file_path (required).
list_filesystemsA
List all filesystems in the storage account
Inputs: no named parameters.
rename_directoryB
Rename/move a directory within the specified filesystem
Inputs: filesystem (required), source_path (required), destination_path (required).
rename_fileC
Rename/move a file within the specified filesystem
Inputs: filesystem (required), source_path (required), destination_path (required).
set_file_metadataC
Set a single metadata key-value pair for a file
Inputs: filesystem (required), file_path (required), key (required), value (required).
set_file_metadata_jsonC
Set multiple metadata key-value pairs for a file using JSON
Inputs: filesystem (required), file_path (required), metadata_json (required).
upload_fileC
Upload a file to ADLS2
Inputs: upload_file (required), filesystem (required), destination (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 16 tools
Most tools have clearly distinct purposes (filesystem vs directory vs file operations). However, 'get_file_metadata' and 'get_file_properties' could be confused, and 'set_file_metadata' vs 'set_file_metadata_json' have similar functionality.
The naming pattern is mostly verb_noun (e.g., create_directory, upload_file). However, 'directory_get_paths' breaks this pattern by starting with the noun, which is a minor inconsistency.
With 16 tools, the server is slightly above the typical well-scoped range (3-15), but still reasonable for an ADLS2 service covering filesystems, directories, and files.
Notable gaps exist: there is no delete_file operation for file cleanup, no copy operation, and no update for filesystems. Agents managing files will hit a dead end trying to delete a file.
Maintenance
Related MCP Connectors
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Query, join, profile, clean and convert CSV/JSON/Parquet with server-side DuckDB over MCP.
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables file system operations such as listing directories, reading, writing, creating, and deleting files or directories through MCP.19 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables SQL query execution and database structure browsing via MCP tools and resources.MIT
- AlicenseBqualityDmaintenanceEnables interaction with Azure Data Lake Storage Gen2 through the Model Context Protocol, supporting file and directory operations such as upload, download, rename, and metadata management.16MIT
- FlicenseAqualityDmaintenanceEnables accessing and managing files from configured folders with filtering and size limits, allowing listing, reading, and searching files via MCP tools and resources.3-