readLABSCO SUMMARY
The alias scheme is the feature: one address format instead of one server per cloud.
Because OpenDAL sits underneath, adding a second or third backend is a block of environment variables rather than another MCP server in your config, and the model only ever learns one address shape. The surface is deliberately narrow — listing and reading — so this is a retrieval path, not a way to write or move objects around.
What it is
An MCP server built on Apache OpenDAL, which normalises dozens of storage services behind one interface. You give each service an alias in environment variables, and afterwards every file is addressed as alias://path, whichever cloud it lives in. It lists directories and reads file contents, detecting text versus binary automatically.
What you get
- Files and directories listed from any configured storage service — the
listtool - File contents read back with automatic text/binary detection — the
readtool - One address scheme across backends: configure an S3 service under the alias
mys3and then usemys3://path/to/file - Access to S3, Azure Blob Storage, Google Cloud Storage and the rest of OpenDAL's service list without a separate server per provider
- Configuration entirely through environment variables, with a
.envfile also loaded automatically
Requirements
Whatever credentials each backend needs, supplied as prefixed environment variables. Each service takes an alias and its own settings — for an S3 service aliased mys3 that is OPENDAL_MYS3_TYPE=s3, OPENDAL_MYS3_BUCKET, OPENDAL_MYS3_REGION, OPENDAL_MYS3_ENDPOINT, OPENDAL_MYS3_ACCESS_KEY_ID and OPENDAL_MYS3_SECRET_ACCESS_KEY. Install with pip install mcp-server-opendal; the client config runs it as uvx mcp-server-opendal, so uv must be on the machine. The pyproject publishes the mcp-server-opendal entry point. It reads a .env file if one is present.
Setup effort
One command plus a key — uvx mcp-server-opendal, then supply credentials
USE CASES
Reading a file out of object storage mid-conversation
Address it by alias and path and get the contents back, with text and binary distinguished for you.
Finding what is in a bucket or prefix
List the directory through the same interface you use for every other backend, instead of a provider-specific CLI.
Working across two clouds in one session
Give each service its own alias in the environment; the assistant then reaches both through one address scheme and one server.
2 tools
Listed in project docs. Your client may show a different list.
listBEFORE YOU INSTALL
What to know first
Tools you get
2 tools named in the project's documentation. read and list are named only informally and no formal tool list exists, so the server may offer more OpenDAL operations.
Requires
- uvx on PATH
- Credentials for each storage service you configure, as OPENDAL_ variables named after your alias (for the README's S3 example, alias mys3: OPENDAL_MYS3_ACCESS_KEY_ID and OPENDAL_MYS3_SECRET_ACCESS_KEY)
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
uvx mcp-server-opendalMCP Clients
Claude Desktop
{
"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"
}
}
}
}These are the README's example settings for one S3 service under the alias mys3 — put in your own bucket, region, endpoint and keys. The alias is yours to choose: each variable is OPENDAL_ followed by the alias and the setting, and files are then addressed as mys3://path/to/file. The server also reads these variables from a .env file.