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: 1 - Edit Claude Desktop Configuration: Open claudedesktopconfig.json and add the following configuration. On MacOs, the file
Add this skill
npx mdskills install erikhoward/adls-mcp-serverWell-documented MCP server providing comprehensive ADLS2 operations with clear setup and authentication options
1# ADLS2 MCP Server ๐23A 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.45[](https://opensource.org/licenses/MIT) [](https://www.python.org/) [](https://docs.astral.sh/uv/) [](https://github.com/modelcontextprotocol/spec)67## Setup ๐ ๏ธ89### Installation ๐ฆ1011Requires Python 3.13 or higher.1213Install the package using `uv`:1415```bash16uv pip install adls2-mcp-server17```1819### MCP Configuration โ๏ธ2021### Claude Desktop Configuration22231 - Edit Claude Desktop Configuration:2425Open `claude_desktop_config.json` and add the following configuration.2627On MacOs, the file is located here:28`~/Library/Application Support/Claude Desktop/claude_desktop_config.json`.2930On Windows, the file is located here:31`%APPDATA%\Claude Desktop\claude_desktop_config.json`.3233```json34{35 "mcpServers": {36 "adls2": {37 "command": "adls2-mcp-server",38 "env": {39 "LOG_LEVEL": "DEBUG",40 "UPLOAD_ROOT": "/path/to/store/uploads",41 "DOWNLOAD_ROOT": "/path/to/store/downloads",42 "AZURE_STORAGE_ACCOUNT_NAME": "your-azure-adls2-storage-account-name",43 "READ_ONLY_MODE": "false"44 }45 }46 }47}48```4950The following is a table of available environment configuration variables:5152| Variable | Description | Default |53| --- | --- | --- |54| `LOG_LEVEL` | Logging level | `INFO` |55| `UPLOAD_ROOT` | Root directory for file uploads | `./uploads` |56| `DOWNLOAD_ROOT` | Root directory for file downloads | `./downloads` |57| `AZURE_STORAGE_ACCOUNT_NAME` | Azure ADLS2 storage account name | `None` |58| `AZURE_STORAGE_ACCOUNT_KEY` | Azure ADLS2 storage account key (optional) | `None` |59| `READ_ONLY_MODE` | Whether the server should operate in read-only mode | `true` |606162If `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:6364```bash65az login66```67682 - Restart Claude Desktop.6970### Available Tools ๐ง7172#### Filesystem (container) Operations7374- `list_filesystems` - List all filesystems in the storage account75- `create_filesystem` - Create a new filesystem76- `delete_filesystem` - Delete an existing filesystem7778#### File Operations7980- `upload_file` - Upload a file to ADLS281- `download_file` - Download a file from ADLS282- `file_exists` - Check if a file exists83- `rename_file` - Rename/move a file84- `get_file_properties` - Get file properties85- `get_file_metadata` - Get file metadata86- `set_file_metadata` - Set file metadata87- `set_file_metadata_json` - Set multiple metadata key-value pairs using JSON8889#### Directory Operations9091- `create_directory` - Create a new directory92- `delete_directory` - Delete a directory93- `rename_directory` - Rename/move a directory94- `directory_exists` - Check if a directory exists95- `directory_get_paths` - Get all paths under the specified directory9697## Development ๐ป9899### Local Development Setup1001011 - Clone the repository:102103```bash104git clone https://github.com/erikhoward/adls2-mcp-server.git105cd adls2-mcp-server106```1071082 - Create and activate virtual environment:109110Linux/macOS:111112```bash113python -m venv .venv114source .venv/bin/activate115```116117Windows:118119```bash120.venv\Scripts\activate121```1221233 - Install dependencies:124125```bash126pip install -e ".[dev]"127```1281294 - Copy and configure environment variables:130131```bash132cp .env.example .env133```134135Edit .env with your settings.136137```bash138AZURE_STORAGE_ACCOUNT_NAME=your_azure_adls2_storage_account_name139AZURE_STORAGE_ACCOUNT_KEY=your_azure_adls2_storage_key (optional)140DOWNLOAD_ROOT=/path/to/download/folder141UPLOAD_ROOT=/path/to/upload/folder142READ_ONLY_MODE=True143LOG_LEVEL=INFO144```145146If `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:147148```bash149az login150```1511525 - Claude Desktop Configuration153154Open `claude_desktop_config.json` and add the following configuration.155156On MacOs, the file is located here:157`~/Library/Application Support/Claude Desktop/claude_desktop_config.json`.158159On Windows, the file is located here:160`%APPDATA%\Claude Desktop\claude_desktop_config.json`.161162```json163{164 "mcpServers": {165 "adls2": {166 "command": "uv",167 "args": [168 "--directory",169 "/path/to/adls2-mcp-server/repo",170 "run",171 "adls2-mcp-server"172 ],173 "env": {174 "LOG_LEVEL": "DEBUG",175 "UPLOAD_ROOT": "/path/to/store/uploads",176 "DOWNLOAD_ROOT": "/path/to/store/downloads",177 "AZURE_STORAGE_ACCOUNT_NAME": "your-azure-adls2-storage-account-name",178 "READ_ONLY_MODE": "false"179 }180 }181 }182}183```1841856 - Restart Claude Desktop.186187## Contributions ๐ค188189Contributions are welcome! Please feel free to submit a Pull Request.1901911. Fork the repository1922. Create your feature branch (`git checkout -b feature/AmazingFeature`)1933. Commit your changes (`git commit -m 'โจ Add some AmazingFeature'`)1944. Push to the branch (`git push origin feature/AmazingFeature`)1955. Open a Pull Request196197## License โ๏ธ198199Licensed under MIT - see [LICENSE.md](LICENSE) file.200201**This is not an official Microsoft product.**202
Full transparency โ inspect the skill content before installing.