List files and directories from a storage service
Read file contents with automatic text/binary detection
OpenDAL Storage Access provides a unified interface to interact with various storage services including S3, Azure Blob Storage, Google Cloud Storage, and more through the Apache OpenDAL™ framework. This MCP server enables AI assistants to seamlessly list files and directories, read file contents, and work with storage systems without needing to implement specific APIs for each provider. With automatic text/binary detection and environment variable based configuration, this tool makes it easy to connect to your preferred storage services while maintaining a consistent interface. The implementation is lightweight and focused on providing essential file system operations across cloud and local storage options.
OpenDAL Storage Access is a Model Context Protocol (MCP) server that provides access to various storage services through Apache OpenDAL™. It allows AI assistants to interact with files and directories across multiple storage providers using a consistent interface.
To install the OpenDAL MCP server, run:
pip install mcp-server-opendal
The package requires Python and will install all necessary dependencies.
Configure storage services by setting environment variables with the following pattern:
OPENDAL_[ALIAS]_TYPE=[service_type]
OPENDAL_[ALIAS]_[CONFIG_KEY]=[config_value]
Where:
[ALIAS]
is your chosen name for the storage service[service_type]
is the type of storage (s3, azblob, gcs, etc.)[CONFIG_KEY]
and [CONFIG_VALUE]
are specific configuration options for that serviceFor example, to configure an S3 service with alias "mys3":
OPENDAL_MYS3_TYPE=s3
OPENDAL_MYS3_BUCKET=mybucket
OPENDAL_MYS3_REGION=us-east-1
OPENDAL_MYS3_ENDPOINT=http://localhost:9000
OPENDAL_MYS3_ACCESS_KEY_ID=myaccesskey
OPENDAL_MYS3_SECRET_ACCESS_KEY=mysecretkey
The server will also automatically load environment variables from a .env
file in the current directory.
OpenDAL supports numerous storage services including:
Refer to the Apache OpenDAL documentation for the complete list of supported services and their configuration options.
Once configured, you can access your storage services using the alias you defined in the environment variables. For example, if you configured a service with alias "mys3", you can access it using the URI format:
mys3://path/to/file
The server provides tools to list directories and read files from the configured storage services.
To use this MCP with Claude Desktop, add the following to your claude_desktop_config.json
:
{
"mcpServers": {
"opendal": {
"command": "uvx",
"args": [
"mcp-server-opendal"
],
"env": {
"OPENDAL_MYS3_TYPE": "s3",
"OPENDAL_MYS3_BUCKET": "mybucket",
"OPENDAL_MYS3_REGION": "us-east-1",
"OPENDAL_MYS3_ENDPOINT": "http://localhost:9000",
"OPENDAL_MYS3_ACCESS_KEY_ID": "myaccesskey",
"OPENDAL_MYS3_SECRET_ACCESS_KEY": "mysecretkey"
}
}
}
}
This requires uv
to be installed on your machine. Check the official documentation for installation guides.
For other MCP clients, configure the server to run with the command:
uv run mcp-server-opendal
Ensure that your environment variables are properly set before running the command.