ADLS2 MCP Server
Click on "Install 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 Serverlist all 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: MinIO MCP Server
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
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| filesystem | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full burden. It only says 'Create a new directory', omitting critical behaviors like whether creation is recursive, what happens if the directory exists, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (8 words), which is concise but at the expense of necessary detail. A bit more context could be added without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of output schema and annotations, the description is incomplete. It does not explain error conditions, the role of 'filesystem', or valid path formats, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not explain the parameters 'path' and 'filesystem'. It fails to add meaning to these fields, leaving the agent to guess their format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create', the resource 'directory', and the scope 'in the specified filesystem'. It effectively distinguishes from siblings like 'create_filesystem' and 'delete_directory'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as checking existence first or requiring an existing filesystem.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_filesystemC
Create a new ADLS2 filesystem (container)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only says 'Create', but does not disclose idempotency, failure modes, permissions, or side effects. Important behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence). While it wastes no words, it sacrifices necessary detail. It is appropriately sized for the minimal information provided, but not optimally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (1 param, no output schema, no annotations), the description is insufficient. It does not cover return values, error conditions, or whether the operation is safe to retry. The tool is a creation operation, which typically needs more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'name' has no description in the schema (0% coverage) and the tool description does not clarify its semantics (e.g., naming rules, constraints). The agent gets no help on how to specify the name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('a new ADLS2 filesystem (container)'). It is specific and distinguishes from sibling tools like 'create_directory' and 'delete_filesystem'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives (e.g., 'create_directory') or prerequisites. The agent is left to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_directoryC
Delete a directory from the specified filesystem
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| filesystem | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It only states 'delete' without mentioning potential side effects (e.g., recursive deletion, permissions required, error conditions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence) but this comes at the cost of necessary detail. It is front-loaded but insufficient for safe use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature (delete), the description is incomplete. It lacks output spec, parameter details, and any behavioral notes beyond the basic action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should define parameter meanings explicitly. It only hints at 'path' being a directory path and 'filesystem' being the target, but no format or constraints are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (delete) and resource (directory) with a specific filesystem context. It distinguishes from sibling tools like 'delete_filesystem' and 'create_directory'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any prerequisites or conditions (e.g., whether the directory must be empty). The agent lacks context to decide safely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_filesystemC
Delete an ADLS2 filesystem
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must bear the full burden of behavioral disclosure. The description only indicates deletion, but fails to mention irreversible data loss, required permissions, handling of non-existent filesystems, or any side effects. This is a critical gap for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (5 words), but conciseness should not come at the cost of essential information. It is front-loaded but fails to provide value beyond the tool's name, thus not fully earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, no output schema), the description should at least note operation irreversibility, success/error behavior, or prerequisites like filesystem existence. It omits all such context, making it incomplete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the tool description adds no meaning to the single 'name' parameter. It does not specify expected format (e.g., full path vs. short name) or constraints, leaving the parameter completely underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete an ADLS2 filesystem', specifying a concrete verb (Delete) and resource (ADLS2 filesystem). This distinguishes it from sibling tools like delete_directory or create_filesystem, as it targets filesystems specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., delete_directory for subdirectories, or other deletion methods). There are no prerequisites, context hints, or when-not-to-use instructions, leaving the agent to guess appropriate conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
directory_existsB
Check if a directory exists in the specified filesystem
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| filesystem | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks disclosure of behavioral traits. It does not state the return type (e.g., boolean), error behavior when directory doesn't exist, or required permissions. For a tool with no output schema, more transparency is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the tool's purpose. No unnecessary words. However, it could be slightly more structured by separating the return value or usage note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool, the description omits critical context like the return value (true/false?), error conditions, and any prerequisites. With no output schema and no annotations, a more complete description is warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 2 required parameters with zero description coverage. The tool description adds no detail beyond the parameter names and types, such as format constraints, examples, or relationships between 'filesystem' and 'path'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Check' and resource 'directory' with scope 'in the specified filesystem'. It clearly distinguishes from sibling tools like 'create_directory' or 'file_exists' by focusing on existence checking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a precondition for operations (e.g., before creating a directory), but it provides no explicit guidance on when to use this tool versus alternative existence checks like 'file_exists', nor any conditions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
directory_get_pathsC
Get all paths under the specified directory
| Name | Required | Description | Default |
|---|---|---|---|
| recursive | No | ||
| filesystem | Yes | ||
| directory_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description lacks behavioral details. It doesn't specify whether paths include files, subdirectories, or both; whether it returns relative or absolute paths; or behavior for non-existent directories.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence, but it lacks structure and additional details. It is not front-loaded with critical information beyond the basic purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters with 0% schema coverage, no output schema, and a context of 15 sibling tools, the description is severely incomplete. It fails to explain return value format, error conditions, or how this tool fits with others like directory_exists or list_filesystems.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not add any parameter-specific information. Parameters like filesystem, directory_path, and recursive are not explained in terms of format, constraints, or interaction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get all paths under the specified directory' clearly states the verb (get), resource (paths), and scope (under specified directory). It distinguishes from sibling tools like list_filesystems and get_file_metadata by focusing on paths.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., when to use get_file_metadata instead). No exclusions or context about prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_fileC
Download a file from ADLS2
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| filesystem | Yes | ||
| download_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It only states a basic action without mentioning side effects, permissions, overwrite behavior, or network implications. This is insufficient for safe usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, which is appropriately short. However, it lacks important details that could be added without breaking conciseness, such as parameter clarification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three required parameters and no annotations or output schema, the description should provide more context about parameter values, return type, and error conditions. It is incomplete for agentic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for all three parameters (source, filesystem, download_path). The description does not explain the format, constraints, or meaning of these parameters, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Download' and the resource 'file from ADLS2', which is specific and distinct from sibling tools like upload_file. However, it could be more precise by indicating the direction (from cloud to local).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool, prerequisites (e.g., file existence), or when not to use it (e.g., large files). The sibling list includes many file operations, but the description offers no differentiation or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_existsB
Check if a file exists in the specified filesystem
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| filesystem | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states the basic action but does not clarify return values (e.g., boolean), error behavior (e.g., what happens if file missing), or access requirements. For a read operation, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence, front-loading the purpose. However, it is overly terse, omitting details that could be added without significant bloat, but it is not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, annotations, and parameter documentation, the description is insufficient for an agent to fully understand behavior. It does not state return type, side effects, or edge cases. For a simple existence check, some context is still needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds no meaning beyond the parameter names in the schema. It does not explain formats, constraints, or relationships for 'file_path' or 'filesystem'. The schema itself provides titles but no descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Check if a file exists in the specified filesystem.' The verb 'Check' and resource 'a file exists' are specific, and it distinguishes from sibling tools like directory_exists and file manipulation operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for existence checks but provides no explicit guidance on when to use it versus alternatives like directory_exists or other file operations. No when-not-to-use or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_metadataC
Get metadata of a file in the specified filesystem
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| filesystem | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits such as read-only nature, return format, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise but lacks structure. Could include key details without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0% schema description coverage, description is insufficient for an agent to fully understand usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and description adds no meaning beyond parameter names. No detail on format or constraints for 'filesystem' or 'file_path'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get' and resource 'metadata of a file', establishing a specific action. However, sibling tool 'get_file_properties' could overlap, lacking differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_file_properties' or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_propertiesC
Get properties of a file in the specified filesystem
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| filesystem | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states 'Get properties' but does not clarify what properties are returned, whether read access is needed, or any side effects. This is insufficient for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is efficient but lacks necessary detail. It is not verbose, but conciseness here sacrifices completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and absence of parameter details, the description is incomplete for a tool that likely returns file properties. The context signals suggest low coverage, and the description does not compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%; neither parameter has a description. The tool description adds no meaning beyond the parameter names, failing to explain expected formats (e.g., full path vs relative) or acceptable values for filesystem.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets properties of a file in a specified filesystem, using a specific verb and resource. However, it does not differentiate from the sibling tool 'get_file_metadata', which likely serves a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_file_metadata or file_exists. The description lacks context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesystemsA
List all filesystems in the storage account
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behaviors. It states 'list all filesystems', implying a read-only operation with no side effects. However, it does not mention potential limitations like pagination, access restrictions, or return format, which would enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is direct and front-loaded with the essential information. No superfluous words or structure issues.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is minimal but sufficient for a simple listing operation with no parameters. It could be improved by indicating the output format (e.g., list of names), but it is still functional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and description coverage is 100%. The description does not need to elaborate on parameters. Baseline for zero-param tools is 4, and the description meets this standard.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'list' and resource 'filesystems', with scope 'all in the storage account'. It directly conveys the tool's function and distinguishes it from siblings like create_filesystem or delete_filesystem.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. While the purpose is clear, the description lacks context like prerequisites or comparison with similar tools such as directory_exists or get_file_properties.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_directoryB
Rename/move a directory within the specified filesystem
| Name | Required | Description | Default |
|---|---|---|---|
| filesystem | Yes | ||
| source_path | Yes | ||
| destination_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description fails to disclose behavioral traits such as whether the source directory must exist, behavior on destination conflict, or effect on contents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded, but could be more structured with bullet points or additional context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description lacks critical details about operation implications, error conditions, or parameter constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no meaning beyond parameter names, which are self-explanatory but still insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (rename/move) and resource (directory) and distinguishes from sibling tools like rename_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance, but the context and sibling tool names imply it's for directories, not files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_fileC
Rename/move a file within the specified filesystem
| Name | Required | Description | Default |
|---|---|---|---|
| filesystem | Yes | ||
| source_path | Yes | ||
| destination_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose behavioral details such as whether destination can be overwritten, permission requirements, or effects on metadata. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise but lacks detail. It is not overly verbose, but the brevity sacrifices helpful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and three undocumented parameters, the description is severely incomplete. It fails to address path formats, cross-filesystem moves, overwrite behavior, or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no parameter explanations. The purpose of 'filesystem', 'source_path', and 'destination_path' is not clarified, leaving the agent without guidance on format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'rename/move a file', identifying the verb and resource, and distinguishes from sibling rename_directory by specifying file vs directory. The scope 'within the specified filesystem' is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like rename_directory or set_file_metadata. The description does not mention when to choose rename vs move, or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_file_metadataC
Set a single metadata key-value pair for a file
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| value | Yes | ||
| file_path | Yes | ||
| filesystem | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates mutation ('set') but does not disclose side effects, such as whether existing keys are overwritten, or if the file must exist. With no annotations, the description fails to provide adequate behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise and front-loaded. However, it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 required parameters, no output schema, no annotations, and sibling tools with similar names, the description is insufficient. It lacks details on return values, error conditions, and when to use this versus 'set_file_metadata_json'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain parameters, but it only mentions 'key-value pair' without elaborating on the four required parameters (filesystem, file_path, key, value). No details on value format, constraints, or expected types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'set' and resource 'single metadata key-value pair for a file'. It distinguishes from sibling 'set_file_metadata_json' by implying this tool handles individual key-value pairs rather than JSON.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like 'set_file_metadata_json'. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_file_metadata_jsonC
Set multiple metadata key-value pairs for a file using JSON
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| filesystem | Yes | ||
| metadata_json | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description must disclose behavioral traits. It only states the action, omitting details like overwrite behavior, permission requirements, or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but overly terse, lacking structured details expected for a tool with no annotations and no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 required parameters, no output schema, and no annotations, the description is wholly incomplete, failing to specify return values, error handling, or metadata structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage. Description adds only 'JSON' but does not explain the metadata_json parameter format, encoding, or how to pass key-value pairs as string vs object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states specific action 'set multiple metadata key-value pairs' using JSON, clearly distinguishing from sibling set_file_metadata which likely uses a different format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like set_file_metadata, or any context about prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_fileC
Upload a file to ADLS2
| Name | Required | Description | Default |
|---|---|---|---|
| filesystem | Yes | ||
| destination | Yes | ||
| upload_file | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry full burden. Minimal disclosure: no information on side effects, permissions, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but under-specified; conciseness is sacrificed for completeness, missing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 required parameters and no output schema, the description is woefully incomplete, offering only the barest purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%; description provides no details about parameters (filesystem, destination, upload_file), leaving the agent uninformed about their meaning or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Upload a file to ADLS2' clearly states the action and target system, but does not differentiate among sibling tools like download_file or rename_file, missing specificity for a file upload tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives; lacks context about prerequisites, file size limits, or overwrite behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
16 tool updates
v0.1.4- First observed
create_directory - First observed
create_filesystem - First observed
delete_directory - First observed
delete_filesystem - First observed
directory_exists - First observed
directory_get_paths - First observed
download_file - First observed
file_exists - First observed
get_file_metadata - First observed
get_file_properties - First observed
list_filesystems - First observed
rename_directory - First observed
rename_file - First observed
set_file_metadata - First observed
set_file_metadata_json - First observed
upload_file
TDQS
Each tool has a distinct purpose: creation, deletion, existence checks, listing, renaming, upload/download, and metadata operations. Overlaps are minimal as get, set, and set_json for metadata are clearly separated.
All tool names follow a consistent verb_noun pattern with snake_case (e.g., create_directory, delete_filesystem, rename_file). No mixing of conventions.
16 tools are well-scoped for an ADLS2 server, covering filesystems, directories, files, and metadata without excessive granularity.
Covers core CRUD operations for filesystems and directories, file transfer, and metadata. Missing copy operations for files/directories, but essential workflows are present.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Browse and manage files in your Moxt AI workspace from any MCP client.
Persistent file storage for AI agents via MCP and curl. Upload, download, and version files.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- FlicenseDqualityDmaintenanceEnables AI models to perform file system operations (reading, creating, and listing files) on a local file system through a standardized Model Context Protocol interface.3-
- AlicenseNot gradedqualityNot gradedmaintenanceEnables interaction with MinIO object storage through a standardized Model-Context Protocol interface. Supports listing buckets and objects, retrieving files, and uploading data to MinIO storage.-
- AlicenseCqualityDmaintenanceEnables interaction with Azure Data Lake Storage Gen2, supporting file, directory, and filesystem operations through MCP tools.166MIT
- AlicenseNot gradedqualityDmaintenanceEnables users to authenticate with Azure Data Explorer and execute KQL queries via natural language through the Model Context Protocol.225MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mikeysrecipes/adls-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server