
Apache OpenDAL MCP Server
Access S3, Azure Blob, Google Cloud Storage and many more storage services through one unified MCP interface.
Add to your client
Copy the config for your MCP client and paste it into its config file.
pip install mcp-server-opendalPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"apache-opendal-mcp-server": {
"command": "uvx",
"args": [
"mcp-server-opendal"
],
"env": {
"YOUR_ENV_VAR": "YOUR_ENV_VALUE"
}
}
}
}Requires `uv` (the Python package runner). Install it from https://docs.astral.sh/uv/ if `uvx` is not found.
Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- uv installed (the config runs the server with uvx)
- Python (mcp-server-opendal is a Python/PyPI package)
- Credentials and configuration for each storage service, supplied as OPENDAL_<ALIAS>_* environment variables (or via a .env file)
About Apache OpenDAL MCP Server
mcp-server-opendal exposes Apache OpenDAL's unified data access layer to MCP clients. It lets an AI assistant browse and read files from many storage backends (S3, Azure Blob Storage, Google Cloud Storage, and more) through a single, consistent interface. Each storage service is declared with an alias via environment variables and then referenced with an alias://path URI; the server reads file contents with automatic text/binary detection.
Tools & capabilities (2)
listList files and directories from a configured storage service, addressed via an alias URI such as mys3://path/to/dir.
readRead the contents of a file from a configured storage service (e.g. mys3://path/to/file), with automatic text/binary detection.
When to use it
- Let an AI assistant browse and read files stored in S3, Azure Blob Storage, or Google Cloud Storage without custom integration code
- Inspect objects across multiple cloud storage backends through one unified MCP interface
- Pull documents or data files from object storage into a chat workflow for analysis or summarization
Security notes
Storage credentials (e.g. S3 access key ID and secret access key) are supplied through environment variables prefixed per service alias, or loaded from a local .env file. Treat these credentials as secrets and scope them to only the buckets/containers the assistant needs.
Apache OpenDAL MCP Server FAQ
Which storage services are supported?
Any backend supported by Apache OpenDAL, including S3, Azure Blob Storage, Google Cloud Storage, and more. Each service is configured with a type and its specific options via environment variables.
How do I configure a storage service?
Set environment variables with a per-service alias prefix. For example, an S3 service aliased 'mys3' uses OPENDAL_MYS3_TYPE=s3, OPENDAL_MYS3_BUCKET=..., OPENDAL_MYS3_REGION=..., OPENDAL_MYS3_ACCESS_KEY_ID=..., and OPENDAL_MYS3_SECRET_ACCESS_KEY=.... You then reference files with mys3://path/to/file. Variables can also be loaded from a .env file.
What can the server do with my files?
It currently provides read-only access: listing directories and reading file contents. The README does not document write or delete operations.
Alternatives to Apache OpenDAL MCP Server
Compare all alternatives →Official MCP reference server for secure local filesystem read/write within allowed directories.
Official MCP server for reading, searching, and manipulating a local Git repository's files and history.
Official AWS Labs MCP server to manage and query S3 Tables (table buckets, namespaces, tables).
Compare Apache OpenDAL MCP Server with: