S3 MCP Server

by samuraikun
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides tools for listing available S3 buckets, listing objects within a bucket, and retrieving object contents from AWS S3 storage.

S3 MCP 서버

S3 버킷 및 객체와 상호 작용하기 위한 도구를 제공하는 Amazon S3 모델 컨텍스트 프로토콜(MCP) 서버입니다.

https://github.com/user-attachments/assets/d05ff0f1-e2bf-43b9-8d0c-82605abfb666

개요

이 MCP 서버는 Claude와 같은 대규모 언어 모델(LLM)이 AWS S3 스토리지와 상호 작용할 수 있도록 지원합니다. 다음과 같은 도구를 제공합니다.

  • 사용 가능한 S3 버킷 나열
  • 버킷 내의 객체 나열
  • 객체 내용 검색

이 서버는 TypeScript와 MCP SDK를 사용하여 구축되었으며, LLM이 S3와 상호 작용하는 안전하고 표준화된 방법을 제공합니다.

설치

필수 조건

  • Node.js 18 이상
  • npm 또는 yarn
  • AWS 자격 증명이 구성됨(환경 변수 또는 AWS 자격 증명 파일을 통해)

설정

  1. npm을 통해 설치:

지엑스피1

  1. 소스에서 빌드하는 경우:
# Clone the repository git clone https://github.com/samuraikun/aws-s3-mcp.git cd aws-s3-mcp # Install dependencies and build npm install npm run build
  1. AWS 자격 증명 및 S3 액세스를 구성합니다.

AWS 구성을 사용하여 .env 파일을 만듭니다.

AWS_REGION=us-east-1 S3_BUCKETS=bucket1,bucket2,bucket3 S3_MAX_BUCKETS=5 AWS_ACCESS_KEY_ID=your-access-key AWS_SECRET_ACCESS_KEY=your-secret-key

또는 이를 환경 변수로 설정합니다.

구성

다음 환경 변수를 사용하여 서버를 구성할 수 있습니다.

변하기 쉬운설명기본
AWS_REGIONS3 버킷이 있는 AWS 지역us-east-1
S3_BUCKETS허용된 S3 버킷 이름의 쉼표로 구분된 목록(비어 있는)
S3_MAX_BUCKETS목록에 반환할 버킷의 최대 개수5
AWS_ACCESS_KEY_IDAWS 액세스 키(기본 자격 증명을 사용하지 않는 경우)(AWS 구성에서)
AWS_SECRET_ACCESS_KEYAWS 비밀 키(기본 자격 증명을 사용하지 않는 경우)(AWS 구성에서)

서버 실행

Node.js로 서버를 실행할 수 있습니다.

# Using npx (without installing) npx aws-s3-mcp # If installed globally npm install -g aws-s3-mcp aws-s3-mcp # If running from cloned repository npm start # Or directly node dist/index.js

Claude Desktop에 연결

Claude Desktop과 함께 이 서버를 사용하려면:

  1. Claude Desktop 구성 파일을 편집하세요.
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. 구성에 S3 MCP 서버를 추가합니다.
{ "mcpServers": { "s3": { "command": "npx", "args": ["aws-s3-mcp"], "env": { "AWS_REGION": "us-east-1", "S3_BUCKETS": "bucket1,bucket2,bucket3", "S3_MAX_BUCKETS": "5", "AWS_ACCESS_KEY_ID": "your-access-key", "AWS_SECRET_ACCESS_KEY": "your-secret-key" } } } }

중요 : 위의 구성을 사용할 때 다음 사항에 유의하세요.

  • AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 실제 자격 증명으로 바꾸세요.
  • S3_BUCKETS 에는 액세스를 허용하려는 버킷의 쉼표로 구분된 목록이 포함되어야 합니다.
  • AWS_REGION 버킷이 있는 지역으로 설정해야 합니다.

💣 Claude Desktop에서 오류가 발생하는 경우

Claude Desktop에서 위 구성과 관련하여 오류가 발생하는 경우 다음과 같이 절대 경로를 사용해 보세요.

# Get the path of node and aws-s3-mcp which node which aws-s3-mcp
{ "globalShortcut": "", "mcpServers": { "s3": { "command": "your-absolute-path-to-node", "args": ["your-absolute-path-to-aws-s3-mcp/dist/index.js"], "env": { "AWS_REGION": "your-aws-region", "S3_BUCKETS": "your-s3-buckets", "S3_MAX_BUCKETS": "your-max-buckets", "AWS_ACCESS_KEY_ID": "your-access-key", "AWS_SECRET_ACCESS_KEY": "your-secret-key" } } } }

사용 가능한 도구

리스트 버킷

서버가 액세스할 수 있는 사용 가능한 S3 버킷을 나열합니다. 이 도구는 표시되는 버킷을 제한하는 S3_BUCKETS 구성을 따릅니다.

매개변수: 없음

출력 예:

[ { "Name": "my-images-bucket", "CreationDate": "2022-03-15T10:30:00.000Z" }, { "Name": "my-documents-bucket", "CreationDate": "2023-05-20T14:45:00.000Z" } ]

목록 객체

지정된 S3 버킷에 있는 객체를 나열합니다.

매개변수:

  • bucket (필수): 객체를 나열할 S3 버킷의 이름
  • prefix (선택 사항): 객체를 필터링하기 위한 접두사(예: 폴더 경로)
  • maxKeys (선택 사항): 반환할 최대 개체 수

출력 예:

[ { "Key": "images/photo1.jpg", "LastModified": "2023-10-10T08:12:15.000Z", "Size": 2048576, "StorageClass": "STANDARD" }, { "Key": "images/photo2.jpg", "LastModified": "2023-10-12T15:30:45.000Z", "Size": 1536000, "StorageClass": "STANDARD" } ]

get-object

지정된 S3 버킷에서 객체를 검색합니다. 텍스트 파일은 일반 텍스트로 반환되고, 이진 파일은 제한된 세부 정보로 반환됩니다.

매개변수:

  • bucket (필수): S3 버킷의 이름
  • key (필수): 검색할 객체의 키(경로)

텍스트 출력 예시:

This is the content of a text file stored in S3. It could be JSON, TXT, CSV or other text-based formats.

이진 출력 예:

Binary content (image/jpeg): base64 data is /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRof...

보안 고려 사항

  • 서버는 S3_BUCKETS 환경 변수에 지정된 버킷에만 액세스합니다.
  • AWS 자격 증명에는 버킷에 대한 적절한 권한이 있어야 합니다.
  • AWS 권한을 구성할 때 최소 권한 원칙을 사용하세요.
  • 프로덕션 용도로는 특정 S3 권한이 있는 IAM 역할을 사용하는 것이 좋습니다.

Claude와 함께 사용

데스크톱 앱에서 Claude와 상호 작용할 때 다음과 같은 S3 작업을 수행하도록 요청할 수 있습니다.

  • "내 모든 S3 버킷 나열"
  • "내 이미지 버킷의 내용을 보여주세요"
  • "my-documents-bucket에서 README.txt 파일을 가져옵니다"

클로드는 적절한 MCP 도구를 사용하여 요청을 수행하고 결과를 보여드립니다.

특허

MIT

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Claude와 같은 대규모 언어 모델이 AWS S3 스토리지와 상호 작용할 수 있도록 하는 Amazon S3 모델 컨텍스트 프로토콜 서버로, 버킷 나열, 객체 나열, 객체 콘텐츠 검색을 위한 도구를 제공합니다.

  1. Overview
    1. Installation
      1. Prerequisites
      2. Setup
    2. Configuration
      1. Running the Server
        1. Connecting to Claude Desktop
          1. 💣 If error occurs on Claude Desktop
        2. Available Tools
          1. list-buckets
          2. list-objects
          3. get-object
        3. Security Considerations
          1. Usage with Claude
            1. License
              ID: f43ejwha58