项目简介

'mcp-server-opendal' 是一个 Model Context Protocol (MCP) 服务器,它利用 Apache OpenDAL™ 库,为大型语言模型 (LLM) 客户端提供统一的方式来访问和管理多种存储服务中的文件资源。通过简单的配置,即可连接到包括 S3、Azure Blob Storage、Google Cloud Storage 等在内的多种云存储服务,以及本地文件系统。

主要功能点

  • 统一存储访问: 通过 MCP 协议,LLM 客户端可以使用标准化的 URI 格式 ('scheme://path/to/resource') 访问不同存储服务中的文件,无需关心底层存储服务的具体实现细节。
  • 多种存储服务支持: 基于 Apache OpenDAL™,支持广泛的存储服务,包括但不限于:
    • 本地文件系统 (fs)
    • Amazon S3 (s3)
    • Azure Blob Storage (azblob)
    • Google Cloud Storage (gcs)
    • 以及更多 OpenDAL 支持的服务。
  • 文件操作: 提供以下核心文件操作功能:
    • 文件列表 (list): 列出指定目录下的文件和子目录。
    • 文件读取 (read): 读取文件内容,支持自动检测文本和二进制文件,并返回 Base64 编码的二进制内容。
    • 文件信息 (get_info): 获取文件的元数据信息,如大小和类型。
  • 环境配置: 通过环境变量灵活配置各种存储服务,方便快捷。
  • 多种传输协议支持: 支持 Stdio 和 SSE 两种传输协议,可以根据客户端需求选择合适的协议。

安装步骤

  1. 确保已安装 Python 3.8 或更高版本。

  2. 使用 pip 安装 'mcp-server-opendal':

    pip install mcp-server-opendal

服务器配置

MCP 服务器需要配置启动命令 (command) 及其参数 (args) 才能被 MCP 客户端连接。以下是 'mcp-server-opendal' 服务器的配置信息,请根据您的需求进行选择:

{
  "server_name": "opendal-mcp-server",
  "command": "mcp-server-opendal",
  "args": [
    "--transport",
    "stdio"
  ],
  "注释": "使用 stdio 传输协议启动 MCP 服务器。stdio 适用于本地或命令行环境。",
  "server_name": "opendal-mcp-server",
  "command": "mcp-server-opendal",
  "args": [
    "--transport",
    "sse"
  ],
  "注释": "使用 SSE (Server-Sent Events) 传输协议启动 MCP 服务器。SSE 适用于 Web 应用或需要服务器推送的场景。"
}

环境变量配置 (存储服务):

'mcp-server-opendal' 通过环境变量来配置存储服务连接。每个存储服务需要一个前缀和特定的配置选项。

例如,要配置一个别名为 "mys3" 的 S3 服务,您需要设置以下环境变量:

OPENDAL_MYS3_TYPE=s3          # 存储服务类型为 S3
OPENDAL_MYS3_BUCKET=your-bucket-name # S3 存储桶名称
OPENDAL_MYS3_REGION=your-region     # S3 区域
# 以下为可选配置,根据您的 S3 服务配置可能需要设置
# OPENDAL_MYS3_ENDPOINT=your-s3-endpoint # S3 端点 (例如,使用 MinIO 时)
# OPENDAL_MYS3_ACCESS_KEY_ID=your-access-key # S3 访问密钥 ID
# OPENDAL_MYS3_SECRET_ACCESS_KEY=your-secret-key # S3 秘密访问密钥

您可以配置多个存储服务,只需使用不同的前缀,例如 "myfs" 代表本地文件系统,"myazblob" 代表 Azure Blob Storage 等。

支持的存储服务类型 (OPENDAL_TYPE):

请参考 Apache OpenDAL™ 文档 查看支持的存储服务类型和对应的配置选项。常用的类型包括:

  • 'fs' (本地文件系统)
  • 's3' (Amazon S3)
  • 'azblob' (Azure Blob Storage)
  • 'gcs' (Google Cloud Storage)
  • ...

基本使用方法

  1. 启动 MCP 服务器: 根据上面提供的配置信息,使用命令行启动 'mcp-server-opendal' 服务器,并确保已设置好相应的存储服务环境变量。例如,使用 stdio 传输协议:

    mcp-server-opendal --transport stdio
  2. 在 MCP 客户端中使用: 在您的 MCP 客户端应用中,配置连接到 'mcp-server-opendal' 服务器。您可以使用 'list', 'read', 'get_info' 等工具来访问和操作配置的存储服务中的文件。

    例如,使用 'list' 工具列出 "mys3" 存储服务根目录下的文件:

    list("mys3://")

    使用 'read' 工具读取 "myfs" 存储服务中 "/path/to/data.txt" 文件的内容:

    read("myfs:///path/to/data.txt")

    使用 'get_info' 工具获取 "mys3" 存储服务中 "/images/logo.png" 文件的元数据:

    get_info("mys3:///images/logo.png")

    请注意,URI 中的路径部分需要进行 URL 编码,例如空格需要编码为 '%20'。

提示:

  • 您可以使用 '.env' 文件来管理环境变量,'mcp-server-opendal' 会自动加载 '.env' 文件中的环境变量。
  • 详细的 API 使用方法和更多工具可以参考 Model Context Protocol (MCP) 文档

信息

分类

数据库与文件