Skip to content

Latest commit

 

History

History
203 lines (127 loc) · 11.3 KB

File metadata and controls

203 lines (127 loc) · 11.3 KB

Vaka İncelemesi: REST API'yi API Yönetiminde MCP sunucusu olarak ortaya çıkarma

Azure API Management, API Uç Noktalarınızın üzerinde bir Geçit sağlayan bir hizmettir. Azure API Management’ın çalışma şekli, API'lerinizin önünde bir vekil gibi hareket etmesi ve gelen isteklerle ne yapılacağına karar vermesidir.

Bunu kullanarak, şunlar gibi birçok özelliği eklersiniz:

  • Güvenlik, API anahtarlarından JWT'ye ve yönetilen kimliğe kadar her şeyi kullanabilirsiniz.
  • Oran sınırlama (rate limiting), belirli bir zaman birimi başına kaç çağrının geçmesine izin verileceğine karar verebilme harika bir özelliktir. Bu, tüm kullanıcıların mükemmel bir deneyim yaşamasını sağlarken servisinizin isteklerle aşırı yüklenmemesine de yardımcı olur.
  • Ölçeklendirme ve Yük dengeleme. Yükü dengelemek için birden çok uç nokta yapılandırabilir ve "yük dengeleme" yöntemini de seçebilirsiniz.
  • Anlamsal önbellekleme gibi AI özellikleri, token limiti ve token izleme ve daha fazlası. Bunlar, yanıt hızını artıran ve token harcamanızı takip etmenize yardımcı olan harika özelliklerdir. Buradan daha fazla bilgi edinin.

Neden MCP + Azure API Yönetimi?

Model Context Protocol, ajan tabanlı AI uygulamaları için ve araçlar ile verileri tutarlı bir şekilde ortaya çıkarmak için hızla standart haline geliyor. Azure API Management, API’leri "yönetmeniz" gerektiğinde doğal bir tercihtir. MCP Sunucuları genellikle istekleri bir araca çözümlemek için diğer API’lerle entegre olur. Bu nedenle Azure API Management ile MCP’yi birleştirmek çok mantıklıdır.

Genel Bakış

Bu spesifik kullanım senaryosunda API uç noktalarını bir MCP Sunucusu olarak ortaya çıkarmayı öğreneceğiz. Böylece, bu uç noktaları kolayca bir ajan tabanlı uygulamanın parçası haline getirebilir ve aynı zamanda Azure API Management’ın özelliklerinden faydalanabiliriz.

Temel Özellikler

  • Erişime açmak istediğiniz uç nokta yöntemlerini seçersiniz.
  • Ek özellikler, API'niz için politika bölümünde yapılandırdıklarınıza bağlıdır. Ancak burada oran sınırlama eklemenin nasıl yapılacağını göstereceğiz.

Ön Adım: Bir API İçe Aktarma

Azure API Management’ta halihazırda bir API'nız varsa harika, bu adımı atlayabilirsiniz. Yoksa, şu bağlantıya bakın, Azure API Management'a API içe aktarma.

API'yi MCP Sunucusu olarak ortaya çıkarma

API uç noktalarını ortaya çıkarmak için şu adımları izleyelim:

  1. Azure Portal'a gidin ve şu adrese erişin: https://portal.azure.com/?Microsoft_Azure_ApiManagement=mcp API Yönetimi örneğinize gidin.

  2. Sol menüde, APIs > MCP Servers > + Create new MCP Server seçeneğini seçin.

  3. API’de, MCP sunucusu olarak ortaya çıkarılacak bir REST API seçin.

  4. Araç olarak ortaya çıkarılacak bir veya birden çok API İşlem (Operation) seçin. Tüm işlemleri veya sadece belirli işlemleri seçebilirsiniz.

    Açığa çıkarılacak yöntemleri seçin

  5. Create seçeneğine tıklayın.

  6. Menüden APIs ve MCP Servers seçeneklerine gidin, aşağıdakini görmelisiniz:

    Ana ekranda MCP Sunucusunu görün

    MCP sunucusu oluşturuldu ve API işlemleri araç olarak ortaya çıkarıldı. MCP sunucusu MCP Servers bölümünde listelenir. URL sütunu, test etmek veya bir istemci uygulaması içinde çağırmak için kullanabileceğiniz MCP sunucusunun uç noktasını gösterir.

İsteğe bağlı: Politikaları yapılandırma

Azure API Management, uç noktalarınız için farklı kurallar belirlediğiniz temel olarak politikalar (policies) kavramına sahiptir, örneğin oran sınırlama veya anlamsal önbellekleme gibi. Bu politikalar XML formatında yazılır.

İşte MCP Sunucunuzda oran sınırlama politikası kurmanın yolu:

  1. Portalda, APIs altında MCP Servers seçin.

  2. Oluşturduğunuz MCP sunucusunu seçin.

  3. Sol menüde MCP altında Policies seçin.

  4. Politika düzenleyicide MCP sunucusunun araçlarına uygulamak istediğiniz politikaları ekleyin veya düzenleyin. Politikalar XML formatında tanımlanır. Örneğin, MCP sunucusunun araçlarına yapılan çağrıları sınırlandırmak için bir politika ekleyebilirsiniz (bu örnekte, istemci IP adresi başına 30 saniyede 5 çağrı). Aşağıdaki XML oran sınırlaması sağlar:

     <rate-limit-by-key calls="5" 
       renewal-period="30" 
       counter-key="@(context.Request.IpAddress)" 
       remaining-calls-variable-name="remainingCallsPerIP" 
    />

    İşte politika düzenleyicisinin bir resmi:

    Politika düzenleyicisi

Deneyin

MCP Sunucumuzun beklendiği gibi çalıştığını doğrulayalım.

Bunun için Visual Studio Code ve GitHub Copilot'un Agent modu kullanılacaktır. MCP sunucusunu mcp.json dosyasına ekleyeceğiz. Böylece Visual Studio Code, ajan özellikli bir istemci olarak davranacak ve son kullanıcılar bir istem yazıp bu sunucu ile etkileşimde bulunabilecek.

MCP sunucusunu Visual Studio Code’a nasıl ekleyeceğimize bakalım:

  1. Komut Paletinden MCP: Add Server komutunu kullanın.

  2. İstendiğinde sunucu türünü seçin: HTTP (HTTP veya Server Sent Events).

  3. API Management içindeki MCP sunucusunun URL'sini girin. Örnek: https://.azure-api.net/-mcp/sse (SSE uç noktası için) veya https://.azure-api.net/-mcp/mcp (MCP uç noktası için), taşıma aracı farkının /sse veya /mcp olduğunu unutmayın.

  4. İstediğiniz bir sunucu kimliği girin. Bu önemli bir değer değildir ama bu sunucu örneğinin ne olduğunu hatırlamanıza yardımcı olur.

  5. Yapılandırmayı çalışma alanı ayarlarına mı yoksa kullanıcı ayarlarına mı kaydedeceğinizi seçin.

  • Çalışma alanı ayarları - Sunucu yapılandırması, sadece geçerli çalışma alanında kullanılabilen bir .vscode/mcp.json dosyasına kaydedilir.

    mcp.json

    "servers": {
        "APIM petstore" : {
            "type": "sse",
            "url": "url-to-mcp-server/sse"
        }
    }

    ya da taşıma olarak streaming HTTP seçerseniz, biraz farklı olur:

    "servers": {
        "APIM petstore" : {
            "type": "http",
            "url": "url-to-mcp-server/mcp"
        }
    }
  • Kullanıcı ayarları - Sunucu yapılandırması, küresel settings.json dosyanıza eklenir ve tüm çalışma alanlarında kullanılabilir. Yapılandırma aşağıdakine benzer:

    Kullanıcı ayarı

  1. Ayrıca yapılandırmaya, Azure API Management’a doğru düzgün kimlik doğrulaması için bir başlık eklemeniz gerekir. Ocp-Apim-Subscription-Key adlı bir başlık kullanılır.

    • Ayarlara nasıl ekleyebileceğiniz:

    Kimlik doğrulama için başlık ekleme, bu, sizden Azure API Management örneğiniz için Azure Portal'da bulabileceğiniz API anahtarı değerini girmeniz istenen bir istem görüntülenmesini sağlar.

    • Bunu mcp.json dosyasına eklemek için şöyle ekleyebilirsiniz:
    "inputs": [
      {
        "type": "promptString",
        "id": "apim_key",
        "description": "API Key for Azure API Management",
        "password": true
      }
    ]
    "servers": {
        "APIM petstore" : {
            "type": "http",
            "url": "url-to-mcp-server/mcp",
            "headers": {
                "Ocp-Apim-Subscription-Key": "Bearer ${input:apim_key}"
            }
        }
    }

Agent modunu kullanma

Şimdi ya ayarlarda ya da .vscode/mcp.json içerisinde yapılandırmayı tamamladık. Şimdi deneyelim.

Araçların listelendiği aşağıdaki gibi bir Araçlar simgesi olmalıdır:

Sunucudan araçlar

  1. Araçlar simgesine tıklayın, aşağıdaki gibi bir araç listesi görmelisiniz:

    Araçlar

  2. Sohbete bir istem girerek aracı çağırın. Örneğin, bir sipariş hakkında bilgi almak için bir araç seçtiyseniz, ajandan sipariş hakkında sorabilirsiniz. İşte örnek bir istem:

    get information from order 2
    

    Size bir araçtırma uyarısı ile bir araç simgesi gösterilecek. Aracı çalıştırmaya devam etmeyi seçin, aşağıdaki gibi bir çıktı görmelisiniz:

    İstem sonucundan çıktı

    Yukarıda gördüğünüz, kurduğunuz araçlara bağlıdır, ancak amaç yukarıdaki gibi metinsel bir yanıt almaktır

Referanslar

Daha fazla nasıl öğrenebileceğiniz:

Sonraki Ne Var


Feragatname:
Bu belge, AI çeviri servisi Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba gösterilse de, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen unutmayınız. Orijinal belge, kendi dilinde otoriter kaynak olarak kabul edilmelidir. Önemli bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımı sonucunda oluşabilecek yanlış anlamalar veya yanlış yorumlamalar nedeniyle sorumluluk kabul edilmemektedir.