Amazon Web Services 한국 블로그

Amazon Q Developer CLI, 모델 컨텍스트 프로토콜(MCP) 지원 시작

오늘 부터 Amazon Q Developer 명령줄 인터페이스 (CLI)에서 모델 컨텍스트 프로토콜(Model Context Protocol , MCP)을 지원하기 시작했습니다. 여러분들은 이제 외부 데이터 소스를 Amazon Q Developer CLI에 연결하여 더 많은 컨텍스트 인식 기반 응답을 제공할 수 있습니다. MCP 도구 및 프롬프트를 Q Developer CLI에 통합하면 stdio를 지원하는 사전 구축된 모든 MCP 서버를 사용할 수 있습니다. 이러한 추가 컨텍스트는 Q Developer가 사용자 지정 통합 코드를 개발할 필요 없이 보다 정확한 코드를 작성하고, 데이터 구조를 이해하고, 적절한 단위 테스트를 생성하고, 데이터베이스 문서를 생성하고, 정확한 쿼리를 실행하는 데 도움이 됩니다.

Q Developer를 MCP 도구 및 프롬프트로 확장함으로써 개발자는 개발 작업을 더 빠르게 실행하고 개발자 경험을 간소화할 수 있습니다. AWS는 Anthropic에서 제안한 MCP 처럼 널리 사용되는 오픈 소스 프로토콜을 지원하기 위해 최선을 다하고 있습니다. 앞으로 몇 주 안에 Amazon Q Developer IDE 플러그인 내에서 이 기능을 확장하여 이러한 노력을 계속 지원할 것입니다.

우리는 생성형 AI 워크플로를 간소화하고 새로운 기능을 활용할 수 있는 도구와 기술을 찾고 있습니다. 모델 컨텍스트 프로토콜은 애플리케이션이 대규모 언어모델(LLM)과 원활하게 통합되는 방법을 표준화하는 개방형 프로토콜로, 컨텍스트를 공유하고, 데이터 소스에 액세스하고, 강력한 AI 기반 기능을 활성화하는 일반적인 방법을 제공합니다.

이제 Q Developer CLI에서 MCP 도구 및 프롬프트 지원으로 이제 다양한 도구를 추가할 수 있습니다. 예를 들어, AWS 리소스를 설명할 뿐만 아니라 애플리케이션을 구축하기 위해 데이터베이스 스키마, 메시지 형식 등도 설명해야 합니다. 이러한 추가 컨텍스트를 제공하도록 MCP를 구성하는 방법을 살펴보겠습니다.

이 게시물에서는 Q Developer에 작업중인 간단한 LMS (Learning Management System)에 대한 데이터베이스 스키마를 제공하도록 MCP 서버를 구성합니다. Q Developer는 SQL 작성은 잘하지만 내 데이터베이스의 스키마를 모릅니다. 테이블 구조와 관계는 데이터베이스에 저장되며 내 프로젝트의 소스 코드의 일부가 아닙니다. 따라서 데이터베이스 스키마를 쿼리 할 수있는 MCP 서버를 사용하려고합니다.

1. 이전의 접근 방식

MCP 지원이 도입되기 전에는 Q Developer CLI에서 bash 명령을 실행하여, 파일 및 파일 시스템과 상호 작용하고, AWS 서비스를 호출하는 기능을 포함하여 일련의 기본 도구 세트를 설치했습니다. 그러나 데이터베이스를 쿼리할 때는 CLI의 기능이 제한되었습니다.

예를 들어, MCP 서버를 구성하기 전에는 Q Developer에게 직접 “학생과 각 학생이 수강하는 학점 수를 나열하는 쿼리를 작성하십시오”라고 요청했습니다. 다음 이미지에서 Q Developer는 내 LMS의 데이터베이스 스키마에 대한 특정 지식이 부족하기 때문에 일반 SQL 쿼리만 제공할 수 있음을 알 수 있습니다.

쿼리 요청에 대한 응답을 보여주는 Amazon Q Developer CLI의 스크린샷. 응답에는 스키마 정보가 없음을 인정하는 설명 텍스트와 녹색 텍스트로 작성된 일반 SQL 쿼리가 포함됩니다. 이 쿼리는 students, student_courses 및 courses 테이블을 조인하여 학생당 총 학점 시간을 계산하여 MCP 구성 없이 Q의 제한된 능력을 보여줍니다.

이것은 훌륭한 시작이지만 Q 개발자가 데이터베이스 스키마를 안다면 훨씬 더 많은 일을 할 수 있을 것입니다.

2. MCP 설정하기

Q Developer CLI에 MCP 지원이 도입됨에 따라 MCP 서버를 쉽게 구성할 수 있게 되었습니다. mcp.json라는 파일에 하나 이상의 MCP 서버를 구성할 수 있습니다. 홈 디렉토리에 (예 : ~/.aws/amazonq/mcp.json) 설정 파일을 생성합니다. 이 설정은 내 컴퓨터의 모든 프로젝트에 적용됩니다. 또는, 작업 공간 루트(예 : .amazonq/mcp.json)에 설정을 저장할 수 있습니다. 이 경우, 프로젝트 구성원 간에 공유됩니다.

아래는 PostgreSQL MCP 서버에 대한 설정의 예입니다.

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://USERNAME:PASSWORD@HOST:5432/DBNAME"
      ]
    }
  }
}

이제 MCP 서버를 구성했으니 Q Developer에서 어떻게 사용해 보는 지 살펴 보겠습니다.

3. PostgreSQL MCP 서버 사용하기

먼저 Q Developer CLI를 실행하고, 어떤 MCP 도구를 사용할 수 있는지 살펴볼 수 있습니다. 우리가 구성한 MCP 서버를 통해 4번과 같이 PostgreSQL에 액세스할 수 있습니다. 즉, 추가 통합 코드를 작성하지 않고도 데이터베이스의 스키마를 쉽게 탐색하고, 테이블의 구조를 이해하고, 복잡한 SQL 쿼리를 실행할 수 있습니다.

사용 가능한 도구 목록을 표시하는 Amazon Q 개발자 CLI의 스크린샷입니다. 도구는 파일 시스템 도구, bash 실행, AWS 도구, PostgreSQL 데이터베이스 도구 및 문제 보고로 분류됩니다. PostgreSQL 범주가 강조 표시되어 데이터베이스 액세스를 위한 MCP의 통합을 보여 줍니다.

이제 Q Developer에게 “데이터베이스 테이블을 나열”하도록 요청하여 MCP 서버를 테스트해 보겠습니다. 아래 사례에서 볼 수 있듯이 Q Developer는 PostgreSQL 데이터베이스에 대해 묻는 것을 이해하고 MCP 서버를 사용하여 students, coursesenrollment의 세 가지 테이블을 나열합니다.

요청 및 응답을 나열하는 데이터베이스 테이블을 보여주는 Amazon Q Developer CLI의 스크린샷. 응답에는 JSON 매개 변수와 함께 list_objects 명령을 사용하는 도구 요청, 실행 상태 및 공개 스키마의 세 가지 테이블(courses, enrollment 및 students) 목록이 표시됩니다.

이전에 했었던 예제로 돌아가 보겠습니다. 이제 Q Developer에게 “학생과 각 학생이 수강하는 학점 수를 나열하는 쿼리를 작성하십시오”라고 요청하면 더 이상 일반 쿼리로 응답하지 않습니다. 대신 Q Developer는 먼저 데이터베이스의 관련 테이블을 설명하고 적절한 SQL 쿼리를 생성한 다음 실행하여 원하는 결과를 제공합니다.

전체 SQL 쿼리 워크플로를 보여주는 Amazon Q Developer CLI의 스크린샷. 이 이미지에는 녹색 구문 강조 표시로 정확한 SQL 쿼리가 표시되고, 그 뒤에 학생 학점 정보를 보여주는 결과 테이블과 쿼리가 번호가 매겨진 5단계를 통해 작동하는 방식에 대한 설명이 표시됩니다. 이는 스키마 지식을 사용하여 데이터베이스 쿼리를 생성, 실행 및 설명하는 Q의 능력을 보여줍니다.

물론 Q Developer는 쿼리를 작성하는 것 이상의 일을 할 수 있습니다. Q Developer는 MCP 서버를 사용하여 데이터베이스에 액세스하는 Java 코드를 작성하고, 데이터 계층에 대한 단위 테스트를 생성하고, 데이터베이스를 문서화하는 등의 작업을 수행할 수 있습니다.

예를 들어, Q Developer에게 “Mermaid 구문을 사용하여 ER(엔터티 관계) 다이어그램을 생성”하도록 요청했습니다. Q Developer는 데이터베이스 스키마의 시각적 표현을 생성할 수 있어 다양한 엔터티 간의 관계를 더 잘 이해할 수 있습니다.

Amazon Q Developer에서 생성한 ER(Entity-Relationship) 다이어그램입니다. 다이어그램에는 STUDENTS, COURSES 및 ENROLLMENT의 세 가지 테이블이 표시됩니다. 각 테이블은 열 이름과 데이터 형식을 포함하는 상자로 표시됩니다. ENROLLMENT 테이블은 STUDENTS와 COURSES를 'enrolls in' 및 'has enrolled' 관계로 연결합니다. 기본 키와 외래 키가 표시됩니다. 이것은 학습 관리 시스템의 데이터베이스 스키마 구조를 시각화합니다.

MCP를 Q Developer CLI에 통합하면 필요에 따라 추가 도구를 추가할 수 있어 워크플로가 크게 간소화됩니다.

더 자세한 정보는 Q Developer CLI에서 MCP 활용하기를 참고하시고, AWS MCP Servers 리포지터리에서 더 다양한 AWS 관련 MPC 서버를 찾아서 사용해 보세요.

– Brian Beach

이 글은 AWS DevOps & Developer Productivity Blog의 Extend the Amazon Q Developer CLI with Model Context Protocol (MCP) for Richer Context를 한국어로 번역 및 편집한 글입니다.