MCP HubMCP Hub
Xuanwo

mcp-server-opendal

by: Xuanwo

Model Context Protocol Server for Apache OpenDAL™

27created 04/03/2025
Visit
Protocol
OpenDAL

📌Overview

Purpose: The Model Context Protocol (MCP) server aims to facilitate efficient access to various storage services through Apache OpenDAL™.

Overview: This framework provides a unified interface for interacting with multiple cloud storage services, making it easier for developers to manage and access their data. It leverages Apache OpenDAL™ to ensure seamless integration and functionality.

Key Features:

  • Multi-Storage Access: Seamlessly connects to various storage services such as S3, Azure Blob Storage, and Google Cloud Storage, enabling versatile data management.

  • File Operations: Supports listing files and directories, as well as reading file contents, with automatic detection of text or binary formats for enhanced usability.


Model Context Protocol Server for Apache OpenDAL™

A Model Context Protocol (MCP) server implementation that provides access to various storage services via Apache OpenDAL™.

Features

  • Seamless access to multiple storage services including S3, Azure Blob Storage, Google Cloud Storage, and more
  • List files and directories from storage services
  • Read file contents with automatic text/binary detection
  • Environment variable based configuration

Installation

pip install mcp-server-opendal

Usage with Claude Desktop

Add the following to claude_desktop_config.json:

{
  "mcpServers": {
    "opendal": {
      "command": "uvx",
      "args": [
        "mcp-server-opendal"
      ],
      "env": {
        "YOUR_ENV_VAR": "YOUR_ENV_VALUE"
      }
    }
  }
}

It requires uv to be installed on your machine. Check the official documentation for installation guides: https://docs.astral.sh/uv/getting-started/installation/

Environment Variables

Configure storage services by setting environment variables. Each service requires a prefix and specific configuration options.

For example, to configure an S3 service with alias "mys3":

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

Then you can use tools like read and list with mys3://path/to/file.

mcp-server-opendal will also load configuration from .env files.

Development

npx @modelcontextprotocol/inspector \
  uv run mcp-server-opendal