mcp -opendal
Model Context Protocol Server for Apache OpenDAL™
claude mcp add --transport stdio xuanwo-mcp-server-opendal uvx mcp-server-opendal \ --env YOUR_ENV_VAR="YOUR_ENV_VALUE"
How to use
This MCP server exposes Apache OpenDAL storage backends to the Model Context Protocol. It lets clients list directories, read file contents with automatic text or binary detection, and connect to multiple storage services such as S3, Azure Blob Storage, and Google Cloud Storage through a unified MCP interface. Use the Claude or other MCP tooling to query endpoints like opendal://<path> to interact with configured backends. The server reads configuration from environment variables (prefixed per service) and from .env files if present, enabling you to securely supply credentials and endpoints. To get started, run the server via uvx as shown in the installation section and configure your storage backends through environment variables as demonstrated in the example.
How to install
Prerequisites:
- Python 3.8+ installed on your system
- uv (the OpenCompute/UV runtime) installed and available on PATH
Installation steps:
- Create a Python virtual environment (optional but recommended):
python3 -m venv venv
source venv/bin/activate # on Unix/macOS
or
venv\Scripts\activate # on Windows - Install the MCP OpenDAL server package: pip install mcp-server-opendal
- Run the server via UV: uvx mcp-server-opendal
- (Optional) Create a .env file or set environment variables to configure storage backends, as described in the Environment variables section of the README:
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=AKIA...
OPENDAL_MYS3_SECRET_ACCESS_KEY=secret
Then ensure uv loads .env automatically or run with env vars in your shell.
Additional notes
Notes and tips:
- The server uses environment variable prefixes to configure each storage service (e.g., OPENDAL_MYS3_* for an S3 backend named 'mys3').
- The configuration will be loaded from environment variables and from a .env file if present; ensure proper permissions for any credentials.
- If you modify environment variables, restart the MCP server to apply changes.
- This server is designed to provide a unified read/list interface across multiple backends; ensure your client uses the opendal:// URIs when issuing read/list commands.
- For Claude Desktop integration, the README demonstrates using uvx with the package name and placing the server under the mcpServers.opendal key in claude_desktop_config.json.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP