mcp-opendal-gateway
A unified abstraction layer for interfacing with heterogeneous cloud object storage repositories, facilitating standardized operations like enumeration, retrieval, and lifecycle management across various compliant backends.
Author

Xuanwo
Quick Info
Actions
Tags
Model Context Protocol Interface for Apache OpenDAL
This package furnishes an implementation of the Model Context Protocol (MCP) server utilizing the robust capabilities of Apache OpenDAL™ to mediate access to numerous storage endpoints.
Core Capabilities
- Interoperable Storage Access: Provides seamless connectivity to numerous remote storage systems, encompassing Amazon S3, Microsoft Azure Blob Storage, Google Cloud Storage, and others.
- Directory Traversal: Ability to recursively list contents (files and folders) within specified remote storage locations.
- Content Fetching: Reads the data payloads from objects, automatically inferring whether content is textual or binary in nature.
- Configuration Ease: Configuration parameters are primarily managed through system environment variables.
Deployment Instructions
Installation is straightforward using pip:
shell pip install mcp-server-opendal
Integration with Desktop Client
To enable this server within the local configuration file (claude_desktop_config.json):
{ "mcpServers": { "opendal_service": { "command": "uvx", "args": [ "mcp-server-opendal" ], "env": { "SERVICE_CREDENTIALS_VAR": "CORRESPONDING_VALUE" } } } }
Ensure that the uv package manager is present on your system. Refer to the official documentation for setup guidance.
Backend Configuration via Environment Variables
Define connection settings for your storage providers by setting specific environment variables. Each distinct storage instance requires a unique identifier prefix followed by service-specific parameters.
For instance, setting up an S3 resource aliased as "staging_repo":
OPENDAL_STAGING_REPO_TYPE=s3 OPENDAL_STAGING_REPO_BUCKET=data-staging OPENDAL_STAGING_REPO_REGION=eu-central-1 OPENDAL_STAGING_REPO_ENDPOINT=https://s3.example.com OPENDAL_STAGING_REPO_ACCESS_KEY_ID=stg_key_id OPENDAL_STAGING_REPO_SECRET_ACCESS_KEY=stg_secret
Once configured, resource identifiers like staging_repo://data/file.txt can be used with MCP tool commands (read, list).
The server also attempts to source variables from a local .env file if present.
Developer Workflow
To interact with the running server using the inspection utility:
shell npx @modelcontextprotocol/inspector \ uv run mcp-server-opendal
