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

MCP

Dowiedz się, jak LibreChat wykorzystuje Model Context Protocol (MCP), aby zapewnić płynną integrację z zewnętrznymi narzędziami, źródłami danych i wyspecjalizowanymi usługami.

Model Context Protocol (MCP) to otwarty protokół, który standaryzuje sposób, w jaki aplikacje dostarczają kontekst dla dużych modeli językowych (LLM). Pomyśl o MCP jak o "USB-C dla AI" – tak jak USB-C zapewnia uniwersalny standard połączeń dla urządzeń elektronicznych, tak MCP oferuje ustandaryzowany sposób łączenia modeli AI z różnorodnymi narzędziami, źródłami danych i usługami.

LibreChat wykorzystuje MCP, aby znacząco rozszerzyć możliwości Twoich agentów AI, umożliwiając integrację wszystkiego, od dostępu do systemu plików, przeglądarek internetowych i specjalistycznych API, po niestandardowe narzędzia biznesowe.

Dlaczego MCP ma znaczenie

LLMs są ograniczone do swoich wbudowanych możliwości. Dzięki MCP, LibreChat przełamuje te bariery poprzez:

  • Łączenie z dowolnym narzędziem lub usługą, która udostępnia serwer MCP
  • Standaryzacja integracji, dzięki której nie musisz edytować kodu LibreChat dla każdego narzędzia
  • Obsługa środowisk wieloużytkownikowych z odpowiednim uwierzytelnianiem i izolacją
  • Dostarczanie rozwijającego się ekosystemu dynamicznych, gotowych do użycia integracji

Jak działa MCP w LibreChat

LibreChat zapewnia dwa sposoby korzystania z serwerów MCP: w obszarze czatu lub z agentami.

Możesz skonfigurować serwery MCP ręcznie w pliku librechat.yaml lub użyć smithery.ai, aby znaleźć i zainstalować serwery MCP w librechat.yaml (zobacz przykład poniżej). Za każdym razem, gdy dodajesz lub edytujesz serwer MCP, musisz zrestartować LibreChat, aby zainicjować połączenia.

Adres URL wywołania zwrotnego OAuth

Dla serwerów MCP z włączonym OAuth, adresem URL wywołania zwrotnego (callback URL) LibreChat jest:

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

<server-name> to klucz używany w sekcji mcpServers w pliku librechat.yaml lub nazwa serwera utworzona w interfejsie ustawień MCP. Na przykład serwer o nazwie salesforce z parametrem DOMAIN_SERVER=https://chat.example.com używa adresu https://chat.example.com/api/mcp/salesforce/oauth/callback.

Zarejestruj ten dokładny adres URL wywołania zwrotnego (callback URL) u dostawcy OAuth. Lokalne instalacje Docker zazwyczaj używają http://localhost:3080 jako podstawowego adresu URL.

W obszarze czatu

Narzędzia MCP w obszarze czatu

LibreChat wyświetla skonfigurowane serwery MCP bezpośrednio w obszarze czatu podczas korzystania z tradycyjnych endpoint (OpenAI, Anthropic, Google, Bedrock itp.):

  • Najpierw wybierz dowolny endpoint inny niż agent oraz model kompatybilny z narzędziami
  • Serwery MCP pojawiają się na liście rozwijanej w interfejsie czatu poniżej pola wprowadzania tekstu
  • Po wybraniu, wszystkie narzędzia z tego serwera stają się dostępne dla Twojego bieżącego modelu
  • Szybki dostęp do narzędzi MCP bez tworzenia agenta, umożliwiający korzystanie z wielu serwerów jednocześnie

Aby wyłączyć wyświetlanie serwerów MCP na liście rozwijanej czatu (pozostawiając je wyłącznie dla agentów), ustaw chatMenu: false w swojej konfiguracji:

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

Z Agentami

Serwery MCP integrują się płynnie z agentami LibreChat:

  1. Utwórz lub edytuj agenta
  2. Kliknij "Add MCP Server Tools", aby otworzyć okno dialogowe narzędzi (Tools Dialog) z panelu Agent Builder
  3. Wybierz serwery MCP po ich dodaniu; każdy z nich pojawi się jako pojedynczy wpis
  4. Dostosuj możliwości swojego agenta poprzez włączanie/wyłączanie poszczególnych narzędzi po ich dodaniu
  5. Zapisz swojego agenta

Narzędzia MCP w Kreatorze Agentów

Ta organizacja wyższego poziomu sprawia, że interfejs pozostaje przejrzysty – nawet serwery z ponad 20 narzędziami (takie jak Spotify) są wyświetlane jako pojedyncze wpisy, które można rozwinąć w celu uzyskania szczegółowej kontroli.

Podstawowa konfiguracja

Dodaj serwery MCP do swojego pliku librechat.yaml ręcznie:

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

Dodawanie serwerów MCP w interfejsie użytkownika

Możesz również dodawać i konfigurować serwery MCP bezpośrednio z interfejsu LibreChat bez edytowania jakichkolwiek plików konfiguracyjnych czy restartowania serwera.

Krok 1: Otwórz panel ustawień MCP

Przejdź do panelu MCP Settings z prawego paska bocznego. Zobaczysz tutaj listę istniejących serwerów MCP oraz przycisk +, służący do dodawania nowych.

Panel ustawień MCP

Krok 2: Wypełnij szczegóły serwera

Naciśnij przycisk + i wypełnij nazwę serwera MCP, opis, URL, typ transportu oraz metodę uwierzytelniania, a następnie kliknij Create.

Okno dialogowe dodawania serwera MCP

Twój nowy serwer pojawi się w panelu MCP Settings wraz z powiadomieniem potwierdzającym.

MCP Server Created Successfully

Krok 3: Sprawdź status połączenia i uwierzytelnij się

Sprawdź wskaźnik stanu połączenia dla swojego nowego serwera. Jeśli serwer wymaga uwierzytelnienia OAuth, stan będzie wyświetlany jako rozłączony. Kliknij przycisk uwierzytelniania/połączenia serwera (możesz to zrobić, klikając sam serwer MCP w menu rozwijanym czatu lub klikając najpierw ikonę połączenia, aby przejść do okna dialogowego z większą ilością informacji o stanie połączenia), aby rozpocząć proces uwierzytelniania.

Stan połączenia - Rozłączono

Po zainicjowaniu wskaźnik stanu zaktualizuje się, aby pokazać, że uwierzytelnianie jest w toku.

Stan połączenia - Uwierzytelnianie

Krok 4: Kontynuuj w karcie OAuth

Otworzy się nowa karta przeglądarki dla dostawcy OAuth. Zweryfikuj adres URL wywołania zwrotnego (callback URL) i kliknij Continue, aby autoryzować LibreChat.

OAuth Continue Prompt

Krok 5: Uwierzytelnianie zakończone sukcesem

Po uwierzytelnieniu zobaczysz potwierdzenie sukcesu. To okno zamknie się automatycznie i przekieruje Cię z powrotem do LibreChat.

Uwierzytelnianie zakończone sukcesem

Krok 6: Serwer gotowy do użycia

LibreChat potwierdza pomyślne uwierzytelnienie i automatycznie wybiera serwer MCP do użycia w ramach Twojej konwersacji. Serwer wyświetla teraz wskaźnik stanu połączenia i jest zaznaczony na liście rozwijanej MCP Servers.

MCP Server Authenticated and Auto-Selected

Twój nowy serwer MCP jest również dostępny w Agent Builder, gdzie możesz dodać jego narzędzia do dowolnego agenta i dostosować, który podzbiór narzędzi jest dozwolony.

MCP Server Available in Agent Builder

Zmienne poświadczeń dla serwerów utworzonych w UI

Podczas dodawania serwera MCP przez interfejs użytkownika, możesz wymagać od użytkowników podania własnych kluczy API. W sekcji Authentication okna dialogowego MCP Server Builder wybierz "API Key" i zaznacz "User provides key". Wybierz format nagłówka (Bearer, Basic lub Custom) i zapisz serwer.

W tle LibreChat automatycznie tworzy wpis customUserVars o nazwie MCP_API_KEY i konfiguruje odpowiedni szablon nagłówka (np. Authorization: Bearer {{MCP_API_KEY}}). Każdy użytkownik podaje własny klucz za pośrednictwem okna dialogowego wyboru narzędzi MCP (MCP Tool Select Dialog) podczas konfigurowania agenta — tego samego interfejsu, który jest używany w przypadku zdefiniowanych w YAML customUserVars.

Ze względów bezpieczeństwa serwery MCP utworzone przez interfejs użytkownika (pochodzące z bazy danych) mogą tylko rozpoznawać symbole zastępcze customUserVars ({{VAR_NAME}}). Zmienne środowiskowe po stronie serwera (${ENV_VAR}), pola profilu użytkownika ({{LIBRECHAT_USER_*}}) oraz tokeny OIDC ({{LIBRECHAT_OPENID_*}}) są celowo blokowane, aby zapobiec nieautoryzowanemu dostępowi do sekretów serwera lub danych innych użytkowników. Aby uzyskać pełną obsługę symboli zastępczych, skonfiguruj serwer w pliku librechat.yaml.

Dodawanie serwerów MCP za pomocą Smithery

Smithery.ai zapewnia usprawniony sposób odkrywania i instalowania serwerów MCP dla LibreChat. Wykonaj poniższe kroki, aby rozpocząć:

Krok 1: Wyszukaj serwery MCP

Odwiedź smithery.ai i wyszukaj serwer MCP, który chcesz dodać do swojej instancji LibreChat.

Interfejs wyszukiwania Smithery

Krok 2: Wybierz swój serwer MCP

Kliknij serwer MCP w wynikach wyszukiwania, aby wyświetlić szczegóły i dostępne narzędzia.

Strona szczegółów serwera MCP

Krok 3: Konfiguracja dla LibreChat

Przejdź do karty Auto w sekcji Connect i wybierz LibreChat jako żądanego klienta.

Konfiguracja integracji LibreChat

Krok 4: Zainstaluj serwer MCP

Skopiuj i uruchom wygenerowane polecenie w swoim terminalu, aby zainstalować serwer MCP.

Komenda instalacji

Krok 5: Restart i weryfikacja

Twój serwer MCP jest teraz zainstalowany i można go skonfigurować w librechat.yaml. Zrestartuj LibreChat, aby zainicjować połączenia i zacząć korzystać z nowego serwera MCP.

MCP Server Successfully Installed Serwer MCP zainstalowany przez smithery.ai i gotowy do użycia w LibreChat

Szczegółowe opcje konfiguracji i przykłady znajdują się w:

Zarządzanie serwerem MCP

LibreChat zapewnia kompleksowe narzędzia do zarządzania połączeniami z serwerami MCP, oferując śledzenie statusu połączenia oraz wsparcie dla uwierzytelniania i inicjalizacji OAuth w interfejsie użytkownika.

Wskaźniki stanu połączenia

LibreChat wyświetla dynamiczne ikony statusu pokazujące bieżący stan każdego serwera MCP na liście rozwijanej czatu oraz w panelu ustawień:

Ikony statusu serwera MCP

Typy statusów:

  • Połączono (zielona ikona koła zębatego): Serwer jest połączony i posiada konfigurowalne customUserVars
  • Wymagane OAuth (bursztynowy klucz): Serwer wymaga uwierzytelniania OAuth
  • Rozłączono (pomarańczowa wtyczka): Połączenie z serwerem nie powiodło się lub zostało zerwane
  • Inicjalizacja (niebieski pasek ładowania): Serwer uruchamia się lub łączy ponownie
  • Błąd (czerwony trójkąt): Serwer napotkał błąd
  • Anulowanie (czerwony x): proces OAuth jest anulowany

Inicjalizacja serwera

Możesz zainicjować lub ponownie zainicjować serwery MCP bezpośrednio z poziomu interfejsu:

Jedno kliknięcie:

  • Inicjalizacja jednym kliknięciem z menu rozwijanego wyboru serwera MCP

    Inicjalizacja MCP jednym kliknięciem

Z MCPConfigDialog:

  • Kliknij ikonę statusu obok serwera MCP w menu rozwijanym czatu, aby otworzyć MCPConfigDialog

  • Skonfiguruj niestandardowe zmienne użytkownika i kliknij przycisk Authenticate/Initialize w zależności od typu uwierzytelniania serwera

    Uwierzytelnianie w oknie konfiguracji MCP

    Z panelu ustawień MCP:

  • Kliknij dowolny serwer na liście serwerów w panelu ustawień MCP, aby uzyskać dostęp do kontroli konfiguracji i inicjalizacji.

  • Skonfiguruj niestandardowe zmienne użytkownika i kliknij przycisk Authenticate/Initialize w zależności od typu uwierzytelniania serwera

    Inicjalizacja panelu ustawień MCP

Widoczność panelu ustawień MCP

Panel ustawień MCP pojawia się w prawym pasku bocznym, gdy LibreChat wykryje serwery MCP, które mogą wymagać interwencji użytkownika podczas ich inicjalizacji. Panel będzie widoczny, gdy którykolwiek ze skonfigurowanych serwerów spełnia jedno z poniższych kryteriów:

  • Niestandardowe zmienne użytkownika: Serwer posiada zdefiniowane customUserVars, które mogą zawierać dane uwierzytelniające dostarczone przez użytkownika
  • Uwierzytelnianie OAuth: Podczas uruchamiania wykryto, że serwer wymaga uwierzytelniania OAuth
  • Ręczna inicjalizacja: Serwer ma skonfigurowane startup: false, co wymaga ręcznej inicjalizacji

Funkcje specyficzne dla LibreChat

Implementacja MCP w LibreChat została zaprojektowana z myślą o wysoce konfigurowalnych, rzeczywistych środowiskach wieloużytkownikowych.

Połączenia specyficzne dla użytkownika

  • Każdy użytkownik otrzymuje własne, odizolowane połączenie z serwerami MCP
  • Uwierzytelnianie użytkowników i uprawnienia są respektowane
  • Dane osobowe i kontekst pozostają prywatne

Udostępnianie serwerów MCP

Serwery MCP uczestniczą w systemie szczegółowej kontroli dostępu LibreChat. Oprócz serwerów zdefiniowanych w librechat.yaml (które są zarządzane przez administratorów i podlegają uprawnieniom funkcji interface.mcpServers), utworzone przez użytkowników serwery MCP posiadają własne listy ACL i mogą być udostępniane konkretnym użytkownikom, grupom, rolom lub publicznie, na poziomie przeglądającego (Viewer), edytora (Editor) lub właściciela (Owner).

Flagi funkcji USE, CREATE, SHARE oraz SHARE_PUBLIC w sekcji interface.mcpServers kontrolują, kto w ogóle ma uprawnienia do tworzenia i udostępniania serwerów MCP. Zobacz Access Control, aby dowiedzieć się, jak tworzone są warstwy uprawnień.

Dynamiczny kontekst użytkownika

Serwery MCP mogą uzyskiwać dostęp do informacji o użytkowniku za pomocą symboli zastępczych w adresach URL i nagłówkach (dla transportów SSE i Streamable HTTP):

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}'

Dostępne symbole zastępcze to:

  • {{LIBRECHAT_USER_ID}} - Unikalny identyfikator użytkownika
  • {{LIBRECHAT_USER_EMAIL}} - Adres e-mail użytkownika
  • {{LIBRECHAT_USER_ROLE}} - Rola użytkownika (admin, user itp.)
  • {{LIBRECHAT_USER_USERNAME}} - Nazwa użytkownika
  • I wiele innych (zobacz Konfiguracja serwerów MCP, aby uzyskać pełną listę)

Serwery MCP zdefiniowane w YAML mogą również używać symboli zastępczych {{LIBRECHAT_OPENID_*}}, {{LIBRECHAT_GRAPH_*}} oraz {{LIBRECHAT_BODY_*}}. Wartości {{LIBRECHAT_BODY_*}} są ograniczone do zakresu żądania (request-scoped), więc LibreChat tworzy połączenia dla aktywnego uruchomienia, używa ich ponownie w wywołaniach narzędzi w ramach tego uruchomienia i czyści je po zakończeniu żądania. Serwery o zakresie żądania są wykluczone z trwałej pamięci podręcznej narzędzi, dzięki czemu nagłówki i adresy URL specyficzne dla żądania nie są używane ponownie poza aktywnym uruchomieniem. Symbole zastępcze użytkownika (User), OpenID oraz Graph są ograniczone do zakresu użytkownika (user-scoped); transporty HTTP odświeżają swoje rozpoznane nagłówki przed każdym wywołaniem narzędzia bez konieczności samodzielnego ponownego łączenia.

Instrukcje serwera

serverInstructions to funkcja LibreChat, która dynamicznie dodaje skonfigurowane instrukcje, gdy wybrane zostanie dowolne narzędzie z tego serwera MCP:

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

Opcje:

  • true: Użyj instrukcji dostarczonych przez serwer
  • false: Wyłącz instrukcje
  • string: Niestandardowe instrukcje (pokazane powyżej)

Konfiguracja limitu czasu (Timeout)

W przypadku długotrwałych operacji MCP należy skonfigurować odpowiednie limity czasu (timeouts) zarówno dla inicjalizacji, jak i operacji narzędzi.

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

Uwaga: Jeśli operacje są nadal przerywane, sprawdź konfigurację swojego proxy (np. nginx, traefik itp.), które może przedwcześnie zrywać połączenia z powodu domyślnych limitów czasu (timeouts).

Dane uwierzytelniające dostarczone przez użytkownika

Możesz zezwolić użytkownikom na podawanie własnych danych uwierzytelniających do serwerów MCP za pomocą customUserVars. Umożliwia to bezpieczne, spersonalizowane uwierzytelnianie bez konieczności przechowywania danych logowania w plikach konfiguracyjnych.

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>"

Użytkownicy mogą skonfigurować te dane uwierzytelniające:

  • Z obszaru czatu: Kliknij ikonę ustawień obok konfigurowalnych serwerów MCP na liście rozwijanej wyboru narzędzi
  • Z panelu ustawień MCP: Uzyskaj dostęp do „MCP Settings” w prawym panelu, aby zarządzać poświadczeniami dla wszystkich skonfigurowanych serwerów

Ponowna inicjalizacja serwerów MCP z poświadczeniami użytkownika

W przypadku serwerów MCP, które wymagają poświadczeń specyficznych dla użytkownika, zanim będzie można z nich korzystać (np. PAT_TOKEN w oficjalnym serwerze MCP GitHub), LibreChat umożliwia użytkownikom podanie tych poświadczeń, a następnie ponowne zainicjowanie serwera MCP z poziomu interfejsu użytkownika bez konieczności restartowania całej aplikacji:

  1. Gdy wybierzesz MCP, który korzysta z customUserVars, będziesz mógł Zapisać lub Cofnąć wartość customUserVar dla wybranego serwera MCP z poziomu Panelu MCP.
  2. Po zapisaniu wartości dla customUserVar, kliknij przycisk ponownej inicjalizacji (ikonę z kolistymi strzałkami obok każdej nazwy serwera w panelu MCP).
  3. LibreChat spróbuje połączyć się z serwerem przy użyciu podanych przez Ciebie danych uwierzytelniających i powiadomi Cię za pomocą komunikatu typu toast, czy proces ponownej inicjalizacji zakończył się sukcesem, czy niepowodzeniem.

Wskazówka: Jeśli wiesz, że serwer będzie wymagał poświadczeń niedostępnych przy pierwszym uruchomieniu, możesz dodać startup: false do jego konfiguracji. Informuje to LibreChat, aby nie próbował łączyć się z tym serwerem, dopóki nie zostanie on ręcznie zainicjowany ponownie w interfejsie użytkownika.

Przykład:

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

Uwierzytelnianie OAuth

LibreChat obsługuje uwierzytelnianie OAuth dla serwerów MCP, zgodnie z zaleceniami Anthropic dotyczącymi bezpiecznych połączeń MCP. OAuth zapewnia ustandaryzowany, bezpieczny sposób uwierzytelniania bez konieczności przechowywania długoterminowych danych uwierzytelniających.

Obsługiwane przepływy OAuth

Serwery MCP LibreChat obsługują OAuth 2.0 z:

  • Authorization Code Flow with PKCE: Zalecany dla zapewnienia maksymalnego bezpieczeństwa
  • Wykrywanie klienta: Automatyczna rejestracja klienta, gdy jest obsługiwana przez dostawcę OAuth
  • Refresh Tokens: Automatyczne odnawianie tokenów, gdy jest dostępne

Przykłady konfiguracji

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'

Przepływ uwierzytelniania OAuth

Gdy po raz pierwszy konfigurujesz serwer MCP z włączonym OAuth:

  1. Początkowe połączenie: LibreChat próbuje połączyć się z serwerem MCP
  2. Wymagane uwierzytelnienie: Jeśli nie istnieje żaden ważny token, w menu rozwijanym czatu dla danego serwera zobaczysz wskaźnik uwierzytelnienia OAuth.
  3. Interfejs przycisku: Kliknij przycisk wskaźnika uwierzytelniania, aby otworzyć MCPConfigDialog i rozpocząć proces OAuth
  4. Okno dialogowe konfiguracji: Kliknij przycisk Authenticate w MCPConfigDialog, aby otworzyć stronę uwierzytelniania OAuth w przeglądarce
  5. Przekierowanie przeglądarki: LibreChat otwiera dostawcę OAuth w Twojej przeglądarce
  6. Obsługa powrotu: LibreChat automatycznie przetwarza callback OAuth po uwierzytelnieniu się.
  7. Przechowywanie tokenów: LibreChat bezpiecznie przechowuje tokeny do późniejszego wykorzystania
  8. Połączenie nawiązane: Po uwierzytelnieniu serwer MCP zostanie połączony i będzie można z niego korzystać w czacie

Adres URL wywołania zwrotnego OAuth

Gdy serwer MCP korzysta z OAuth, LibreChat udostępnia endpoint wywołania zwrotnego (callback), na który dostawca OAuth przekierowuje użytkownika po pomyślnej autoryzacji.

Adres URL wywołania zwrotnego (callback URL) musi być zgodny z tym formatem:

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

Gdzie ${serverName} to klucz serwera MCP zdefiniowany w Twojej konfiguracji librechat.yaml. LibreChat obsługuje przekierowanie pod tym endpoint, finalizuje wymianę tokenów i przypisuje poświadczenia do odpowiedniego serwera MCP.

Przykład adresu URL wywołania zwrotnego OAuth

Biorąc pod uwagę poniższą konfigurację serwera MCP:

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'

Adres URL wywołania zwrotnego (callback URL) to ${baseUrl}/api/mcp/spotify/oauth/callback.

Uwaga:

  • Adres URL wywołania zwrotnego (callback URL) musi być dokładnie zarejestrowany u dostawcy OAuth, aby przepływ działał poprawnie.
  • Inne ścieżki, takie jak /api/oauth/callback lub /api/oauth/openid/callback, nie są poprawne dla przepływów OAuth MCP.

Zarządzanie tokenami

LibreChat inteligentnie zarządza tokenami OAuth:

  • Bezpieczne przechowywanie: Tokeny są szyfrowane i przechowywane w bezpieczny sposób
  • Automatyczne odświeżanie: Gdy dostępne są tokeny odświeżania (refresh tokens), LibreChat automatycznie odnawia wygasłe tokeny dostępu.
  • Ciche odzyskiwanie 401: Jeśli połączenie OAuth MCP otrzyma błąd 401 w trakcie sesji, a dostępny jest token odświeżania, LibreChat podejmie próbę cichego odświeżenia przed wyświetleniem nowego monitu o uwierzytelnienie.
  • Zarządzanie sesjami: Każdy użytkownik utrzymuje własne sesje OAuth w środowiskach wieloużytkownikowych

Każdy użytkownik zostanie poproszony o uwierzytelnienie za pomocą własnego loginu OAuth przy pierwszym użyciu serwera MCP z włączoną obsługą OAuth. Zapewnia to, że szczegóły połączenia i uwierzytelniania są unikalne dla każdego użytkownika, co pozwala zachować bezpieczeństwo i prywatność w środowiskach wieloużytkownikowych.

Czas OAuth

Ukończenie MCP OAuth w LibreChat wykorzystuje własny limit czasu skonfigurowany na serwerze, zamiast używać initTimeout serwera MCP. Domyślnie LibreChat czeka do 10 minut na ukończenie procesu MCP OAuth przez użytkownika i przechowuje stan przepływu przez 15 minut.

Użyj tych zmiennych środowiskowych, gdy dostawca OAuth lub przepływ pracy użytkownika wymaga więcej czasu:

MCP_OAUTH_HANDLING_TIMEOUT=600000
MCP_OAUTH_FLOW_TTL=900000

MCP_OAUTH_FLOW_TTL jest ograniczony tak, aby trwał dłużej niż MCP_OAUTH_HANDLING_TIMEOUT, dzięki czemu wywołania zwrotne (callbacks) bliskie upływu terminu nadal mogą odnaleźć swój stan przepływu. Okno odpytywania karty serwera MCP jest zgodne ze skonfigurowanym limitem czasu obsługi (handling timeout).

Przepływ uwierzytelniania OAuth specyficzny dla użytkownika

Uwaga: Tokeny wyświetlane podczas uruchamiania aplikacji służą wyłącznie do inicjalizacji na poziomie aplikacji i nie są używane do indywidualnych połączeń użytkowników.

Przykład automatycznego odświeżania tokenów:

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

Najlepsze praktyki

  1. Używaj OAuth, gdy jest dostępny: Preferuj OAuth zamiast kluczy API dla lepszego bezpieczeństwa
  2. Skonfiguruj odpowiednie limity czasu: Użyj MCP_OAUTH_HANDLING_TIMEOUT oraz MCP_OAUTH_FLOW_TTL dla okien zakończenia OAuth; użyj initTimeout dla inicjalizacji serwera
  3. Monitorowanie wygaśnięcia tokenów: Sprawdź logi pod kątem problemów z uwierzytelnianiem
  4. Plan ponownego uwierzytelniania: Niektórzy dostawcy nie obsługują tokenów odświeżania

Uwaga: Konfiguracja OAuth z poziomu interfejsu użytkownika pojawi się wkrótce, co usprawni proces uwierzytelniania bezpośrednio z poziomu LibreChat.

Server Transports

Serwery MCP można skonfigurować tak, aby korzystały z różnych mechanizmów transportowych:

Serwery STDIO

  • Dobrze sprawdza się w lokalnych środowiskach dla jednego użytkownika
  • Nie skalowalne w przypadku wdrożeń zdalnych lub w chmurze

Serwery Server-Sent Events (SSE)

  • Mechanizm zdalnego transportu, ale niezalecany w środowisku produkcyjnym

Strumieniowalne serwery HTTP

  • Używa HTTP POST do wysyłania wiadomości i obsługuje strumieniowanie odpowiedzi
  • Działa jako niezależny proces, który może obsługiwać wiele połączeń klienckich
  • Obsługuje zarówno podstawowe żądania, jak i przesyłanie strumieniowe za pomocą Server-Sent Events (SSE)
  • Wydajniejsza alternatywa dla starszego transportu HTTP+SSE
  • Obsługuje odpowiednie konfiguracje serwerów wieloużytkownikowych

W środowiskach produkcyjnych zalecane są wyłącznie serwery MCP z transportem "Streamable HTTP". W przeciwieństwie do SSE, które utrzymuje długotrwałe połączenia, Streamable HTTP oferuje opcje bezstanowe, które lepiej sprawdzają się w skalowalnych wdrożeniach wieloużytkownikowych.

LibreChat znajduje się w czołówce wdrażania elastycznych i skalowalnych integracji serwerów MCP, aby wspierać różnorodne scenariusze użycia i pomagać w budowaniu przepływów pracy AI jutra.


Gotowy na rozszerzenie swoich możliwości AI? Zacznij od skonfigurowania swojego pierwszego serwera MCP i odkryj, jak LibreChat może połączyć się z praktycznie każdym narzędziem lub usługą, której potrzebuje Twoja organizacja.

Jaka jest ta instrukcja?