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)
- Docker (opcional, para configuración en contenedores)
Configuración
- Instalar mediante npm:
- Si se construye desde la fuente:
- Configurar las credenciales de AWS y el acceso a S3:
Cree un archivo .env
con su configuración de AWS:
O configúrelos como variables de entorno.
Configuración
El servidor se puede configurar utilizando las siguientes variables de entorno:
Variable | Descripción | Por defecto |
---|---|---|
AWS_REGION | Región de AWS donde se encuentran sus buckets S3 | us-east-1 |
S3_BUCKETS | Lista separada por comas de nombres de buckets S3 permitidos | (vacío) |
S3_MAX_BUCKETS | Número máximo de buckets a devolver en el listado | 5 |
AWS_ACCESS_KEY_ID | Clave de acceso de AWS (si no se utilizan credenciales predeterminadas) | (de la configuración de AWS) |
AWS_SECRET_ACCESS_KEY | Clave secreta de AWS (si no se utilizan credenciales predeterminadas) | (de la configuración de AWS) |
Ejecución del servidor
Ejecución directa de Node.js
Puedes ejecutar el servidor directamente con Node.js:
Configuración de Docker 🐳
Puede ejecutar el servidor S3 MCP como un contenedor Docker utilizando Docker CLI o Docker Compose.
Uso de Docker CLI
- Construya la imagen de Docker:
- Ejecute el contenedor con variables de entorno:
- Comprobar los registros del contenedor:
- Detener y retirar el contenedor:
Tenga en cuenta que el contenedor no expone ningún puerto porque está diseñado para usarse con Claude Desktop a través de Docker exec en lugar de conexiones HTTP directas.
Uso de Docker Compose
- Construya e inicie el contenedor Docker:
- Para detener el contenedor:
Uso de Docker con MinIO para pruebas
La configuración de Docker Compose incluye un servicio MinIO para pruebas locales:
El servicio MinIO crea automáticamente dos grupos de pruebas ( test-bucket-1
y test-bucket-2
) y carga archivos de muestra para realizar pruebas.
Depuración en MCP Inspector
Para depurar el servidor usando MCP Inspector:
Al utilizar la opción --docker-compose
, el script hará lo siguiente:
- Inicie MinIO y los contenedores del servidor S3 MCP si no se están ejecutando
- Inicie el Inspector MCP conectado al servidor MCP de S3
- Luego puede probar las herramientas S3 contra la instancia local de MinIO.
Conexión a Claude Desktop
Para utilizar este servidor con Claude Desktop:
- 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
- macOS:
- Agregue el servidor S3 MCP a la configuración:
Opción de Docker para Claude Desktop 🐳
También puede configurar Claude Desktop para utilizar un contenedor Docker en ejecución para el servidor MCP:
⚠️ Requisitos previos importantes : para que esta configuración de Docker funcione, primero DEBE compilar y ejecutar el contenedor Docker ANTES de iniciar Claude Desktop:
Sin un contenedor en ejecución, Claude Desktop mostrará errores al intentar utilizar herramientas S3.
La configuración de Docker anterior usa
exec
para enviar solicitudes MCP directamente al contenedor en ejecución. No se requiere la asignación de puertos, ya que Claude se comunica directamente con el contenedor en lugar de a través de un puerto de red.
Nota : asegúrese de que el nombre del contenedor en la configuración (
aws-s3-mcp-server
) coincida con el nombre del contenedor en ejecución.
Importante : tenga en cuenta lo siguiente al utilizar la configuración anterior
- Reemplace
AWS_ACCESS_KEY_ID
yAWS_SECRET_ACCESS_KEY
con sus credenciales realesS3_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:
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:
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 objetosprefix
(opcional): prefijo para filtrar objetos (como una ruta de carpeta)maxKeys
(opcional): Número máximo de objetos a devolver
Ejemplo de salida:
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 S3key
(obligatoria): Clave (ruta) del objeto a recuperar
Ejemplo de salida de texto:
Ejemplo de salida binaria:
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"
- Resumir archivos PDF en la carpeta "Mis documentos"
- 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.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
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.
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server that enables Claude to execute Python code using boto3 to query and manage AWS resources directly from conversations.Last updated -6PythonMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server implementation that enables Claude to perform AWS operations on S3 and DynamoDB services through natural language commands.Last updated -2392PythonMIT License
- -securityFlicense-qualityA Model Context Protocol server allowing Claude AI to interact with AWS resources through natural language, enabling users to query and manage AWS services without using the traditional AWS Console or CLI.Last updated -TypeScript
- -securityAlicense-qualityA Model Context Protocol server that enables Large Language Models like Claude to manage Linode cloud resources, including listing regions, creating, viewing, deleting, and rebooting Linode instances.Last updated -PythonMIT License