Mở rộng Amazon Q Developer CLI bằng Model Context Protocol (MCP)

Tác giả: Brian Beach
Ngày phát hành: 29 APR 2025
Chuyên mục: Amazon Aurora, Amazon Q Developer, Announcements, PostgreSQL compatible, RDS for PostgreSQL

Đầu ngày hôm nay, Amazon Q Developer đã công bố hỗ trợ Model Context Protocol (MCP) trong giao diện dòng lệnh (CLI). Các nhà phát triển có thể kết nối các nguồn dữ liệu bên ngoài với Amazon Q Developer CLI bằng cách hỗ trợ MCP để có các phản hồi nhận biết ngữ cảnh tốt hơn. Bằng cách tích hợp các công cụ và lời nhắc (prompts) MCP vào Q Developer CLI, bạn có quyền truy cập vào danh sách mở rộng các tích hợp có sẵn hoặc bất kỳ MCP Server nào hỗ trợ stdio. Ngữ cảnh bổ sung này giúp Q Developer viết mã chính xác hơn, hiểu cấu trúc dữ liệu của bạn, tạo các bài kiểm thử đơn vị (unit tests) phù hợp, tạo tài liệu cơ sở dữ liệu và thực thi các truy vấn chính xác, tất cả mà không cần phát triển mã tích hợp tùy chỉnh. Bằng cách mở rộng Q Developer với các công cụ và lời nhắc MCP, các nhà phát triển có thể thực hiện các tác vụ phát triển nhanh hơn, hợp lý hóa trải nghiệm của nhà phát triển. Tại AWS, chúng tôi cam kết hỗ trợ các giao thức mã nguồn mở phổ biến cho các agent như Model Context Protocol (MCP) do Anthropic đề xuất. Chúng tôi sẽ tiếp tục hỗ trợ nỗ lực này bằng cách mở rộng chức năng này trong các plugin IDE của Amazon Q Developer trong những tuần tới.

Giới thiệu

Tôi luôn tìm kiếm các công cụ và công nghệ có thể hợp lý hóa quy trình làm việc và mở khóa các khả năng mới. Đó là lý do tại sao tôi rất hào hứng với việc bổ sung hỗ trợ Model Context Protocol (MCP) gần đây trong giao diện dòng lệnh (CLI) của Amazon Q Developer. MCP là một giao thức mở chuẩn hóa cách các ứng dụng có thể tích hợp liền mạch với các LLM, cung cấp một cách chung để chia sẻ ngữ cảnh, truy cập các nguồn dữ liệu và kích hoạt chức năng mạnh mẽ dựa trên AI. Bạn có thể đọc thêm về MCP trong phần giới thiệu này.

Q Developer đã có khả năng sử dụng các công cụ được một thời gian. Trước đây tôi đã thảo luận về khả năng chạy các lệnh CLI và mô tả các tài nguyên AWS. Với sự hỗ trợ của Q Developer CLI cho các công cụ và lời nhắc MCP, giờ đây tôi có khả năng thêm các công cụ bổ sung. Ví dụ: mặc dù tôi có khả năng mô tả các tài nguyên AWS của mình, tôi cũng cần mô tả lược đồ cơ sở dữ liệu, định dạng tin nhắn, v.v. để xây dựng một ứng dụng. Hãy xem cách tôi có thể cấu hình MCP để cung cấp ngữ cảnh bổ sung này.

Trong bài đăng này, tôi sẽ cấu hình một MCP server để cung cấp cho Q Developer lược đồ cơ sở dữ liệu của tôi cho một Hệ thống Quản lý Học tập (LMS) đơn giản mà tôi đang xây dựng. Mặc dù Q Developer rất giỏi trong việc viết SQL, nhưng nó không biết lược đồ của cơ sở dữ liệu của tôi. Cấu trúc bảng và các mối quan hệ được lưu trữ trong cơ sở dữ liệu và không phải là một phần của mã nguồn dự án của tôi. Do đó, tôi sẽ sử dụng một MCP server có thể truy vấn lược đồ cơ sở dữ liệu. Cụ thể, tôi đang sử dụng triển khai tham chiếu PostgreSQL chính thức để kết nối với Amazon Relational Database Service (RDS) của tôi. Hãy bắt đầu.

Trước Model Context Protocol

Trước khi giới thiệu hỗ trợ MCP, Q Developer CLI đã cung cấp một bộ công cụ gốc, bao gồm khả năng thực thi các lệnh bash, tương tác với các tệp và hệ thống tệp, và thậm chí thực hiện các lệnh gọi đến các dịch vụ AWS. Tuy nhiên, khi nói đến việc truy vấn cơ sở dữ liệu, CLI bị hạn chế về khả năng của nó.

Ví dụ, trước khi cấu hình MCP server, tôi đã yêu cầu Q Developer “Write a query that lists the students and the number of credits each student is taking.” (Viết một truy vấn liệt kê các sinh viên và số tín chỉ mà mỗi sinh viên đang theo học). Trong hình ảnh sau, bạn có thể thấy rằng Q Developer chỉ có thể cung cấp một truy vấn SQL chung chung, vì nó thiếu kiến thức cụ thể về lược đồ cơ sở dữ liệu cho LMS của tôi.

Screenshot of Amazon Q Developer CLI showing a response to a query request. The response includes explanatory text acknowledging the lack of schema information, followed by a generic SQL query written in green text. The query joins students, student_courses, and courses tables to calculate total credit hours per student, demonstrating Q's limited ability without MCP configuration.

Mặc dù đây là một khởi đầu tuyệt vời, tôi biết rằng Q Developer có thể làm được nhiều hơn thế nếu nó biết lược đồ cơ sở dữ liệu.

Cấu hình Model Context Protocol

Việc giới thiệu hỗ trợ MCP trong Q Developer CLI cho phép tôi dễ dàng cấu hình các MCP server. Tôi cấu hình một hoặc nhiều MCP server trong một tệp gọi là mcp.json. Tôi có thể lưu trữ cấu hình trong thư mục chính của mình (ví dụ: ~/.aws/amazonq/mcp.json) và nó được áp dụng cho tất cả các dự án trên máy của tôi. Ngoài ra, tôi có thể lưu trữ cấu hình trong thư mục gốc của không gian làm việc (ví dụ: .amazonq/mcp.json) để nó được chia sẻ giữa các thành viên dự án. Dưới đây là một ví dụ về cấu hình cho PostgreSQL MCP server.

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

Với MCP server đã được cấu hình, hãy xem Amazon Q Developer nâng cao trải nghiệm của tôi như thế nào.

Sau Model Context Protocol

Đầu tiên, tôi bắt đầu một phiên Q Developer mới và ngay lập tức thấy được những lợi ích. Ngoài các công cụ hiện có, Q Developer giờ đây có quyền truy cập vào PostgreSQL như được hiển thị trong hình ảnh sau. Điều này có nghĩa là tôi có thể dễ dàng khám phá lược đồ cơ sở dữ liệu của mình, hiểu cấu trúc của các bảng, và thậm chí thực thi các truy vấn SQL phức tạp, tất cả mà không cần phải viết bất kỳ mã tích hợp bổ sung nào.

Screenshot of Amazon Q Developer CLI displaying a list of available tools. The tools are categorized into file system tools, bash execution, AWS tools, PostgreSQL database tools, and issue reporting. The PostgreSQL category is highlighted, showing the integration of MCP for database access.

Hãy kiểm tra MCP server bằng cách yêu cầu Q Developer “List the database tables.” (Liệt kê các bảng cơ sở dữ liệu). Như bạn có thể thấy trong ví dụ sau, Q Developer giờ đây hiểu rằng tôi đang hỏi về cơ sở dữ liệu PostgreSQL và sử dụng MCP server để liệt kê ba bảng của tôi: students, courses, và enrollment.

Screenshot of Amazon Q Developer CLI showing a database table listing request and response. The response shows a tool request using list_objects command with JSON parameters, followed by execution status and a list of three tables in the public schema: courses, enrollment, and students.

Hãy quay lại ví dụ từ đầu bài đăng này. Bây giờ, khi tôi yêu cầu Q Developer “Write a query that lists the students and the number of credits each student is taking,” (Viết một truy vấn liệt kê các sinh viên và số tín chỉ mà mỗi sinh viên đang theo học), nó không còn phản hồi bằng một truy vấn chung chung nữa. Thay vào đó, Q Developer mô tả các bảng liên quan trong cơ sở dữ liệu của tôi, tạo truy vấn SQL thích hợp, và sau đó thực thi nó, cung cấp cho tôi kết quả mong muốn.

Screenshot of Amazon Q Developer CLI showing a complete SQL query workflow. The image displays a precise SQL query in green syntax highlighting, followed by a results table showing student credit information, and an explanation of how the query works through five numbered steps. This demonstrates Q's ability to generate, execute, and explain database queries with schema knowledge.

Tất nhiên, Q Developer có thể làm được nhiều hơn là chỉ viết truy vấn. Q Developer có thể sử dụng MCP server để viết mã Java truy cập cơ sở dữ liệu, tạo các bài kiểm thử đơn vị cho tầng dữ liệu, lập tài liệu cho cơ sở dữ liệu, và nhiều hơn nữa. Ví dụ, tôi đã yêu cầu Q Developer “Create an entity-relationship (ER) diagram using Mermaid syntax.” (Tạo một sơ đồ quan hệ thực thể (ER) bằng cú pháp Mermaid). Q Developer đã có thể tạo ra một biểu diễn trực quan về lược đồ cơ sở dữ liệu, giúp tôi hiểu rõ hơn về mối quan hệ giữa các thực thể khác nhau.

Entity-Relationship (ER) diagram generated by Amazon Q Developer. The diagram shows three tables: STUDENTS, COURSES, and ENROLLMENT. Each table is represented by a box containing column names and data types. The ENROLLMENT table links STUDENTS and COURSES with 'enrolls in' and 'has enrolled' relationships. Primary and foreign keys are indicated. This visualizes the database schema structure for the Learning Management System.

Việc tích hợp MCP vào Q Developer CLI đã hợp lý hóa đáng kể quy trình làm việc của tôi bằng cách cho phép tôi thêm các công cụ bổ sung khi cần.

Kết luận

Việc bổ sung hỗ trợ MCP trong Amazon Q Developer CLI cung cấp một cách chuẩn hóa để chia sẻ ngữ cảnh và truy cập các nguồn dữ liệu. Trong bài đăng này, tôi đã chứng minh cách tôi có thể sử dụng tích hợp MCP của Q Developer CLI để nhanh chóng thiết lập kết nối với cơ sở dữ liệu PostgreSQL, khám phá lược đồ và tạo các truy vấn SQL phức tạp mà không cần phải viết bất kỳ mã tích hợp bổ sung nào. Trong tương lai, tôi rất hào hứng muốn xem cách bạn có thể tận dụng MCP để nâng cao hơn nữa quy trình làm việc phát triển của mình. Tôi khuyến khích bạn khám phá các khả năng của MCP và kho lưu trữ AWS MCP Servers trên GitHub.

TAGS: Developer Tools, Development