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

DynamoDB MCP 서버

Amazon DynamoDB 리소스를 관리하기 위한 모델 컨텍스트 프로토콜 서버입니다 . 이 서버는 테이블 관리, 용량 관리 및 데이터 작업을 위한 도구를 제공합니다.

작가

이만 카미야비( ikmyb@icloud.com )

특징

테이블 관리

  • 사용자 정의 가능한 구성으로 새로운 DynamoDB 테이블 만들기
  • 기존 테이블 나열
  • 자세한 표 정보를 얻으세요
  • 테이블 설정 구성

인덱스 관리

  • 글로벌 보조 인덱스(GSI) 생성 및 관리
  • GSI 용량 업데이트
  • 로컬 보조 인덱스(LSI) 생성

용량 관리

  • 프로비저닝된 읽기/쓰기 용량 단위 업데이트
  • 테이블 처리량 설정 관리

데이터 운영

  • 표에 항목 삽입 또는 바꾸기
  • 기본 키로 항목 검색
  • 특정 항목 속성 업데이트
  • 조건이 있는 쿼리 테이블
  • 필터로 테이블 스캔

참고 : 실수로 데이터가 손실되는 것을 방지하기 위해 삭제 작업은 지원되지 않습니다.

설정

  1. 종속성 설치:

지엑스피1

  1. AWS 자격 증명을 환경 변수로 구성합니다.
export AWS_ACCESS_KEY_ID="your_access_key" export AWS_SECRET_ACCESS_KEY="your_secret_key" export AWS_REGION="your_region"
  1. 서버를 빌드하세요:
npm run build
  1. 서버를 시작합니다:
npm start

도구

테이블 생성

지정된 구성으로 새로운 DynamoDB 테이블을 만듭니다.

매개변수:

  • tableName : 생성할 테이블의 이름
  • partitionKey : 파티션 키의 이름
  • partitionKeyType : 파티션 키 유형(S=문자열, N=숫자, B=바이너리)
  • sortKey : (선택 사항) 정렬 키의 이름
  • sortKeyType : (선택 사항) 정렬 키의 유형
  • readCapacity : 프로비저닝된 읽기 용량 단위
  • writeCapacity : 프로비저닝된 쓰기 용량 단위

예:

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

리스트_테이블

계정의 모든 DynamoDB 테이블을 나열합니다.

매개변수:

  • limit : (선택 사항) 반환할 테이블의 최대 개수
  • exclusiveStartTableName : (선택 사항) 페이지 매김을 시작할 테이블의 이름

예:

{ "limit": 10 }

설명_테이블

DynamoDB 테이블에 대한 자세한 정보를 가져옵니다.

매개변수:

  • tableName : 설명할 테이블의 이름

예:

{ "tableName": "Users" }

create_gsi

테이블에 글로벌 보조 인덱스를 생성합니다.

매개변수:

  • tableName : 테이블의 이름
  • indexName : 새 인덱스의 이름
  • partitionKey : 인덱스의 파티션 키
  • partitionKeyType : 파티션 키 유형
  • sortKey : (선택 사항) 인덱스의 정렬 키
  • sortKeyType : (선택 사항) 정렬 키의 유형
  • projectionType : 프로젝션 유형(ALL, KEYS_ONLY, INCLUDE)
  • nonKeyAttributes : (선택 사항) 프로젝트에 대한 키가 아닌 속성
  • readCapacity : 프로비저닝된 읽기 용량 단위
  • writeCapacity : 프로비저닝된 쓰기 용량 단위

예:

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

업데이트_gsi

글로벌 보조 인덱스의 프로비저닝된 용량을 업데이트합니다.

매개변수:

  • tableName : 테이블의 이름
  • indexName : 업데이트할 인덱스의 이름
  • readCapacity : 새로운 읽기 용량 단위
  • writeCapacity : 새로운 쓰기 용량 단위

예:

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

create_lsi

테이블에 로컬 보조 인덱스를 생성합니다(테이블 생성 중에 수행해야 함).

매개변수:

  • tableName : 테이블의 이름
  • indexName : 새 인덱스의 이름
  • partitionKey : 테이블의 파티션 키
  • partitionKeyType : 파티션 키 유형
  • sortKey : 인덱스의 정렬 키
  • sortKeyType : 정렬 키의 유형
  • projectionType : 프로젝션 유형(ALL, KEYS_ONLY, INCLUDE)
  • nonKeyAttributes : (선택 사항) 프로젝트에 대한 키가 아닌 속성
  • readCapacity : (선택 사항) 프로비저닝된 읽기 용량 단위
  • writeCapacity : (선택 사항) 프로비저닝된 쓰기 용량 단위

예:

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

업데이트_용량

테이블의 프로비저닝된 용량을 업데이트합니다.

매개변수:

  • tableName : 테이블의 이름
  • readCapacity : 새로운 읽기 용량 단위
  • writeCapacity : 새로운 쓰기 용량 단위

예:

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

put_item

표에 항목을 삽입하거나 바꿉니다.

매개변수:

  • tableName : 테이블의 이름
  • item : 테이블에 넣을 항목(JSON 객체로)

예:

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

get_item

기본 키를 사용하여 테이블에서 항목을 검색합니다.

매개변수:

  • tableName : 테이블의 이름
  • key : 검색할 항목의 기본 키

예:

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

업데이트_항목

표의 항목의 특정 속성을 업데이트합니다.

매개변수:

  • tableName : 테이블의 이름
  • key : 업데이트할 항목의 기본 키
  • updateExpression : 업데이트 표현식
  • expressionAttributeNames : 속성 이름 매핑
  • expressionAttributeValues : 업데이트 표현식의 값
  • conditionExpression : (선택 사항) 업데이트 조건
  • returnValues : (선택 사항) 반환할 값

예:

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

쿼리_테이블

주요 조건과 선택적 필터를 사용하여 테이블을 쿼리합니다.

매개변수:

  • tableName : 테이블의 이름
  • keyConditionExpression : 키 조건 표현식
  • expressionAttributeValues : 키 조건 표현식에 대한 값
  • expressionAttributeNames : (선택 사항) 속성 이름 매핑
  • filterExpression : (선택 사항) 결과에 대한 필터 표현식
  • limit : (선택 사항) 반환할 최대 항목 수

예:

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

스캔_테이블

선택적 필터를 사용하여 전체 표를 검색합니다.

매개변수:

  • tableName : 테이블의 이름
  • filterExpression : (선택 사항) 필터 표현식
  • expressionAttributeValues : (선택 사항) 필터 표현식의 값
  • expressionAttributeNames : (선택 사항) 속성 이름 매핑
  • limit : (선택 사항) 반환할 최대 항목 수

예:

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

샘플 질문

DynamoDB MCP 서버를 사용할 때 Claude에게 물어볼 수 있는 몇 가지 질문의 예는 다음과 같습니다.

테이블 관리

  • "파티션 키 'productId'(문자열)와 정렬 키 'timestamp'(숫자)를 사용하여 'Products'라는 새 DynamoDB 테이블을 만듭니다."
  • "내 계정의 모든 DynamoDB 테이블 나열"
  • "사용자 테이블의 현재 구성은 무엇입니까?"
  • "Users 테이블의 이메일 필드에 글로벌 보조 인덱스를 추가합니다."

용량 관리

  • "사용자 테이블 용량을 읽기 단위 20개, 쓰기 단위 15개로 업데이트"
  • "사용자 테이블에서 EmailIndex GSI 용량을 확장하세요"
  • "주문 테이블에 대한 현재 프로비저닝 용량은 얼마입니까?"

데이터 운영

  • ID가 '123'이고, 이름이 'John Doe'이며, 이메일이 ' john@example.com '인 새 사용자를 삽입하세요.
  • "ID '123'을 가진 사용자를 가져오세요"
  • "사용자 '123'의 이메일 주소를 ' john.doe@example.com '으로 업데이트하세요."
  • "사용자 '123'이 한 모든 주문을 찾으세요"
  • "21세 이상의 모든 사용자를 나열하세요"
  • "EmailIndex를 쿼리하여 이메일 주소가 ' john@example.com '인 사용자를 찾으세요."

구성

AWS 자격 증명 설정

  1. AWS Management Console에서 AWS 액세스 키 ID, 비밀 액세스 키 및 지역을 얻습니다.
  2. 임시 자격 증명(예: IAM 역할)을 사용하는 경우 세션 토큰도 얻습니다.
  3. 이러한 자격 증명에 DynamoDB 작업에 대한 적절한 권한이 있는지 확인하세요.

Claude Desktop과 함께 사용

claude_desktop_config.json 에 다음을 추가하세요:

Docker(추천)

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

건물

도커:

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

개발

자동 다시 로드를 사용하여 개발 모드에서 실행하려면:

npm run dev

특허

이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 즉, MIT 라이선스의 조건에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.

You must be authenticated.

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

모델 컨텍스트 프로토콜을 통해 DynamoDB 리소스를 관리하고, 삭제 기능 없이 테이블 및 인덱스 생성, 용량 관리, 데이터 작업을 지원하여 실수로 데이터가 손실되는 것을 방지합니다.

  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