项目简介
本项目是一个Model Context Protocol (MCP) 服务器实现,专门用于与 Azure Data Lake Storage Gen2 (ADLS2) 服务进行交互。它通过标准的 MCP 协议,使得支持 MCP 的大语言模型 (LLM) 客户端能够安全、便捷地访问和管理 ADLS2 中的文件系统、目录和文件。
主要功能点
通过这个 MCP 服务器,您的 LLM 客户端可以获得以下能力:
- 文件系统(容器)操作:
- 列出存储账户中的所有文件系统。
- 创建新的文件系统(容器)。
- 删除已有的文件系统。
- 文件操作:
- 上传本地文件到指定的 ADLS2 位置。
- 从 ADLS2 下载文件到本地。
- 检查 ADLS2 中文件是否存在。
- 重命名或移动 ADLS2 中的文件。
- 获取文件的属性(如大小、修改时间等)。
- 获取文件的元数据。
- 设置文件的单个元数据键值对。
- 使用 JSON 格式批量设置文件的元数据。
- 目录操作:
- 在指定的 ADLS2 文件系统中创建新的目录。
- 删除 ADLS2 中的目录。
- 重命名或移动 ADLS2 中的目录。
- 检查 ADLS2 中目录是否存在。
- 列出指定目录下(可选递归)的所有文件和目录路径。
注意: 服务器支持只读模式配置,在只读模式下,创建、删除、重命名和设置元数据等写操作将被禁用。
安装步骤
- 安装 Python: 确保您的系统已安装 Python 3.13 或更高版本。
- 安装 uv (可选但推荐): uv 是一个高性能的 Python 包管理器。您可以访问其官方文档安装。
- 安装服务器: 打开终端或命令提示符,使用 uv 或 pip 安装项目包:
uv pip install adls2-mcp-server # 或者使用 pip # pip install adls2-mcp-server - Azure 认证: 如果您选择不使用存储账户密钥进行认证(推荐),请确保您已安装 Azure CLI 并已登录:
服务器将使用您的默认 Azure CLI 凭据进行认证。az login
服务器配置(在 MCP 客户端中)
MCP 服务器通常由 MCP 客户端(如 Claude Desktop)启动和管理。您需要在 MCP 客户端的配置文件中添加本服务器的启动信息。以下是一个示例(以 'claude_desktop_config.json' 为例):
打开您的 MCP 客户端配置文件,找到或添加 'mcpServers' 部分,然后添加如下配置:
{ "mcpServers": { "adls2": { // "adls2" 是您为该服务器起的唯一名称 "command": "adls2-mcp-server", // 启动服务器的命令,需确保该命令在系统 PATH 中 "env": { // 服务器运行时所需的环境变量 "LOG_LEVEL": "INFO", // 日志级别 (DEBUG, INFO, WARNING, ERROR),可选 "UPLOAD_ROOT": "/path/to/store/uploads", // LLM上传文件时,文件需要放置在此目录或其子目录下 "DOWNLOAD_ROOT": "/path/to/store/downloads", // LLM下载文件时,文件将保存到此目录或其子目录下 "AZURE_STORAGE_ACCOUNT_NAME": "your-azure-adls2-storage-account-name", // **必填**:您的 ADLS2 存储账户名称 "AZURE_STORAGE_ACCOUNT_KEY": "your-azure-storage-account-key", // **可选**:如果使用密钥认证,请填写。不推荐,优先使用 az login "READ_ONLY_MODE": "false" // 是否启用只读模式 ("true" 或 "false"),默认为 "true" (只读) } } } }
请将配置中的占位符(如 'your-azure-adls2-storage-account-name'、'/path/to/...')替换为您的实际值。
完成配置后,重启您的 MCP 客户端 使配置生效。
基本使用方法
配置并重启 MCP 客户端后,客户端将自动启动 ADLS2 MCP 服务器并发现其提供的工具。您现在可以直接通过与 LLM 进行自然语言交互来利用这些工具。例如,您可以尝试询问 LLM:
- “列出我的 Azure 存储账户中有哪些文件系统。”
- “在名为 'my-filesystem' 的文件系统中创建一个 'documents' 目录。”
- “将我的本地 'report.txt' 文件上传到 'my-filesystem' 的 '/documents' 目录。”
- “从 'my-filesystem' 的 '/data/sales.csv' 下载文件到我的本地下载目录。”
LLM 将理解您的请求,并调用相应的 ADLS2 MCP 服务器工具来执行操作。
信息
分类
数据库与文件