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.

Servidor S3 MCP

Un servidor de Protocolo de contexto de modelo (MCP) de Amazon S3 que proporciona herramientas para interactuar con objetos y depósitos de S3.

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

Descripción general

Este servidor MCP permite que los modelos de lenguaje grandes (LLM) como Claude interactúen con el almacenamiento de AWS S3. Proporciona herramientas para:

  • Listado de buckets S3 disponibles
  • Listado de objetos dentro de un depósito
  • Recuperando el contenido de un objeto

El servidor está construido utilizando TypeScript y MCP SDK, lo que proporciona una forma segura y estandarizada para que los LLM interactúen con S3.

Instalación

Prerrequisitos

  • Node.js 18 o superior
  • npm o hilo
  • Credenciales de AWS configuradas (ya sea a través de variables de entorno o archivo de credenciales de AWS)

Configuración

  1. Instalar mediante npm:
# Install globally via npm npm install -g aws-s3-mcp # Or as a dependency in your project npm install aws-s3-mcp
  1. Si se construye desde la fuente:
# 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. Configurar las credenciales de AWS y el acceso a S3:

Cree un archivo .env con su configuración de AWS:

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

O configúrelos como variables de entorno.

Configuración

El servidor se puede configurar utilizando las siguientes variables de entorno:

VariableDescripciónPor defecto
AWS_REGIONRegión de AWS donde se encuentran sus buckets S3us-east-1
S3_BUCKETSLista separada por comas de nombres de buckets S3 permitidos(vacío)
S3_MAX_BUCKETSNúmero máximo de depósitos a devolver en el listado5
AWS_ACCESS_KEY_IDClave de acceso de AWS (si no se utilizan credenciales predeterminadas)(de la configuración de AWS)
AWS_SECRET_ACCESS_KEYClave secreta de AWS (si no se utilizan credenciales predeterminadas)(de la configuración de AWS)

Ejecución del servidor

Puedes ejecutar el servidor con 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

Conexión a Claude Desktop

Para utilizar este servidor con Claude Desktop:

  1. Edite su archivo de configuración de Claude Desktop:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Ventanas: %APPDATA%\Claude\claude_desktop_config.json
  2. Agregue el servidor S3 MCP a la configuración:
{ "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" } } } }

Importante : tenga en cuenta lo siguiente al utilizar la configuración anterior

  • Reemplace AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY con sus credenciales reales
  • S3_BUCKETS debe contener una lista separada por comas de los depósitos a los que desea permitir el acceso.
  • AWS_REGION debe configurarse en la región donde se encuentran sus buckets

💣 Si ocurre un error en Claude Desktop

Si encuentra errores con la configuración anterior en Claude Desktop, intente utilizar rutas absolutas de la siguiente manera:

# 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" } } } }

Herramientas disponibles

lista de cubos

Enumera los buckets de S3 disponibles a los que el servidor tiene permiso de acceso. Esta herramienta respeta la configuración S3_BUCKETS , que limita los buckets que se muestran.

Parámetros: Ninguno

Ejemplo de salida:

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

lista de objetos

Enumera los objetos en un bucket S3 específico.

Parámetros:

  • bucket (obligatorio): nombre del bucket S3 del que se listarán los objetos
  • prefix (opcional): prefijo para filtrar objetos (como una ruta de carpeta)
  • maxKeys (opcional): Número máximo de objetos a devolver

Ejemplo de salida:

[ { "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" } ]

obtener objeto

Recupera un objeto de un bucket de S3 especificado. Los archivos de texto se devuelven como texto sin formato, mientras que los archivos binarios se devuelven con detalles limitados.

Parámetros:

  • bucket (obligatorio): nombre del bucket S3
  • key (obligatoria): Clave (ruta) del objeto a recuperar

Ejemplo de salida de texto:

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

Ejemplo de salida binaria:

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

Consideraciones de seguridad

  • El servidor solo accederá a los depósitos especificados en la variable de entorno S3_BUCKETS
  • Las credenciales de AWS deben tener los permisos adecuados para los depósitos
  • Utilice el principio del mínimo privilegio al configurar los permisos de AWS
  • Para uso en producción, considere usar roles de IAM con permisos S3 específicos

Uso con Claude

Al interactuar con Claude en la aplicación de escritorio, puedes pedirle que realice operaciones S3 como:

  • "Enumerar todos mis buckets S3"
  • "Muéstrame el contenido de mi contenedor de imágenes"
  • Obtener el archivo README.txt de my-documents-bucket

Claude utilizará la herramienta MCP adecuada para realizar la solicitud y mostrarle los resultados.

Licencia

Instituto Tecnológico de Massachusetts (MIT)

You must be authenticated.

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

Un servidor de protocolo de contexto de modelo de Amazon S3 que permite que los modelos de lenguaje grandes como Claude interactúen con el almacenamiento de AWS S3, proporcionando herramientas para enumerar depósitos, enumerar objetos y recuperar contenidos de objetos.

  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