DynamoDB MCP Server

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.

Integrations

  • Allows managing Amazon DynamoDB resources, including table management, capacity management, and data operations such as creating tables, managing indexes, updating capacity, and performing CRUD operations on data

Servidor MCP de DynamoDB

Un servidor de Protocolo de Contexto de Modelo para la gestión de recursos de Amazon DynamoDB. Este servidor proporciona herramientas para la gestión de tablas, la gestión de capacidad y las operaciones de datos.

Autor

Iman Kamyabi ( ikmyb@icloud.com )

Características

Gestión de tablas

  • Cree nuevas tablas de DynamoDB con configuraciones personalizables
  • Listar tablas existentes
  • Obtenga información detallada de la tabla
  • Configurar los ajustes de la tabla

Gestión de índices

  • Crear y gestionar índices secundarios globales (GSI)
  • Actualizar la capacidad de GSI
  • Crear índices secundarios locales (LSI)

Gestión de la capacidad

  • Actualizar las unidades de capacidad de lectura/escritura aprovisionadas
  • Administrar la configuración del rendimiento de la tabla

Operaciones de datos

  • Insertar o reemplazar elementos en tablas
  • Recuperar elementos por clave principal
  • Actualizar atributos de elementos específicos
  • Consultar tablas con condiciones
  • Escanear tablas con filtros

Nota : No se admiten operaciones de eliminación para evitar la pérdida accidental de datos.

Configuración

  1. Instalar dependencias:
npm install
  1. Configurar las credenciales de AWS como variables de entorno:
export AWS_ACCESS_KEY_ID="your_access_key" export AWS_SECRET_ACCESS_KEY="your_secret_key" export AWS_REGION="your_region"
  1. Construir el servidor:
npm run build
  1. Iniciar el servidor:
npm start

Herramientas

crear_tabla

Crea una nueva tabla DynamoDB con la configuración especificada.

Parámetros:

  • tableName : Nombre de la tabla a crear
  • partitionKey : Nombre de la clave de partición
  • partitionKeyType : Tipo de clave de partición (S=Cadena, N=Número, B=Binario)
  • sortKey : (opcional) Nombre de la clave de ordenación
  • sortKeyType : (opcional) Tipo de clave de ordenación
  • readCapacity : Unidades de capacidad de lectura aprovisionadas
  • writeCapacity : Unidades de capacidad de escritura aprovisionadas

Ejemplo:

{ "tableName": "Users", "partitionKey": "userId", "partitionKeyType": "S", "readCapacity": 5, "writeCapacity": 5 }

listas_de_tablas

Enumera todas las tablas de DynamoDB en la cuenta.

Parámetros:

  • limit : (opcional) Número máximo de tablas a devolver
  • exclusiveStartTableName : (opcional) Nombre de la tabla desde la que se iniciará la paginación

Ejemplo:

{ "limit": 10 }

describe_tabla

Obtiene información detallada sobre una tabla de DynamoDB.

Parámetros:

  • tableName : Nombre de la tabla a describir

Ejemplo:

{ "tableName": "Users" }

crear_gsi

Crea un índice secundario global en una tabla.

Parámetros:

  • tableName : Nombre de la tabla
  • indexName : Nombre del nuevo índice
  • partitionKey : Clave de partición para el índice
  • partitionKeyType : Tipo de clave de partición
  • sortKey : (opcional) Clave de ordenación para el índice
  • sortKeyType : (opcional) Tipo de clave de ordenación
  • projectionType : Tipo de proyección (ALL, KEYS_ONLY, INCLUDE)
  • nonKeyAttributes : (opcional) Atributos no clave para el proyecto
  • readCapacity : Unidades de capacidad de lectura aprovisionadas
  • writeCapacity : Unidades de capacidad de escritura aprovisionadas

Ejemplo:

{ "tableName": "Users", "indexName": "EmailIndex", "partitionKey": "email", "partitionKeyType": "S", "projectionType": "ALL", "readCapacity": 5, "writeCapacity": 5 }

actualización_gsi

Actualiza la capacidad aprovisionada de un índice secundario global.

Parámetros:

  • tableName : Nombre de la tabla
  • indexName : Nombre del índice a actualizar
  • readCapacity : Nuevas unidades de capacidad de lectura
  • writeCapacity : Nuevas unidades de capacidad de escritura

Ejemplo:

{ "tableName": "Users", "indexName": "EmailIndex", "readCapacity": 10, "writeCapacity": 10 }

crear_lsi

Crea un índice secundario local en una tabla (debe realizarse durante la creación de la tabla).

Parámetros:

  • tableName : Nombre de la tabla
  • indexName : Nombre del nuevo índice
  • partitionKey : Clave de partición para la tabla
  • partitionKeyType : Tipo de clave de partición
  • sortKey : Clave de ordenación para el índice
  • sortKeyType : Tipo de clave de ordenación
  • projectionType : Tipo de proyección (ALL, KEYS_ONLY, INCLUDE)
  • nonKeyAttributes : (opcional) Atributos no clave para el proyecto
  • readCapacity : (opcional) Unidades de capacidad de lectura aprovisionadas
  • writeCapacity : (opcional) Unidades de capacidad de escritura aprovisionadas

Ejemplo:

{ "tableName": "Users", "indexName": "CreatedAtIndex", "partitionKey": "userId", "partitionKeyType": "S", "sortKey": "createdAt", "sortKeyType": "N", "projectionType": "ALL" }

capacidad de actualización

Actualiza la capacidad aprovisionada de una tabla.

Parámetros:

  • tableName : Nombre de la tabla
  • readCapacity : Nuevas unidades de capacidad de lectura
  • writeCapacity : Nuevas unidades de capacidad de escritura

Ejemplo:

{ "tableName": "Users", "readCapacity": 10, "writeCapacity": 10 }

poner_elemento

Inserta o reemplaza un elemento en una tabla.

Parámetros:

  • tableName : Nombre de la tabla
  • item : elemento que se colocará en la tabla (como objeto JSON)

Ejemplo:

{ "tableName": "Users", "item": { "userId": "123", "name": "John Doe", "email": "john@example.com" } }

obtener_elemento

Recupera un elemento de una tabla por su clave principal.

Parámetros:

  • tableName : Nombre de la tabla
  • key : Clave principal del elemento a recuperar

Ejemplo:

{ "tableName": "Users", "key": { "userId": "123" } }

elemento_actualizar

Actualiza atributos específicos de un elemento en una tabla.

Parámetros:

  • tableName : Nombre de la tabla
  • key : Clave principal del elemento a actualizar
  • updateExpression : Actualizar expresión
  • expressionAttributeNames : Asignaciones de nombres de atributos
  • expressionAttributeValues : Valores para la expresión de actualización
  • conditionExpression : (Opcional) Condición para la actualización
  • returnValues : (opcional) Qué valores devolver

Ejemplo:

{ "tableName": "Users", "key": { "userId": "123" }, "updateExpression": "SET #n = :name", "expressionAttributeNames": { "#n": "name" }, "expressionAttributeValues": { ":name": "Jane Doe" } }

tabla de consulta

Consulta una tabla utilizando condiciones clave y filtros opcionales.

Parámetros:

  • tableName : Nombre de la tabla
  • keyConditionExpression : Expresión de condición clave
  • expressionAttributeValues : Valores para la expresión de condición clave
  • expressionAttributeNames : (opcional) asignaciones de nombres de atributos
  • filterExpression : (opcional) Expresión de filtro para los resultados
  • limit : (opcional) Número máximo de artículos a devolver

Ejemplo:

{ "tableName": "Users", "keyConditionExpression": "userId = :id", "expressionAttributeValues": { ":id": "123" } }

tabla de escaneo

Escanea una tabla completa con filtros opcionales.

Parámetros:

  • tableName : Nombre de la tabla
  • filterExpression : (opcional) Expresión de filtro
  • expressionAttributeValues : (Opcional) Valores para la expresión de filtro
  • expressionAttributeNames : (opcional) asignaciones de nombres de atributos
  • limit : (opcional) Número máximo de artículos a devolver

Ejemplo:

{ "tableName": "Users", "filterExpression": "age > :minAge", "expressionAttributeValues": { ":minAge": 21 } }

Preguntas de muestra

A continuación se muestran algunos ejemplos de preguntas que puedes hacerle a Claude cuando utilice este servidor DynamoDB MCP:

Gestión de tablas

  • Cree una nueva tabla de DynamoDB llamada "Productos" con una clave de partición "productId" (cadena) y una clave de ordenación "timestamp" (número).
  • "Enumerar todas las tablas de DynamoDB en mi cuenta"
  • "¿Cuál es la configuración actual de la tabla Usuarios?"
  • "Agregar un índice secundario global en el campo de correo electrónico de la tabla Usuarios"

Gestión de la capacidad

  • "Actualizar la capacidad de la tabla Usuarios a 20 unidades de lectura y 15 unidades de escritura"
  • Aumentar la capacidad de EmailIndex GSI en la tabla Usuarios.
  • "¿Cuál es la capacidad actual aprovisionada para la tabla de pedidos?"

Operaciones de datos

  • "Insertar un nuevo usuario con ID '123', nombre 'John Doe' y correo electrónico ' john@example.com '"
  • "Obtener el usuario con ID '123'"
  • "Actualizar la dirección de correo electrónico del usuario '123' a ' john.doe@example.com '"
  • "Buscar todos los pedidos realizados por el usuario '123'"
  • "Enumerar todos los usuarios mayores de 21 años"
  • Consulta el EmailIndex para encontrar al usuario con el correo electrónico ' john@example.com '

Configuración

Configuración de credenciales de AWS

  1. Obtenga la ID de clave de acceso de AWS, la clave de acceso secreta y la región desde la consola de administración de AWS.
  2. Si utiliza credenciales temporales (por ejemplo, rol IAM), obtenga también un token de sesión.
  3. Asegúrese de que estas credenciales tengan los permisos adecuados para las operaciones de DynamoDB.

Uso con Claude Desktop

Agregue esto a su claude_desktop_config.json :

Docker (recomendado)

{ "mcpServers": { "dynamodb": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "AWS_ACCESS_KEY_ID", "-e", "AWS_SECRET_ACCESS_KEY", "-e", "AWS_REGION", "-e", "AWS_SESSION_TOKEN", "mcp/dynamodb-mcp-server" ], "env": { "AWS_ACCESS_KEY_ID": "your_access_key", "AWS_SECRET_ACCESS_KEY": "your_secret_key", "AWS_REGION": "your_region", "AWS_SESSION_TOKEN": "your_session_token" } } } }

Edificio

Estibador:

docker build -t mcp/dynamodb-mcp-server -f Dockerfile .

Desarrollo

Para ejecutar en modo de desarrollo con recarga automática:

npm run dev

Licencia

Este servidor MCP cuenta con la licencia MIT. Esto significa que puede usar, modificar y distribuir el software libremente, sujeto a los términos y condiciones de la licencia MIT. Para más detalles, consulte el archivo de LICENCIA en el repositorio del proyecto.

You must be authenticated.

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

Permite la gestión de recursos de DynamoDB a través del Protocolo de contexto de modelo, lo que admite la creación de tablas e índices, la gestión de capacidad y las operaciones de datos sin funcionalidad de eliminación para evitar la pérdida accidental de datos.

  1. Author
    1. Features
      1. Table Management
      2. Index Management
      3. Capacity Management
      4. Data Operations
    2. Setup
      1. Tools
        1. create_table
        2. list_tables
        3. describe_table
        4. create_gsi
        5. update_gsi
        6. create_lsi
        7. update_capacity
        8. put_item
        9. get_item
        10. update_item
        11. query_table
        12. scan_table
      2. Sample Questions
        1. Table Management
        2. Capacity Management
        3. Data Operations
      3. Configuration
        1. Setting up AWS Credentials
        2. Usage with Claude Desktop
      4. Building
        1. Development
          1. License
            ID: 3voqtftc3c