adls-mcp-server

adls-mcp-server

A Model Context Protocol server for Azure Data Lake Storage Gen2

4
Stars
5
Forks
4
Watchers
3
Issues
Implements a Model Context Protocol (MCP) server interface for Azure Data Lake Storage Gen2, enabling standardized file and directory operations through MCP-compatible tools. Allows users to interact with ADLS2 storage by providing commands for managing filesystems, files, and directories, supporting both upload and download workflows as well as metadata operations. Designed for integration with environments such as Claude Desktop, it supports a highly configurable setup through environment variables and authentication with Azure CLI or keys. The solution aims to simplify programmatic access and management of Azure-based data storage within broader AI/data workflows.

Key Features

Model Context Protocol (MCP) compatibility
Supports Azure Data Lake Storage Gen2
Standardized interface for file and directory operations
Seamless integration with Claude Desktop
Customizable via environment variables
Authentication via Azure CLI or storage keys
Upload and download management
Filesystem, file, and directory CRUD operations
File and directory metadata management
Read-only mode configuration

Use Cases

Programmatic management of Azure Data Lake Storage Gen2
Automated file uploads and downloads in data pipelines
Integration of cloud storage into AI or data science workflows
Providing storage context to conversational AI agents
Facilitating secure, authenticated access to cloud storage
Batch processing or migration of files in enterprise environments
Custom filesystem operations via MCP-compatible tooling
Setting and updating file or directory metadata programmatically
Enabling multi-platform desktop applications to access Azure storage
Developing plugins or connectors for tools requiring standardized storage access

README

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.

License Python Version uv MCP

Setup 🛠️

Installation 📦

Requires Python 3.13 or higher.

Install the package using uv:

bash
uv pip install adls2-mcp-server

MCP 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.

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:

bash
az login

2 - Restart Claude Desktop.

Available Tools 🔧

Filesystem (container) Operations

  • list_filesystems - List all filesystems in the storage account
  • create_filesystem - Create a new filesystem
  • delete_filesystem - Delete an existing filesystem

File Operations

  • upload_file - Upload a file to ADLS2
  • download_file - Download a file from ADLS2
  • file_exists - Check if a file exists
  • rename_file - Rename/move a file
  • get_file_properties - Get file properties
  • get_file_metadata - Get file metadata
  • set_file_metadata - Set file metadata
  • set_file_metadata_json - Set multiple metadata key-value pairs using JSON

Directory Operations

  • create_directory - Create a new directory
  • delete_directory - Delete a directory
  • rename_directory - Rename/move a directory
  • directory_exists - Check if a directory exists
  • directory_get_paths - Get all paths under the specified directory

Development 💻

Local Development Setup

1 - Clone the repository:

bash
git clone https://github.com/erikhoward/adls2-mcp-server.git
cd adls2-mcp-server

2 - Create and activate virtual environment:

Linux/macOS:

bash
python -m venv .venv
source .venv/bin/activate

Windows:

bash
.venv\Scripts\activate

3 - Install dependencies:

bash
pip install -e ".[dev]"

4 - Copy and configure environment variables:

bash
cp .env.example .env

Edit .env with your settings.

bash
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:

bash
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.

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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m '✨ Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License ⚖️

Licensed under MIT - see LICENSE.md file.

This is not an official Microsoft product.

Star History

Star History Chart

Repository Owner

erikhoward
erikhoward

User

Repository Details

Language Python
Default Branch main
Size 62 KB
Contributors 2
License MIT License
MCP Verified Sep 5, 2025

Programming Languages

Python
100%

Topics

adls azure mcp mcp-server

Join Our Newsletter

Stay updated with the latest AI tools, news, and offers by subscribing to our weekly newsletter.

We respect your privacy. Unsubscribe at any time.

Related MCPs

Discover similar Model Context Protocol servers

  • mcp-server-templates

    mcp-server-templates

    Deploy Model Context Protocol servers instantly with zero configuration.

    MCP Server Templates enables rapid, zero-configuration deployment of production-ready Model Context Protocol (MCP) servers using Docker containers and a comprehensive CLI tool. It provides a library of ready-made templates for common integrations—including filesystems, GitHub, GitLab, and Zendesk—and features intelligent caching, smart tool discovery, and flexible configuration options via JSON, YAML, environment variables, or CLI. Perfect for AI developers, data scientists, and DevOps teams, it streamlines the process of setting up and managing MCP servers and has evolved into the MCP Platform for enhanced capabilities.

    • 5
    • MCP
    • Data-Everything/mcp-server-templates
  • mcpmcp-server

    mcpmcp-server

    Seamlessly discover, set up, and integrate MCP servers with AI clients.

    mcpmcp-server enables users to discover, configure, and connect MCP servers with preferred clients, optimizing AI integration into daily workflows. It supports streamlined setup via JSON configuration, ensuring compatibility with various platforms such as Claude Desktop on macOS. The project simplifies the connection process between AI clients and remote Model Context Protocol servers. Users are directed to an associated homepage for further platform-specific guidance.

    • 17
    • MCP
    • glenngillen/mcpmcp-server
  • cloudflare/mcp-server-cloudflare

    cloudflare/mcp-server-cloudflare

    Connect Cloudflare services to Model Context Protocol (MCP) clients for AI-powered management.

    Cloudflare MCP Server enables integration between Cloudflare's suite of services and clients using the Model Context Protocol (MCP). It provides multiple specialized servers that allow AI models to access, analyze, and manage configurations, logs, analytics, and other features across Cloudflare's platform. Users can leverage natural language interfaces in compatible MCP clients to read data, gain insights, and perform automated actions on their Cloudflare accounts. This project aims to streamline the orchestration of security, development, monitoring, and infrastructure tasks through standardized MCP connections.

    • 2,919
    • MCP
    • cloudflare/mcp-server-cloudflare
  • Didn't find tool you were looking for?

    Be as detailed as possible for better results