AWS Türkçe Blog

Amazon Q Developer CLI’yı Model Bağlam Protokolü (MCP) ile Daha Zengin İçerik için Genişletin

Orjinal makale: Link

Amazon Q Developer komut satırı arayüzünde (CLI) Model Bağlam Protokolü (MCP) desteğini duyurdu. Geliştiriciler, daha bağlam odaklı yanıtlar için Amazon Q Developer CLI’ya MCP desteğiyle harici veri kaynaklarını bağlayabilirler. MCP araçlarını ve komutlarını Q Developer CLI’ya entegre ederek önceden oluşturulmuş geniş bir entegrasyon listesine veya stdiodestekleyen herhangi bir MCP Sunucusuna erişim elde edebilirsiniz. Bu ek bağlam Q Developer’ın özel bir entegrasyon kodu geliştirmeye gerek kalmadan daha doğru kod yazmasına, veri yapılarınızı anlamasına, uygun birim testleri oluşturmasına, veritabanı belgeleri oluşturmasına ve hassas sorgular yürütmesine yardımcı olur. Geliştiriciler Q Developer’ı MCP araçları ve komutlarıyla genişleterek geliştirme görevlerini daha hızlı yürütebilir ve böylelikle geliştirici deneyimini kolaylaştırabilirler. AWS olarak Anthropic tarafından önerilen Model Context Protocol (MCP) gibi ajanlar için popüler açık kaynak protokollerini desteklemeye kararlıyız. Önümüzdeki haftalarda bu işlevselliği Amazon Q Developer IDE eklentileri içinde genişleterek bu çabayı desteklemeye devam edeceğiz.

Her zaman iş akışımı kolaylaştıracak ve yeni yetenekler kazandıracak araç ve teknolojileri araştırıyorum. Bu nedenle Amazon Q Developer komut satırı arayüzüne (CLI) yakın zamanda eklenen Model Context Protocol (MCP) desteği beni heyecanlandırdı. MCP, uygulamaların LLM’lerle sorunsuz bir şekilde entegre olmasını standartlaştıran açık bir protokoldür; bağlam paylaşmak, veri kaynaklarına erişmek ve güçlü yapay zeka destekli işlevselliği etkinleştirmek için ortak bir yol sunar. MCP hakkında daha fazla bilgiyi bu giriş bölümünde okuyabilirsiniz.

Q Developer bir süredir araçları kullanma yeteneğine sahip. Daha önce CLI komutlarını çalıştırma ve AWS kaynaklarını tanımlama yeteneğinden bahsetmiştim. Q Developer CLI’ın MCP araç ve komut desteğiyle artık ek araçlar ekleme yeteneğine sahibim. Örneğin AWS kaynaklarımı tanımlama yeteneğim olsa da, bir uygulama oluşturmak için veritabanı şemalarını, mesaj formatlarını vb. de tanımlamam gerekiyor. Bu ek bağlamı sağlamak için MCP’yi nasıl yapılandırabileceğimi görelim.

Bu yazıda üzerinde çalıştığım basit bir Öğrenme Yönetim Sistemi (Learning Management System/LMS) için Q Developer’a veritabanı şemamı sağlamak üzere bir MCP sunucusu yapılandıracağım. Q Developer SQL yazma konusunda harika olsa da, veritabanımın şemasını bilmiyor. Tablo yapısı ve ilişkiler veritabanında yer alıyor ve projemde kaynak kodunun bir parçası değil. Bu nedenle veritabanı şemasını sorgulayabilen bir MCP sunucusu kullanacağım. Özellikle Amazon Relational Database Service (RDS)‘ime bağlanmak için resmi PostgreSQL referans uygulamasını kullanıyorum. Hadi başlayalım.

MCP desteği tanıtılmadan önce Q Developer CLI, bash komutlarını çalıştırma, dosyalar ve dosya sistemiyle etkileşim kurma ve hatta AWS servislerine çağrı yapma yeteneği de dahil olmak üzere bir dizi yerel araç sağlıyordu. Ancak bir veritabanını sorgulamak söz konusu olduğunda CLI’nin yetenekleri sınırlıydı.

Örneğin MCP sunucusunu yapılandırmadan önce Q Developer’a “Öğrencileri ve her öğrencinin aldığı kredi sayısını listeleyen bir sorgu yaz” diye sordum. Aşağıdaki görüntüde görebileceğiniz gibi Q Developer sadece genel bir SQL sorgusu sağlayabildi çünkü LMS’im için veritabanı şeması hakkında özel bir bilgiye sahip değildi.

Amazon Q Developer CLI'nin bir sorgu isteğine verdiği yanıtı gösteren ekran görüntüsü. Yanıt, şema bilgisi eksikliğini kabul eden açıklayıcı metin ve ardından yeşil metinle yazılmış genel bir SQL sorgusu içeriyor. Sorgu, öğrenci başına toplam kredi saatini hesaplamak için öğrenciler, öğrenci_dersler ve dersler tablolarını birleştiriyor, Q'nun MCP yapılandırması olmadan sınırlı yeteneğini gösteriyor.

Bu iyi bir başlangıç olsa da Q developer’ın veritabanı şemasını bilmesi durumunda çok daha fazlasını yapabileceğini biliyorum.

Q Developer CLI’ya eklenen MCP desteği MCP sunucularını kolayca yapılandırmamı sağlıyor. Bir veya daha fazla MCP sunucusunu mcp.json adlı bir dosyada yapılandırıyorum. Yapılandırmayı ana dizinimde saklayabilir (örn. ~/.aws/amazonq/mcp.json) ve bu şekilde makinedeki tüm projelere uygulayabilirim. Alternatif olarak yapılandırmayı çalışma alanı kök dizininde (örn. .amazonq/mcp.json) saklayarak proje üyeleri arasında paylaşılmasını sağlayabilirim. İşte PostgreSQL MCP sunucusu için bir yapılandırma örneği.

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

MCP sunucusu yapılandırıldıktan sonra Amazon Q Developer’ın deneyimimi nasıl geliştirdiğine bakalım.

İlk olarak yeni bir Q Developer oturumu başlatıyorum ve faydalarını hemen görüyorum. Mevcut araçlara ek olarak Q Developer artık aşağıdaki görselde görüldüğü gibi PostgreSQL’e erişebiliyor. Bu, herhangi bir ek entegrasyon kodu yazmak zorunda kalmadan veritabanımın şemasını kolayca keşfedebileceğim, tabloların yapısını anlayabileceğim ve hatta karmaşık SQL sorguları çalıştırabileceğim anlamına geliyor.

Amazon Q Developer CLI'nin kullanılabilir araçların bir listesini gösteren ekran görüntüsü. Araçlar dosya sistemi araçları, bash çalıştırma, AWS araçları, PostgreSQL veritabanı araçları ve sorun raporlama olarak kategorilere ayrılmış. PostgreSQL kategorisi vurgulanmış, veritabanı erişimi için MCP entegrasyonunu gösteriyor.

Q Developer’a “Veritabanı tablolarını listele” diyerek MCP sunucusunu test edelim. Aşağıdaki örnekte görebileceğiniz gibi Q Developer şimdi PostgreSQL veritabanı hakkında soru sorduğumu anlıyor ve üç tablomu listelemek için MCP sunucusunu kullanıyor: students, courses ve enrollment.

Amazon Q Developer CLI'nin bir veritabanı tablo listeleme isteği ve yanıtını gösteren ekran görüntüsü. Yanıt, JSON parametreleriyle list_objects komutunu kullanan bir araç isteği, ardından yürütme durumu ve public şemasındaki üç tablonun listesini gösteriyor: courses, enrollment ve students.

Bu yazıdaki daha önceki örneğe geri dönelim. Şimdi Q Developer’a “Öğrencileri ve her öğrencinin aldığı kredi sayısını listeleyen bir sorgu yaz” dediğimde, artık genel bir sorguyla yanıt vermiyor. Bunun yerine önce veritabanımdaki ilgili tabloları açıklıyor, uygun SQL sorgusunu oluşturuyor ve ardından çalıştırarak bana istediğim sonuçları sağlıyor.

Amazon Q Developer CLI'nin tam bir SQL sorgu iş akışını gösteren ekran görüntüsü. Görüntü, yeşil sözdizimi vurgulaması ile kesin bir SQL sorgusu, ardından öğrenci kredi bilgilerini gösteren bir sonuç tablosu ve sorgunun beş numaralı adım aracılığıyla nasıl çalıştığına dair bir açıklama gösteriyor. Bu, Q'nun şema bilgisiyle veritabanı sorguları oluşturma, yürütme ve açıklama yeteneğini gösteriyor.

Elbette Q Developer sadece sorgu yazmaktan çok daha fazlasını yapabilir. Q Developer, MCP sunucusunu kullanarak veritabanına erişen Java kodu yazabilir, veri katmanı için birim testleri oluşturabilir, veritabanını belgeleyebilir ve çok daha fazlasını yapabilir. Örneğin Q Developer’a “Mermaid sözdizimini kullanarak bir varlık-ilişki (ER) diyagramı oluştur” dedim. Q Developer, çeşitli varlıklar arasındaki ilişkileri daha iyi anlamama yardımcı olan veritabanı şemasının görsel bir temsilini oluşturabildi.

Amazon Q Developer tarafından oluşturulan Varlık-İlişki (ER) diyagramı. Diyagram üç tabloyu gösteriyor: STUDENTS, COURSES ve ENROLLMENT. Her tablo, sütun adları ve veri türlerini içeren bir kutu ile temsil edilir. ENROLLMENT tablosu, STUDENTS ve COURSES tablolarını 'enrolls in' ve 'has enrolled' ilişkileriyle bağlar. Birincil ve yabancı anahtarlar belirtilmiştir. Bu, Öğrenme Yönetim Sistemi için veritabanı şema yapısını görselleştirir.

MCP’nin Q Developer CLI ile entegrasyonu ihtiyaç duyduğumda ek araçlar ekleme imkanı vererek iş akışımı önemli ölçüde kolaylaştırdı.

Amazon Q Developer CLI’ya eklenen MCP desteği, bağlam paylaşmak ve veri kaynaklarına erişmek için standartlaştırılmış bir yol sağlıyor. Bu yazıda Q Developer CLI’nin MCP entegrasyonunu kullanarak bir PostgreSQL veritabanına hızlı bir şekilde bağlantı kurma, şemayı keşfetme ve herhangi bir ek entegrasyon kodu yazmak zorunda kalmadan karmaşık SQL sorguları oluşturma sürecini gösterdim. İleriye dönük olarak MCP’yi geliştirme iş akışınızı daha da iyileştirmek için nasıl kullanabileceğinizi görmekten heyecan duyuyorum.

Daha fazlası için diğer MCP yeteneklerini keşfedebilir ve GitHub’daki AWS MCP Servers reposunu inceleyebilirsiniz.