Microsoft Azure Data Lake Storage 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.
Requires Python 3.13 or higher.
Install the package using uv
:
uv pip install adls2-mcp-server
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 |
---|---|---|
LOG_LEVEL | Logging level | INFO |
UPLOAD_ROOT | Root directory for file uploads | ./uploads |
DOWNLOAD_ROOT | Root directory for file downloads | ./downloads |
AZURE_STORAGE_ACCOUNT_NAME | Azure ADLS2 storage account name | None |
AZURE_STORAGE_ACCOUNT_KEY | Azure ADLS2 storage account key (optional) | None |
READ_ONLY_MODE | Whether the server should operate in read-only mode | true |
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 login
2 - Restart Claude Desktop.
list_filesystems
- List all filesystems in the storage accountcreate_filesystem
- Create a new filesystemdelete_filesystem
- Delete an existing filesystemupload_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 JSONcreate_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 directory1 - Clone the repository:
git clone https://github.com/erikhoward/adls2-mcp-server.git
cd adls2-mcp-server
2 - Create and activate virtual environment:
Linux/macOS:
python -m venv .venv
source .venv/bin/activate
Windows:
.venv\Scripts\activate
3 - Install dependencies:
uv pip install -e ".[dev]"
4 - Copy and configure environment variables:
cp .env.example .env
Edit .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=INFO
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 login
5 - 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 are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/AmazingFeature
)git commit -m '✨ Add some AmazingFeature'
)git push origin feature/AmazingFeature
)Licensed under MIT - see LICENSE.md file.
This is not an official Microsoft product.