MCP Directory

How to add Apache OpenDAL MCP Server to Windsurf

Access S3, Azure Blob, Google Cloud Storage and many more storage services through one unified MCP interface. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.

Last updated June 14, 2026 · 34 · stdio · apikey

Windsurf config for Apache OpenDAL MCP Server

pip install mcp-server-opendal
{
  "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.

Setup steps

  1. 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
  2. 2Paste the Apache OpenDAL MCP Server config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 5Apache OpenDAL MCP Server's tools become available to Cascade.

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)

What Apache OpenDAL MCP Server can do in Windsurf

list

List files and directories from a configured storage service, addressed via an alias URI such as mys3://path/to/dir.

read

Read the contents of a file from a configured storage service (e.g. mys3://path/to/file), with automatic text/binary detection.

Security

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 + Windsurf FAQ

Where is the Windsurf config file?

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the Apache OpenDAL MCP Server config there under the "mcpServers" key and restart the client.

Is Apache OpenDAL MCP Server safe to use with Windsurf?

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.

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.

View repo Full Apache OpenDAL MCP Server page