Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

MCP

LibreChat'in harici araçlar, veri kaynakları ve özel hizmetlerle sorunsuz entegrasyon sağlamak için Model Context Protocol (MCP) özelliğinden nasıl yararlandığını öğrenin.

Model Context Protocol (MCP), uygulamaların Büyük Dil Modellerine (LLM'ler) bağlam sağlama biçimini standartlaştıran açık bir protokoldür. MCP'yi "Yapay Zekanın USB-C'si" olarak düşünün; tıpkı USB-C'nin elektronik cihazlar için evrensel bir bağlantı standardı sağlaması gibi, MCP de yapay zeka modellerini çeşitli araçlara, veri kaynaklarına ve hizmetlere bağlamak için standartlaştırılmış bir yol sunar.

LibreChat, yapay zeka temsilcilerinizin yapabileceklerini önemli ölçüde genişletmek için MCP'den yararlanır; bu sayede dosya sistemi erişiminden web tarayıcılarına, özel API'lerden özel iş araçlarına kadar her şeyi entegre etmenize olanak tanır.

MCP Neden Önemlidir

LLM'ler yerleşik yetenekleriyle sınırlıdır. MCP ile LibreChat, bu duvarları şu şekilde yıkar:

  • Herhangi bir araca veya hizmete bağlanma (bir MCP sunucusu sağlayan)
  • Entegrasyonları standartlaştırma, böylece her araç için LibreChat'in kodunu düzenlemenize gerek kalmaz
  • Çok kullanıcılı ortamları uygun kimlik doğrulama ve izolasyon ile destekleme
  • Dinamik ve kullanıma hazır entegrasyonlardan oluşan büyüyen bir ekosistem sunar

LibreChat'te MCP Nasıl Çalışır

LibreChat, MCP sunucularını kullanmak için sohbet alanı veya ajanlar olmak üzere iki yol sunar.

MCP sunucularını librechat.yaml dosyanızda manuel olarak yapılandırabilir veya smithery.ai kullanarak MCP sunucularını bulup librechat.yaml dosyasına yükleyebilirsiniz (aşağıdaki örneğe bakın). Bir MCP sunucusu eklediğiniz veya düzenlediğiniz her seferinde, bağlantıları başlatmak için LibreChat'i yeniden başlatmanız gerekecektir.

OAuth Geri Çağırma URL'si

OAuth özellikli MCP sunucuları için LibreChat geri çağırma (callback) URL'si şudur:

${DOMAIN_SERVER}/api/mcp/<server-name>/oauth/callback

<server-name>, librechat.yaml dosyasındaki mcpServers altında kullanılan anahtar veya MCP Ayarları arayüzünde oluşturulan sunucu adıdır. Örneğin, DOMAIN_SERVER=https://chat.example.com değerine sahip salesforce adlı bir sunucu, https://chat.example.com/api/mcp/salesforce/oauth/callback adresini kullanır.

Bu tam geri çağırma (callback) URL'sini OAuth sağlayıcısına kaydedin. Yerel Docker kurulumları genellikle temel URL olarak http://localhost:3080 adresini kullanır.

Sohbet Alanında

Sohbet Alanındaki MCP Araçları

LibreChat, geleneksel endpoint'leri (OpenAI, Anthropic, Google, Bedrock vb.) kullanırken yapılandırılmış MCP sunucularını doğrudan sohbet alanında görüntüler:

  • Önce herhangi bir ajan olmayan endpoint'i ve araç uyumlu bir modeli seçin
  • MCP sunucuları, sohbet arayüzünde metin girişinizin altında bir açılır menüde görünür
  • Seçildiğinde, o sunucudaki tüm araçlar mevcut modeliniz için kullanılabilir hale gelir
  • Bir ajan oluşturmaya gerek kalmadan MCP araçlarına hızlı erişim sağlayarak aynı anda birden fazla sunucunun kullanılmasına olanak tanır

MCP sunucularının sohbet açılır menüsünde görünmesini devre dışı bırakmak (yalnızca aracı olarak tutmak) için, yapılandırmanızda chatMenu: false ayarını yapın:

mcpServers:
  internal-tools:
    command: npx
    args: ['-y', 'internal-mcp-server']
    chatMenu: false # Only available in agent builder

Ajanlar ile

MCP sunucuları, LibreChat Ajanları ile sorunsuz bir şekilde entegre olur:

  1. Bir ajan oluşturun veya düzenleyin
  2. Agent Builder panelinden Araçlar İletişim Kutusunu açmak için "Add MCP Server Tools" öğesine tıklayın
  3. MCP sunucularını eklendikten sonra seçin, her biri tek bir girdi olarak görünür
  4. Ekleme yaptıktan sonra bireysel araçları etkinleştirerek/devre dışı bırakarak temsilcinizin yeteneklerine ince ayar yapın
  5. Ajanınızı kaydedin

Ajan Oluşturucu'da MCP Araçları

Bu üst düzey organizasyon, arayüzü yönetilebilir kılar; 20'den fazla araca sahip sunucular (Spotify gibi) bile, ayrıntılı kontrol için genişletilebilen tek bir girdi olarak görünür.

Temel Yapılandırma

MCP sunucularını librechat.yaml dosyanıza manuel olarak ekleyin:

mcpServers:
  # ClickHouse Cloud
  clickhouse-cloud:
    type: streamable-http
    url: https://mcp.clickhouse.cloud/mcp

  # File system access
  filesystem:
    command: npx
    args:
      - -y
      - '@modelcontextprotocol/server-filesystem'
      - /path/to/your/documents

  # Web browser automation
  puppeteer:
    command: npx
    args:
      - -y
      - '@modelcontextprotocol/server-puppeteer'

  # Production-ready cloud service
  business-api:
    type: streamable-http
    url: https://api.yourbusiness.com/mcp
    headers:
      X-User-ID: '{{LIBRECHAT_USER_ID}}'
      Authorization: 'Bearer ${API_TOKEN}'
    timeout: 30000
    serverInstructions: true

Arayüzde MCP Sunucuları Ekleme

Ayrıca, herhangi bir yapılandırma dosyasını düzenlemenize veya sunucuyu yeniden başlatmanıza gerek kalmadan, doğrudan LibreChat arayüzünden MCP sunucuları ekleyebilir ve yapılandırabilirsiniz.

Adım 1: MCP Ayarları Panelini Açın

Sağ kenar çubuğundan MCP Settings paneline gidin. Burada mevcut tüm MCP sunucularını ve yenilerini eklemek için bir + düğmesini göreceksiniz.

MCP Ayarlar Paneli

Adım 2: Sunucu Ayrıntılarını Doldurun

+ düğmesine basın ve MCP sunucu adınızı, açıklamanızı, URL'nizi, taşıma türünüzü ve kimlik doğrulama yönteminizi doldurun, ardından Create düğmesine tıklayın.

MCP Sunucusu Ekleme İletişim Kutusu

Yeni sunucunuz, bir onay bildirimi ile birlikte MCP Settings panelinde görünecektir.

MCP Sunucusu Başarıyla Oluşturuldu

Adım 3: Bağlantı Durumunu Kontrol Edin ve Kimlik Doğrulayın

Yeni sunucunuz için bağlantı durumu göstergesini inceleyin. Sunucu OAuth kimlik doğrulaması gerektiriyorsa, durum bağlantısı kesilmiş olarak görünecektir. Kimlik doğrulama akışını başlatmak için sunucunun kimlik doğrula/bağlan düğmesine tıklayın (bunu, sohbet açılır menüsünden doğrudan MCP sunucusuna tıklayarak veya bağlantı durumu hakkında daha fazla bilgi içeren bir iletişim kutusuna gitmek için önce bağlantı simgesine tıklayarak yapabilirsiniz).

Bağlantı Durumu - Bağlantı Kesildi

Başlatıldığında, durum göstergesi kimlik doğrulamanın devam ettiğini gösterecek şekilde güncellenecektir.

Bağlantı Durumu - Kimlik Doğrulanıyor

Adım 4: OAuth Sekmesinde Devam Edin

OAuth sağlayıcısı için yeni bir tarayıcı sekmesi açılacaktır. Geri çağırma (callback) URL'sini doğrulayın ve LibreChat'i yetkilendirmek için Continue düğmesine tıklayın.

OAuth Continue Prompt

Adım 5: Kimlik Doğrulama Başarılı

Kimlik doğrulamasının ardından bir başarı onayı göreceksiniz. Bu pencere otomatik olarak kapanacak ve sizi tekrar LibreChat'e yönlendirecektir.

Kimlik Doğrulama Başarılı

Adım 6: Sunucu Kullanıma Hazır

LibreChat, başarılı kimlik doğrulamasını onaylar ve konuşmanız içinde kullanmak üzere MCP sunucusunu otomatik olarak seçer. Sunucu artık bağlı durum göstergesini gösterir ve MCP Servers açılır menüsünde işaretlenmiş durumdadır.

MCP Sunucusu Kimliği Doğrulandı ve Otomatik Seçildi

Yeni MCP sunucunuz, araçlarını herhangi bir ajana ekleyebileceğiniz ve hangi araç alt kümesine izin verileceğini özelleştirebileceğiniz Agent Builder içinde de mevcuttur.

MCP Server Available in Agent Builder

UI Üzerinden Oluşturulan Sunucular için Kimlik Bilgisi Değişkenleri

Arayüz üzerinden bir MCP sunucusu eklerken, kullanıcılardan kendi API anahtarlarını sağlamalarını zorunlu tutabilirsiniz. MCP Sunucu Oluşturucu iletişim kutusunun Authentication bölümünde "API Key" seçeneğini belirleyin ve "User provides key" kutucuğunu işaretleyin. Başlık formatını (Bearer, Basic veya Custom) seçin ve sunucuyu kaydedin.

Arka planda LibreChat, otomatik olarak MCP_API_KEY adında bir customUserVars girdisi oluşturur ve uygun başlık şablonunu (örneğin, Authorization: Bearer {{MCP_API_KEY}}) yapılandırır. Her kullanıcı, bir temsilciyi (agent) yapılandırırken kendi anahtarını MCP Araç Seçim İletişim Kutusu aracılığıyla sağlar; bu, YAML ile tanımlanmış customUserVars için kullanılan arayüzün aynısıdır.

Güvenlik nedeniyle, arayüz üzerinden oluşturulan (veritabanı kaynaklı) MCP sunucuları yalnızca customUserVars yer tutucularını ({{VAR_NAME}}) çözümleyebilir. Sunucu tarafı ortam değişkenleri (${ENV_VAR}), kullanıcı profili alanları ({{LIBRECHAT_USER_*}}) ve OIDC belirteçleri ({{LIBRECHAT_OPENID_*}}), sunucu sırlarına veya diğer kullanıcıların verilerine yetkisiz erişimi önlemek amacıyla kasıtlı olarak engellenmiştir. Yer tutucu desteğinin tamamından yararlanmak için sunucuyu bunun yerine librechat.yaml dosyasında yapılandırın.

Smithery ile MCP Sunucuları Ekleme

Smithery.ai, LibreChat için MCP sunucularını keşfetmenin ve kurmanın kolaylaştırılmış bir yolunu sunar. Başlamak için şu adımları izleyin:

Adım 1: MCP Sunucularını Arayın

smithery.ai adresini ziyaret edin ve LibreChat örneğinize eklemek istediğiniz MCP sunucusunu arayın.

Smithery Arama Arayüzü

Adım 2: MCP Sunucunuzu Seçin

Arama sonuçlarından MCP sunucusuna tıklayarak ayrıntıları ve mevcut araçları görüntüleyin.

MCP Sunucu Ayrıntıları Sayfası

Adım 3: LibreChat için yapılandırma

Connect bölümündeki Auto sekmesine gidin ve istediğiniz istemci olarak LibreChat'i seçin.

LibreChat Entegrasyon Kurulumu

Adım 4: MCP Server kurulumu

Oluşturulan komutu kopyalayın ve MCP sunucusunu yüklemek için terminalinizde çalıştırın.

Kurulum Komutu

Adım 5: Yeniden Başlatın ve Doğrulayın

MCP sunucunuz artık yüklendi ve librechat.yaml dosyasında yapılandırılabilir durumda. Bağlantıları başlatmak ve yeni MCP sunucunuzu kullanmaya başlamak için LibreChat'i yeniden başlatın.

MCP Server Successfully Installed smithery.ai aracılığıyla yüklenen ve LibreChat içinde kullanıma hazır MCP sunucusu

Ayrıntılı yapılandırma seçenekleri ve örnekler için şuraya bakın:

MCP Sunucu Yönetimi

LibreChat, bağlantı durumu takibi ile MCP sunucu bağlantılarını yönetmek ve arayüzde OAuth kimlik doğrulaması ve başlatma desteği sağlamak için kapsamlı araçlar sunar.

Bağlantı Durumu Göstergeleri

LibreChat, sohbet açılır menüsünde ve ayarlar panelinde her bir MCP sunucusunun mevcut durumunu gösteren dinamik durum simgeleri görüntüler:

MCP Sunucu Durum Simgeleri

Durum Türleri:

  • Bağlı (yeşil dişli çark): Sunucu bağlı ve yapılandırılabilir customUserVars değerlerine sahip
  • OAuth Gerekli (amber key): Sunucu, OAuth kimlik doğrulaması gerektirir
  • Bağlantı kesildi (turuncu fiş): Sunucu bağlantısı başarısız oldu veya koptu
  • Başlatılıyor (mavi yükleyici): Sunucu başlatılıyor veya yeniden bağlanıyor
  • Hata (kırmızı üçgen): Sunucu bir hatayla karşılaştı
  • İptal etme (kırmızı x): OAuth akışı iptal ediliyor

Sunucu Başlatma

MCP sunucularını doğrudan arayüz üzerinden başlatabilir veya yeniden başlatabilirsiniz:

Tek tıkla:

  • MCP sunucusu seçim açılır menüsünden tek tıkla başlatma

    Tek tıkla MCP başlatma

MCPConfigDialog'dan:

  • Chat Dropdown içindeki bir MCP sunucusunun yanındaki durum simgesine tıklayarak MCPConfigDialog'u açın

  • Özel kullanıcı değişkenlerini yapılandırın ve sunucu kimlik doğrulama türüne bağlı olarak Authenticate/Initialize düğmesine tıklayın

    MCP yapılandırma iletişim kutusu kimlik doğrulaması

    MCP Ayarlar Panelinden:

  • MCP Ayarları Paneli'nin sunucu listesi bölümündeki herhangi bir sunucuya tıklayarak yapılandırma ve başlatma kontrollerine erişin

  • Özel kullanıcı değişkenlerini yapılandırın ve sunucu kimlik doğrulama türüne bağlı olarak Authenticate/Initialize düğmesine tıklayın

    MCP ayarlar paneli başlatma

MCP Ayarları Paneli Görünürlüğü

MCP Ayarları Paneli, LibreChat başlatılmaları sırasında kullanıcı müdahalesi gerektirebilecek MCP sunucularını algıladığında sağ kenar çubuğunda görünür. Panel, yapılandırılmış herhangi bir sunucu şu kriterlerden birini karşıladığında görünür olacaktır:

  • Özel Kullanıcı Değişkenleri (Custom User Variables): Sunucu, kullanıcı tarafından sağlanan kimlik bilgilerini içerebilen customUserVars tanımlarına sahiptir.
  • OAuth Kimlik Doğrulaması: Başlatma sırasında sunucunun OAuth kimlik doğrulaması gerektirdiği algılandı
  • Manuel Başlatma: Sunucu startup: false şeklinde yapılandırılmıştır, bu nedenle manuel başlatma gerektirir

LibreChat'e Özgü Özellikler

LibreChat'in MCP uygulaması, yüksek düzeyde yapılandırılabilir, gerçek dünya, çok kullanıcılı ortamlar için tasarlanmıştır.

Kullanıcıya Özel Bağlantılar

  • Her kullanıcı, MCP sunucularına kendi yalıtılmış bağlantısını alır
  • Kullanıcı kimlik doğrulaması ve izinlerine uyulur
  • Kişisel veriler ve bağlam gizli kalır

MCP Sunucularını Paylaşma

MCP sunucuları, LibreChat'in ayrıntılı erişim denetimi sistemine katılır. librechat.yaml içinde tanımlanan (yöneticiler tarafından yönetilen ve interface.mcpServers özellik izinlerine tabi olan) sunuculara ek olarak, kullanıcı tarafından oluşturulan MCP sunucularının kendi ACL'leri vardır ve belirli kullanıcılar, gruplar, roller ile veya herkese açık olarak; Görüntüleyici, Düzenleyici veya Sahip düzeyinde paylaşılabilirler.

interface.mcpServers altındaki USE, CREATE, SHARE ve SHARE_PUBLIC özellik bayrakları, MCP sunucularını oluşturma ve paylaşma iznine kimlerin sahip olduğunu kontrol eder. İzin katmanlarının nasıl oluşturulduğu hakkında bilgi için Access Control bölümüne bakın.

Dinamik Kullanıcı Bağlamı

MCP sunucuları, URL'ler ve başlıklardaki yer tutucular aracılığıyla kullanıcı bilgilerine erişebilir (SSE ve Streamable HTTP aktarımları için):

mcpServers:
  user-api:
    type: streamable-http
    url: https://api.example.com/users/{{LIBRECHAT_USER_USERNAME}}/mcp
    headers:
      X-User-ID: '{{LIBRECHAT_USER_ID}}'
      X-User-Email: '{{LIBRECHAT_USER_EMAIL}}'
      X-User-Role: '{{LIBRECHAT_USER_ROLE}}'
      Authorization: 'Bearer ${API_TOKEN}'

Kullanılabilir yer tutucular şunlardır:

  • {{LIBRECHAT_USER_ID}} - Benzersiz kullanıcı tanımlayıcısı
  • {{LIBRECHAT_USER_EMAIL}} - Kullanıcının e-posta adresi
  • {{LIBRECHAT_USER_ROLE}} - Kullanıcı rolü (admin, user, vb.)
  • {{LIBRECHAT_USER_USERNAME}} - Kullanıcı adı
  • Ve çok daha fazlası (tam liste için bkz. MCP Servers Configuration)

YAML ile tanımlanan MCP sunucuları ayrıca {{LIBRECHAT_OPENID_*}}, {{LIBRECHAT_GRAPH_*}} ve {{LIBRECHAT_BODY_*}} yer tutucularını kullanabilir. {{LIBRECHAT_BODY_*}} değerleri istek kapsamlıdır; bu nedenle LibreChat, aktif çalışma için bağlantılar oluşturur, bunları o çalışma içindeki araç çağrılarında yeniden kullanır ve istek sona erdiğinde temizler. İstek kapsamlı sunucular kalıcı araç önbelleğinden hariç tutulur, böylece isteğe özel başlıklar ve URL'ler aktif çalışma dışında yeniden kullanılmaz. Kullanıcı, OpenID ve Graph yer tutucuları kullanıcı kapsamlıdır; HTTP taşıyıcıları, çözümlenmiş başlıklarını her araç çağrısından önce, kendiliğinden yeniden bağlanmaya gerek kalmadan yeniler.

Sunucu Talimatları

serverInstructions, herhangi bir MCP sunucusundan bir araç seçildiğinde yapılandırılmış talimatları dinamik olarak ekleyen bir LibreChat özelliğidir:

mcpServers:
  filesystem:
    command: npx
    args: ['-y', '@modelcontextprotocol/server-filesystem', '/docs']
    serverInstructions: |
      When accessing files:
      - Always check file permissions first
      - Use absolute paths for reliability
      - Handle errors gracefully

Seçenekler:

  • true: Sunucu tarafından sağlanan talimatları kullan
  • false: Talimatları devre dışı bırak
  • string: Özel talimatlar (yukarıda gösterilmiştir)

Zaman Aşımı Yapılandırması

Uzun süren MCP işlemleri için hem başlatma hem de araç işlemleri için uygun zaman aşımlarını yapılandırın.

mcpServers:
  data-processor:
    type: streamable-http
    url: https://api.example.com/mcp
    initTimeout: 15000 # 15 seconds for server initialization
    timeout: 60000 # 60 seconds for tool operations

Not: İşlemler hala yarıda kesiliyorsa, varsayılan zaman aşımları nedeniyle bağlantıları vaktinden önce sonlandırıyor olabilecek proxy yapılandırmanızı (örneğin nginx, traefik vb.) kontrol edin.

Kullanıcı Tarafından Sağlanan Kimlik Bilgileri

Kullanıcıların customUserVars aracılığıyla MCP sunucuları için kendi kimlik bilgilerini sağlamalarına izin verebilirsiniz. Bu, kimlik bilgilerini yapılandırma dosyalarında saklamadan güvenli ve kullanıcıya özel kimlik doğrulaması sağlar.

mcpServers:
  my-api-server:
    type: streamable-http
    url: 'https://api.example.com/mcp'
    headers:
      X-Auth-Token: '{{MY_API_KEY}}' # Uses the user-provided value
    customUserVars:
      MY_API_KEY:
        title: 'API Key'
        description: "Enter your personal API key from <a href='https://example.com/keys' target='_blank'>your account settings</a>"

Kullanıcılar bu kimlik bilgilerini yapılandırabilir:

  • Sohbet Alanından: Araç seçim açılır menüsündeki yapılandırılabilir MCP sunucularının yanındaki ayarlar simgesine tıklayın
  • MCP Ayarları Panelinden: Tüm yapılandırılmış sunucular için kimlik bilgilerini yönetmek üzere sağ paneldeki "MCP Settings" kısmına erişin.

Kullanıcı Kimlik Bilgileriyle MCP Sunucularını Yeniden Başlatma

Kullanılmadan önce kullanıcıya özel kimlik bilgileri gerektiren MCP sunucuları için (örneğin, GitHub'ın resmi MCP sunucusundaki PAT_TOKEN değerleri), LibreChat, kullanıcıların bu kimlik bilgilerini sağlamasına ve ardından tüm uygulamayı yeniden başlatmadan MCP sunucusunu arayüz içerisinden yeniden başlatmasına olanak tanır:

  1. customUserVars kullanan bir MCP seçtiğinizde, MCP Paneli içerisinden seçili MCP sunucusu için bir customUserVar değerini Kaydedebilir veya İptal edebilirsiniz.
  2. Bir customUserVar için değer kaydettikten sonra, yeniden başlatma düğmesine (MCP Panelinde her sunucu adının yanındaki dairesel oklar içeren simge) tıklayın.
  3. LibreChat, sağladığınız kimlik bilgilerini kullanarak sunucuya bağlanmaya çalışacak ve yeniden başlatma işleminin başarılı mı yoksa başarısız mı olduğu konusunda sizi bir bildirim (toast) ile bilgilendirecektir.

İpucu: Bir sunucunun ilk başlatmada mevcut olmayan kimlik bilgileri gerektireceğini biliyorsanız, yapılandırmasına startup: false ekleyebilirsiniz. Bu, LibreChat'e, kullanıcı arayüzünde manuel olarak yeniden başlatılana kadar o sunucuya bağlanmaya çalışmaması talimatını verir.

Örnek:

mcpServers:
  github-mcp:
    type: streamable-http
    url: 'https://api.githubcopilot.com/mcp/'
    headers:
      Authorization: '{{PAT_TOKEN}}'
    customUserVars:
      PAT_TOKEN:
        title: 'GitHub PAT Token'
        description: 'GitHub Personal Access Token'
    startup: false

OAuth Kimlik Doğrulaması

LibreChat, Anthropic'in güvenli MCP bağlantıları için önerisini takip ederek MCP sunucuları için OAuth kimlik doğrulamasını destekler. OAuth, uzun ömürlü kimlik bilgilerini saklamadan kimlik doğrulaması yapmak için standartlaştırılmış, güvenli bir yol sağlar.

Desteklenen OAuth Akışları

LibreChat MCP sunucuları şu servislerle OAuth 2.0 desteği sunar:

  • Authorization Code Flow with PKCE: Maksimum güvenlik için önerilir
  • İstemci Keşfi: OAuth sağlayıcısı tarafından desteklendiğinde otomatik istemci kaydı
  • Refresh Tokens: Mevcut olduğunda otomatik token yenileme

Yapılandırma Örnekleri

mcpServers:
  # Public remote MCP server for PayPal, uses OAuth Client Discovery
  # ❌ Refresh Tokens: you may need to re-authenticate periodically
  # More info: https://developer.paypal.com/tools/mcp-server/
  paypal:
    type: 'sse'
    initTimeout: 150000 # higher timeout to allow for initial authentication
    url: 'https://mcp.paypal.com/sse'

  # Example self-hosted remote MCP server for Spotify, uses OAuth Client Discovery
  # ✅ Refresh Tokens: refreshes token for authentication automatically
  # Hosted on Cloudflare Workers, more info: https://github.com/LibreChat-AI/spotify-mcp
  spotify:
    type: 'streamable-http'
    initTimeout: 150000
    url: 'https://mcp-spotify-oauth-example.account.workers.dev/mcp'

OAuth Kimlik Doğrulama Akışı

OAuth özellikli bir MCP sunucusunu ilk kez yapılandırdığınızda:

  1. İlk Bağlantı: LibreChat, MCP sunucusuna bağlanmaya çalışır
  2. Kimlik Doğrulama Gerekli: Geçerli bir token bulunmuyorsa, o sunucu için sohbet açılır menüsünde bir OAuth kimlik doğrulama göstergesi görürsünüz.
  3. Düğme Arayüzü: MCPConfigDialog'u açmak ve OAuth akışını başlatmak için kimlik doğrulama göstergesi düğmesine tıklayın
  4. Config Dialog: MCPConfigDialog içindeki Authenticate düğmesine tıklayarak tarayıcınızda OAuth kimlik doğrulama sayfasını açın.
  5. Browser Redirect: LibreChat, OAuth sağlayıcısını tarayıcınızda açar
  6. Return Handling: LibreChat, kimlik doğrulamasını tamamladığınızda OAuth geri çağırmasını (callback) otomatik olarak işler
  7. Token Depolama: LibreChat, token'ları gelecekte kullanmak üzere güvenli bir şekilde saklar
  8. Bağlantı Kuruldu: Kimlik doğrulamasını tamamladığınızda, MCP sunucusu bağlanacak ve onu sohbetinizde kullanabileceksiniz.

OAuth Geri Çağırma (Callback) URL'si

Bir MCP sunucusu OAuth kullandığında, LibreChat, başarılı bir yetkilendirmenin ardından OAuth sağlayıcısının yönlendirme yaptığı bir callback endpoint'i sunar.

Geri çağırma (callback) URL'si şu formatı izlemelidir:

${baseUrl}/api/mcp/${serverName}/oauth/callback

Burada ${serverName}, librechat.yaml yapılandırmanızda tanımlanan MCP sunucu anahtarıdır. LibreChat, bu endpoint üzerindeki yönlendirmeyi yönetir, token değişimini tamamlar ve kimlik bilgilerini ilgili MCP sunucusuyla ilişkilendirir.

OAuth Geri Çağırma URL'si Örneği

Aşağıdaki MCP sunucu yapılandırması göz önüne alındığında:

mcpServers:
  # Example self-hosted remote MCP server for Spotify, uses OAuth Client Discovery
  # ✅ Refresh Tokens: refreshes token for authentication automatically
  # Hosted on Cloudflare Workers, more info: https://github.com/LibreChat-AI/spotify-mcp
  spotify:
    type: 'streamable-http'
    initTimeout: 150000
    url: 'https://mcp-spotify-oauth-example.account.workers.dev/mcp'

Geri çağırma (callback) URL'si ${baseUrl}/api/mcp/spotify/oauth/callback olacaktır.

Not:

  • Akışın çalışması için callback URL'nin OAuth sağlayıcısına tam olarak kaydedilmesi gerekir.
  • /api/oauth/callback veya /api/oauth/openid/callback gibi diğer yollar, MCP OAuth akışları için geçerli değildir.

Token Yönetimi

LibreChat, OAuth belirteçlerini akıllıca yönetir:

  • Güvenli Depolama: Token'lar şifrelenir ve güvenli bir şekilde saklanır
  • Otomatik Yenileme: Yenileme belirteçleri (refresh tokens) mevcut olduğunda, LibreChat süresi dolmuş erişim belirteçlerini otomatik olarak yeniler
  • Sessiz 401 Kurtarma: Bir OAuth MCP bağlantısı oturum ortasında 401 hatası alırsa ve bir yenileme belirteci (refresh token) mevcutsa, LibreChat yeni bir kimlik doğrulama istemi göstermeden önce sessiz bir yenileme denemesi yapar.
  • Oturum Yönetimi: Her kullanıcı, çok kullanıcılı ortamlar için kendi OAuth oturumlarını sürdürür

Her kullanıcı, OAuth özellikli bir MCP sunucusunu ilk kez kullandığında kendi OAuth girişiyle kimlik doğrulaması yapması için yönlendirilecektir. Bu, bağlantı ve kimlik doğrulama ayrıntılarının her kullanıcıya özel olmasını sağlayarak çok kullanıcılı ortamlarda güvenlik ve gizliliği korur.

OAuth Zamanlaması

MCP OAuth tamamlanması, MCP sunucusu initTimeout değerini yeniden kullanmak yerine kendi sunucu yapılandırmalı zaman aşımını kullanır. LibreChat, varsayılan olarak kullanıcının MCP OAuth işlemini tamamlaması için 10 dakikaya kadar bekler ve akış durumunu 15 dakika boyunca korur.

Bir OAuth sağlayıcısı veya kullanıcı iş akışı daha fazla zamana ihtiyaç duyduğunda bu ortam değişkenlerini kullanın:

MCP_OAUTH_HANDLING_TIMEOUT=600000
MCP_OAUTH_FLOW_TTL=900000

MCP_OAUTH_FLOW_TTL, MCP_OAUTH_HANDLING_TIMEOUT değerinden daha uzun sürecek şekilde sınırlandırılmıştır; böylece süre sonuna yakın gelen geri çağırmalar (callbacks) hala kendi akış durumlarını bulabilirler. MCP sunucu kartı yoklama penceresi, yapılandırılmış işlem zaman aşımını takip eder.

Kullanıcıya özel OAuth kimlik doğrulama akışı

Not: Uygulama başlangıcında gösterilen token'lar yalnızca uygulama düzeyindeki başlatma işlemleri içindir ve bireysel kullanıcı bağlantıları için kullanılmazlar.

Otomatik token yenileme örneği:

[MCP][spotify] Access token missing
[MCP][spotify] Attempting to refresh token
[MCP][spotify] Successfully refreshed and stored OAuth tokens
[MCP][spotify] ✓ Initialized

En İyi Uygulamalar

  1. OAuth mevcut olduğunda kullanın: Daha iyi güvenlik için API anahtarları yerine OAuth'u tercih edin
  2. Uygun zaman aşımlarını yapılandırın: OAuth tamamlama pencereleri için MCP_OAUTH_HANDLING_TIMEOUT ve MCP_OAUTH_FLOW_TTL kullanın; sunucu başlatma işlemi için initTimeout kullanın
  3. Token süresi dolumunu izleyin: Kimlik doğrulama sorunları için günlükleri kontrol edin
  4. Yeniden kimlik doğrulama planı: Bazı sağlayıcılar yenileme belirteçlerini (refresh tokens) desteklemez

Not: LibreChat arayüzünden kimlik doğrulama sürecini kolaylaştıracak UI tabanlı OAuth yapılandırması yakında gelecektir.

Sunucu Aktarımları (Server Transports)

MCP sunucuları, farklı taşıma mekanizmalarını kullanacak şekilde yapılandırılabilir:

STDIO Sunucuları

  • Yerel, tek kullanıcılı ortamlar için iyi çalışır
  • Uzak veya bulut dağıtımları için ölçeklenebilir değildir

Server-Sent Events (SSE) Sunucuları

  • Uzak taşıma mekanizmasıdır ancak üretim ortamı için önerilmez

Akış Sağlanabilir HTTP Sunucuları

  • Mesaj göndermek için HTTP POST kullanır ve yanıtların akışını (streaming) destekler
  • Birden fazla istemci bağlantısını yönetebilen bağımsız bir süreç olarak çalışır
  • Hem temel istekleri hem de Server-Sent Events (SSE) aracılığıyla akışı destekler
  • Eski HTTP+SSE aktarımına göre daha yüksek performanslı alternatif
  • Uygun çok kullanıcılı sunucu yapılandırmalarını destekler

Üretim ortamları için, yalnızca "Streamable HTTP" taşıyıcılarına sahip MCP sunucuları önerilir. Uzun süreli bağlantıları koruyan SSE'nin aksine, Streamable HTTP, ölçeklenebilir ve çok kullanıcılı dağıtımlar için daha uygun olan durumsuz (stateless) seçenekler sunar.

LibreChat, çeşitli kullanım senaryolarını desteklemek ve yarının yapay zeka iş akışlarını oluşturmanıza yardımcı olmak için esnek, ölçeklenebilir MCP sunucu entegrasyonlarını uygulamada ön saflarda yer almaktadır.


Yapay zeka yeteneklerinizi genişletmeye hazır mısınız? İlk MCP sunucunuzu yapılandırarak başlayın ve LibreChat'in kuruluşunuzun ihtiyaç duyduğu hemen hemen her araca veya hizmete nasıl bağlanabileceğini keşfedin.

Bu rehber nasıl?