Home / MCP / Opendal MCP Server
Provides MCP access to multiple storage services via OpenDAL with listing and read capabilities
Configuration
View docs{
"mcpServers": {
"opendal": {
"command": "uvx",
"args": [
"mcp-server-opendal"
],
"env": {
"YOUR_ENV_VAR": "YOUR_ENV_VALUE"
}
}
}
}You run a Model Context Protocol (MCP) server that provides access to multiple storage services through Apache OpenDAL. It lets you list and read files across S3, Azure Blob Storage, Google Cloud Storage, and other backends, all through a single MCP endpoint that your MCP clients can query.
You connect to the server from your MCP client and perform standard MCP file operations such as listing directories and reading file contents. The server exposes storage services behind a uniform interface, so you can browse and read data from different backends without changing your client logic. Start the server in stdio mode or connect to it via a remote HTTP endpoint if available, and specify the storage backends through environment variables or runtime configuration.
Prerequisites include a Python runtime and pip for installing the MCP server package.
pip install mcp-server-opendalThe server can be started in a local development/stdio flow or configured for use with a MCP client via an HTTP endpoint. The following stdio configuration runs the server through uvx, invoking the MCP server package directly. In addition, you can run a development inspector to attach to the server process.
{
"mcpServers": {
"opendal": {
"command": "uvx",
"args": [
"mcp-server-opendal"
],
"env": {
"YOUR_ENV_VAR": "YOUR_ENV_VALUE"
}
}
}
}Configure storage backends by setting environment variables with the appropriate prefixes. Each service requires a prefix and service-specific options. For example, to configure an S3-like service with the alias mys3, you would set the following variables.
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=mysecretkeyFor development and testing, you can run the inspector to attach to the MCP server during development.
npx @modelcontextprotocol/inspector \
uv run mcp-server-opendalList files and directories from configured storage backends.
Read file contents with automatic text or binary detection from the configured storage backends.
Set up and reference storage backends via environment variables with proper prefixes (for example, OPENDAL_MYS3_* for S3-like storage).