AWS S3 Bucket Utility MCP Server

使用说明

项目简介

本项目 'AWS S3 Bucket Utility MCP Server' 是一个基于 Model Context Protocol (MCP) 构建的服务器应用,旨在为大型语言模型 (LLM) 客户端提供访问和操作 AWS S3 云存储服务的标准化接口。通过此服务器,LLM 可以安全、便捷地列出 S3 存储桶、检索存储对象(包括CSV文件)以及读取CSV文件内容,从而扩展 LLM 在数据处理和分析方面的能力。

主要功能点

  • 列出可用S3存储桶:允许 LLM 获取用户可访问的 S3 存储桶列表。
  • 获取存储桶对象:支持 LLM 获取指定或所有存储桶中的对象列表。
  • 筛选CSV文件:能够让 LLM 仅检索和操作存储桶中的 CSV 文件。
  • 读取CSV文件内容:允许 LLM 读取指定 S3 存储桶中 CSV 文件的内容。

安装步骤

  1. 确保已安装 Python 3.8 或更高版本。
  2. 安装必要的 Python 包: 打开终端或命令提示符,运行以下命令安装项目依赖:
    pip install aioboto3 mcp[cli] python-dotenv
    • 'aioboto3': 用于异步 AWS S3 客户端操作。
    • 'mcp[cli]': MCP 服务器框架及其命令行工具。
    • 'python-dotenv': 用于从 .env 文件加载环境变量。

服务器配置

为了让 MCP 客户端(例如 Cursor.ai)连接到此 MCP 服务器,您需要配置客户端的 'mcpServers' 部分。以下是一个示例配置,您需要根据实际情况进行调整。

{
  "mcpServers": {
    "AWS-S3-AccessTool": {
      "command": "python",
      "args": ["/path/to/your/aws-s3-bucket-utility-mcp/src/main.py"]
    }
  }
}

配置参数说明:

  • '"AWS-S3-AccessTool"': MCP 服务器的名称,客户端用此名称来引用该服务器。您可以自定义名称。
  • '"command": "python"': 启动服务器的命令,这里使用 'python' 解释器。
  • '"args": ["/path/to/your/aws-s3-bucket-utility-mcp/src/main.py"]': 传递给 'python' 命令的参数,指定 'main.py' 脚本的绝对路径。请务必将 '/path/to/your/aws-s3-bucket-utility-mcp/src/main.py' 替换为 'main.py' 文件在您本地文件系统中的实际绝对路径。

环境变量配置:

此 MCP 服务器依赖于以下环境变量进行 AWS 身份验证和配置。您需要在项目根目录下创建 '.env' 文件,并填入以下信息,替换为您自己的 AWS 凭证和区域:

AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEY=your_secret_access_key
AWS_REGION=your_aws_region
S3_BUCKETS=bucket1,bucket2  # (可选) 限制访问的存储桶列表,多个桶名用逗号分隔
  • 'AWS_ACCESS_KEY_ID': 您的 AWS 访问密钥 ID。
  • 'AWS_SECRET_ACCESS_KEY': 您的 AWS 秘密访问密钥。
  • 'AWS_REGION': 您的 AWS 区域,例如 'us-west-2'。
  • 'S3_BUCKETS' (可选): 如果您只想允许 LLM 访问特定的 S3 存储桶,可以在这里列出桶名,用逗号分隔。如果不设置此项,LLM 将可以访问您 AWS 账户下所有可访问的存储桶。

请注意: 妥善保管您的 AWS 凭证,避免泄露。在生产环境中,建议使用更安全的凭证管理方式,例如 AWS IAM 角色。

基本使用方法

  1. 配置 AWS 凭证和区域信息: 按照上述 环境变量配置 部分,在 '.env' 文件中设置您的 AWS 凭证和区域信息。
  2. 启动 MCP 服务器: 在终端或命令提示符中,导航到 'src' 目录的上一级目录(即包含 'src' 目录的仓库根目录),然后运行以下命令启动服务器:
    python src/main.py
    服务器默认使用 'stdio' 传输协议。
  3. 在 MCP 客户端中配置服务器连接: 根据您的 MCP 客户端(例如 Cursor.ai)的文档,配置 'mcpServers' 部分,填入上述 服务器配置 中生成的 JSON 配置信息。确保 'command' 和 'args' 中的路径正确指向您本地的 'main.py' 文件。
  4. 使用 LLM 客户端调用工具: 连接成功后,您就可以在 LLM 客户端中使用预定义的工具来与 AWS S3 交互了。例如,您可以指示 LLM 调用 'getAvailableBuckets' 工具来获取存储桶列表,或调用 'getCsvObjects' 工具来查找 CSV 文件。具体的工具调用方式取决于您的 MCP 客户端的功能和界面。

服务器信息