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

MCP

LibreChat이 어떻게 Model Context Protocol (MCP)을 활용하여 외부 도구, 데이터 소스 및 전문 서비스와 원활한 통합을 제공하는지 알아보세요.

Model Context Protocol (MCP)은 애플리케이션이 대규모 언어 모델(LLM)에 컨텍스트를 제공하는 방식을 표준화하는 개방형 프로토콜입니다. MCP를 **"AI의 USB-C"**라고 생각해보세요. USB-C가 전자 기기를 위한 범용 연결 표준을 제공하는 것처럼, MCP는 AI 모델을 다양한 도구, 데이터 소스 및 서비스에 연결하는 표준화된 방법을 제공합니다.

LibreChat은 MCP를 활용하여 AI 에이전트의 기능을 획기적으로 확장하며, 파일 시스템 액세스, 웹 브라우저, 특수 API부터 맞춤형 비즈니스 도구에 이르기까지 모든 것을 통합할 수 있도록 지원합니다.

MCP가 중요한 이유

LLM은 내장된 기능에 제한이 있습니다. MCP를 통해 LibreChat은 다음과 같은 방식으로 이러한 장벽을 허뭅니다:

  • MCP 서버를 제공하는 모든 도구 또는 서비스에 연결
  • 통합 표준화를 통해 각 도구마다 LibreChat의 코드를 수정할 필요가 없습니다.
  • 다중 사용자 환경 지원 (적절한 인증 및 격리 기능 포함)
  • 성장하는 생태계 제공: 즉시 사용 가능한 동적 통합 기능

LibreChat에서 MCP가 작동하는 방식

LibreChat은 채팅 영역 또는 에이전트와 함께 MCP 서버를 사용할 수 있는 두 가지 방법을 제공합니다.

librechat.yaml 파일에서 MCP 서버를 수동으로 구성하거나 smithery.ai를 사용하여 MCP 서버를 찾아 librechat.yaml에 설치할 수 있습니다(아래 예시 참조). MCP 서버를 추가하거나 편집할 때마다 연결을 초기화하려면 LibreChat을 재시작해야 합니다.

OAuth 콜백 URL

OAuth가 활성화된 MCP 서버의 경우, LibreChat 콜백 URL은 다음과 같습니다:

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

<server-name>librechat.yamlmcpServers 아래에 사용되는 키이거나 MCP 설정 UI에서 생성된 서버 이름입니다. 예를 들어, DOMAIN_SERVER=https://chat.example.com으로 설정된 salesforce라는 이름의 서버는 https://chat.example.com/api/mcp/salesforce/oauth/callback을 사용합니다.

OAuth 제공업체에 이 정확한 콜백 URL을 등록하세요. 로컬 Docker 설치는 일반적으로 http://localhost:3080을 기본 URL로 사용합니다.

채팅 영역에서

채팅 영역의 MCP 도구

LibreChat은 전통적인 endpoint(OpenAI, Anthropic, Google, Bedrock 등)를 사용할 때 구성된 MCP 서버를 채팅 영역에 직접 표시합니다:

  • 먼저 에이전트가 아닌 endpoint를 선택하고, 도구(tool)와 호환되는 모델을 선택하세요.
  • MCP 서버는 텍스트 입력창 아래의 채팅 인터페이스 내 드롭다운에 표시됩니다.
  • 선택하면 해당 서버의 모든 도구를 현재 모델에서 사용할 수 있게 됩니다.
  • 에이전트를 생성하지 않고도 MCP 도구에 빠르게 액세스하여 여러 서버를 동시에 사용할 수 있습니다.

MCP 서버가 채팅 드롭다운에 나타나지 않도록 설정하려면(에이전트 전용으로 유지), 구성에서 chatMenu: false를 설정하세요:

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

에이전트 사용 시

MCP 서버는 LibreChat 에이전트와 원활하게 통합됩니다:

  1. 에이전트 생성 또는 편집
  2. Agent Builder 패널에서 Tools Dialog를 열려면 "Add MCP Server Tools"를 클릭하세요.
  3. 추가된 MCP 서버를 선택하세요. 각 서버는 단일 항목으로 표시됩니다.
  4. 추가한 후 개별 도구를 활성화하거나 비활성화하여 에이전트의 기능을 미세 조정하세요.
  5. 에이전트 저장

MCP Tools in Agent Builder

이러한 상위 수준의 구성은 인터페이스를 관리하기 쉽게 유지합니다. 20개 이상의 도구(예: Spotify)를 가진 서버조차도 단일 항목으로 표시되며, 이를 확장하여 세부적인 제어를 수행할 수 있습니다.

기본 구성

librechat.yaml 파일에 MCP 서버를 수동으로 추가하세요:

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

UI에서 MCP 서버 추가하기

구성 파일을 편집하거나 서버를 재시작할 필요 없이 LibreChat 인터페이스에서 직접 MCP 서버를 추가하고 구성할 수도 있습니다.

1단계: MCP 설정 패널 열기

오른쪽 사이드바에서 MCP Settings 패널로 이동하세요. 여기에 기존 MCP 서버 목록과 새로운 서버를 추가할 수 있는 + 버튼이 표시됩니다.

MCP 설정 패널

2단계: 서버 세부 정보 입력

+ 버튼을 누르고 MCP 서버 이름, 설명, URL, 전송 유형, 인증 방식을 입력한 다음 Create를 클릭하세요.

Add MCP Server Dialog

새 서버가 MCP 설정 패널에 나타나며 확인 토스트 메시지가 표시됩니다.

MCP Server Created Successfully

3단계: 연결 상태 확인 및 인증

새 서버의 연결 상태 표시기를 확인하세요. 서버에 OAuth 인증이 필요한 경우, 상태는 연결 끊김으로 표시됩니다. 서버의 인증/연결 버튼을 클릭하여 인증 절차를 시작하세요(채팅 드롭다운 메뉴에서 MCP 서버를 직접 클릭하거나, 먼저 연결 아이콘을 클릭하여 연결 상태에 대한 자세한 정보가 있는 대화 상자로 이동하여 수행할 수 있습니다).

연결 상태 - 연결 끊김

시작되면 상태 표시기가 업데이트되어 인증이 진행 중임을 나타냅니다.

Connection Status - Authenticating

4단계: OAuth 탭에서 계속하기

OAuth 제공업체를 위한 새 브라우저 탭이 열립니다. 콜백 URL을 확인하고 Continue를 클릭하여 LibreChat을 승인하세요.

OAuth Continue Prompt

5단계: 인증 성공

인증이 완료되면 성공 확인 메시지가 표시됩니다. 이 창은 자동으로 닫히며 LibreChat으로 다시 리디렉션됩니다.

Authentication Successful

6단계: 서버 사용 준비 완료

LibreChat은 성공적인 인증을 확인하고 대화 내에서 사용할 MCP 서버를 자동으로 선택합니다. 이제 서버에 연결 상태 표시기가 나타나며 MCP Servers 드롭다운에서 해당 서버가 체크됩니다.

MCP Server Authenticated and Auto-Selected

새로운 MCP 서버는 Agent Builder에서도 사용할 수 있으며, 여기서 해당 도구를 모든 에이전트에 추가하고 허용할 도구의 하위 집합을 사용자 지정할 수 있습니다.

MCP Server Available in Agent Builder

UI에서 생성된 서버를 위한 자격 증명 변수

UI를 통해 MCP 서버를 추가할 때, 사용자가 자신의 API 키를 제공하도록 요구할 수 있습니다. MCP Server Builder 대화 상자의 Authentication 섹션에서 "API Key"를 선택하고 **"User provides key"**를 체크하세요. 헤더 형식(Bearer, Basic 또는 Custom)을 선택한 다음 서버를 저장합니다.

내부적으로 LibreChat은 MCP_API_KEY라는 이름의 customUserVars 항목을 자동으로 생성하고 적절한 헤더 템플릿(예: Authorization: Bearer {{MCP_API_KEY}})을 구성합니다. 각 사용자는 에이전트를 구성할 때 MCP 도구 선택 대화 상자(MCP Tool Select Dialog)를 통해 자신의 키를 제공합니다. 이는 YAML로 정의된 customUserVars에 사용되는 것과 동일한 UI입니다.

보안을 위해 UI에서 생성된(DB 기반) MCP 서버는 customUserVars 플레이스홀더({{VAR_NAME}})만 해결할 수 있습니다. 서버 측 환경 변수(${ENV_VAR}), 사용자 프로필 필드({{LIBRECHAT_USER_*}}) 및 OIDC 토큰({{LIBRECHAT_OPENID_*}})은 서버 비밀 정보나 다른 사용자의 데이터에 대한 무단 액세스를 방지하기 위해 의도적으로 차단되었습니다. 모든 플레이스홀더를 지원하려면 대신 librechat.yaml에서 서버를 구성하십시오.

Smithery를 사용하여 MCP 서버 추가하기

Smithery.ai는 LibreChat을 위한 MCP 서버를 검색하고 설치하는 간소화된 방법을 제공합니다. 시작하려면 다음 단계를 따르세요:

1단계: MCP 서버 검색

smithery.ai를 방문하여 LibreChat 인스턴스에 추가하려는 MCP 서버를 검색하세요.

Smithery 검색 인터페이스

2단계: MCP Server 선택

검색 결과에서 MCP 서버를 클릭하여 세부 정보와 사용 가능한 도구를 확인하세요.

MCP Server Details Page

3단계: LibreChat 설정하기

Connect 섹션의 Auto 탭으로 이동하여 원하는 클라이언트로 LibreChat을 선택하세요.

LibreChat 통합 설정

4단계: MCP Server 설치

생성된 명령어를 복사하여 터미널에서 실행하면 MCP 서버가 설치됩니다.

Installation Command

5단계: 재시작 및 확인

이제 MCP 서버가 설치되었으며 librechat.yaml에서 구성할 수 있습니다. LibreChat을 재시작하여 연결을 초기화하고 새로운 MCP 서버를 사용해 보세요.

MCP Server Successfully Installed smithery.ai를 통해 설치되어 LibreChat에서 사용할 준비가 된 MCP 서버

자세한 구성 옵션 및 예시는 다음을 참조하세요:

MCP Server Management

LibreChat은 UI에서 연결 상태 추적과 OAuth 인증 및 초기화 지원을 통해 MCP 서버 연결을 관리하기 위한 포괄적인 도구를 제공합니다.

연결 상태 표시기

LibreChat은 채팅 드롭다운 및 설정 패널에서 각 MCP 서버의 현재 상태를 보여주는 동적 상태 아이콘을 표시합니다:

MCP Server Status Icons

상태 유형:

  • 연결됨 (녹색 톱니바퀴): 서버가 연결되었으며 구성 가능한 customUserVars를 가지고 있습니다.
  • OAuth Required (amber key): 서버에 OAuth 인증이 필요합니다
  • 연결 끊김 (주황색 플러그): 서버 연결에 실패했거나 연결이 끊어졌습니다.
  • Initializing (파란색 로더): 서버가 시작 중이거나 재연결 중입니다.
  • 오류 (빨간색 삼각형): 서버에서 오류가 발생했습니다
  • 취소 중 (빨간색 x): OAuth 흐름이 취소되고 있습니다

서버 초기화

인터페이스에서 직접 MCP 서버를 초기화하거나 재초기화할 수 있습니다:

원클릭:

  • MCP 서버 선택 드롭다운에서 원클릭 초기화

    원클릭 MCP 초기화

MCPConfigDialog에서:

  • 채팅 드롭다운에서 MCP 서버 옆의 상태 아이콘을 클릭하여 MCPConfigDialog를 엽니다.

  • 사용자 지정 변수를 구성하고 서버 인증 유형에 따라 Authenticate/Initialize 버튼을 클릭하세요.

    MCP 설정 대화 상자 인증

    MCP 설정 패널에서:

  • MCP 설정 패널의 서버 목록 섹션에서 서버를 클릭하여 구성 및 초기화 제어에 액세스하세요.

  • 사용자 지정 변수를 구성하고 서버 인증 유형에 따라 Authenticate/Initialize 버튼을 클릭하세요.

    MCP 설정 패널 초기화

MCP 설정 패널 표시 여부

LibreChat이 초기화 과정에서 사용자 개입이 필요할 수 있는 MCP 서버를 감지하면 오른쪽 사이드바에 MCP 설정 패널이 나타납니다. 구성된 서버가 다음 기준 중 하나를 충족하면 해당 패널이 표시됩니다:

  • 사용자 지정 변수(Custom User Variables): 서버에 customUserVars가 정의되어 있으며, 여기에는 사용자가 제공한 자격 증명이 포함될 수 있습니다.
  • OAuth Authentication: 서버가 시작되는 동안 OAuth 인증이 필요한 것으로 감지되었습니다.
  • 수동 초기화: 서버가 startup: false로 설정되어 있어 수동 초기화가 필요합니다.

LibreChat 전용 기능

LibreChat의 MCP 구현은 고도로 구성 가능하며, 실제 환경의 다중 사용자 환경을 위해 설계되었습니다.

사용자별 연결 (User-Specific Connections)

  • 각 사용자는 MCP 서버에 대한 자신만의 격리된 연결을 갖습니다.
  • 사용자 인증 및 권한이 준수됩니다
  • 개인 데이터와 컨텍스트는 비공개로 유지됩니다

MCP 서버 공유하기

MCP 서버는 LibreChat의 세분화된 액세스 제어 시스템에 참여합니다. librechat.yaml에 정의된 서버(관리자가 관리하며 interface.mcpServers 기능 권한의 적용을 받음) 외에도, 사용자가 생성한 MCP 서버는 자체적인 ACL을 가지며 특정 사용자, 그룹, 역할 또는 공개로 공유할 수 있고, 뷰어(Viewer), 편집자(Editor) 또는 소유자(Owner) 수준으로 설정할 수 있습니다.

interface.mcpServers 하위의 USE, CREATE, SHARE, SHARE_PUBLIC 기능 플래그는 MCP 서버를 생성하고 공유할 수 있는 권한을 제어합니다. 권한 계층이 어떻게 구성되는지에 대한 자세한 내용은 Access Control을 참조하세요.

동적 사용자 컨텍스트

MCP 서버는 URL 및 헤더의 플레이스홀더를 통해 사용자 정보에 액세스할 수 있습니다(SSE 및 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}'

사용 가능한 플레이스홀더는 다음과 같습니다:

  • {{LIBRECHAT_USER_ID}} - 고유 사용자 식별자
  • {{LIBRECHAT_USER_EMAIL}} - 사용자의 이메일 주소
  • {{LIBRECHAT_USER_ROLE}} - 사용자 역할 (admin, user 등)
  • {{LIBRECHAT_USER_USERNAME}} - 사용자 이름
  • 그리고 더 많은 항목 (전체 목록은 MCP Servers Configuration 참조)

YAML로 정의된 MCP 서버는 {{LIBRECHAT_OPENID_*}}, {{LIBRECHAT_GRAPH_*}}, 그리고 {{LIBRECHAT_BODY_*}} 플레이스홀더를 사용할 수도 있습니다. {{LIBRECHAT_BODY_*}} 값은 요청 범위(request-scoped)로 지정되므로, LibreChat은 활성 실행을 위한 연결을 생성하고, 해당 실행 내의 도구 호출 간에 이를 재사용하며, 요청이 종료될 때 연결을 정리합니다. 요청 범위 서버는 영구 도구 캐시에서 제외되므로, 요청별 헤더와 URL이 활성 실행 외부에서 재사용되지 않습니다. 사용자, OpenID 및 Graph 플레이스홀더는 사용자 범위(user-scoped)로 지정됩니다. HTTP 전송은 각 도구 호출 전에 해결된 헤더를 새로 고치며, 자체적으로 재연결할 필요는 없습니다.

Server Instructions

serverInstructions는 MCP 서버의 도구가 선택될 때 구성된 지침을 동적으로 추가하는 LibreChat 기능입니다:

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

옵션:

  • true: 서버에서 제공하는 지침 사용
  • false: 지침 비활성화
  • string: 사용자 지정 지침(위에 표시됨)

시간 초과(Timeout) 설정

장시간 실행되는 MCP 작업의 경우, 초기화 및 도구 작업 모두에 적절한 타임아웃을 구성하십시오.

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

참고: 작업이 계속 중단되는 경우, 기본 시간 초과 설정으로 인해 연결을 조기에 끊을 수 있는 프록시 구성(예: nginx, traefik 등)을 확인하십시오.

사용자 제공 자격 증명

customUserVars를 통해 사용자가 MCP 서버에 대한 자신의 자격 증명을 직접 제공하도록 허용할 수 있습니다. 이를 통해 구성 파일에 자격 증명을 저장하지 않고도 안전한 사용자별 인증이 가능합니다.

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

사용자는 다음 자격 증명을 구성할 수 있습니다:

  • 채팅 영역에서: 도구 선택 드롭다운에서 구성 가능한 MCP 서버 옆에 있는 설정 아이콘을 클릭하세요.
  • MCP 설정 패널에서: 오른쪽 패널의 "MCP Settings"에 액세스하여 구성된 모든 서버의 자격 증명을 관리하세요.

사용자 자격 증명으로 MCP 서버 재초기화하기

사용하기 전에 사용자별 자격 증명이 필요한 MCP 서버(예: GitHub 공식 MCP 서버PAT_TOKEN)의 경우, LibreChat을 사용하면 사용자가 이러한 자격 증명을 제공하고 전체 애플리케이션을 재시작하지 않고도 UI 내에서 MCP 서버를 다시 초기화할 수 있습니다:

  1. customUserVars를 사용하는 MCP를 선택하면, MCP 패널 내에서 선택한 MCP 서버에 대한 customUserVar 값을 **저장(Save)**하거나 **취소(Revoke)**할 수 있습니다.
  2. customUserVar에 대한 값을 저장한 후, 재초기화(reinitialize) 버튼(MCP 패널의 각 서버 이름 옆에 있는 원형 화살표 아이콘)을 클릭하세요.
  3. LibreChat은 제공하신 자격 증명을 사용하여 서버 연결을 시도하며, 재초기화 프로세스의 성공 또는 실패 여부를 토스트 메시지로 알려드립니다.

팁: 서버가 최초 시작 시 사용할 수 없는 자격 증명을 요구할 것임을 알고 있다면, 해당 구성에 startup: false를 추가할 수 있습니다. 이는 LibreChat이 UI에서 수동으로 다시 초기화될 때까지 해당 서버에 연결을 시도하지 않도록 지시합니다.

예시:

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 인증

LibreChat은 Anthropic의 안전한 MCP 연결 권장 사항에 따라 MCP 서버에 대한 OAuth 인증을 지원합니다. OAuth는 장기 자격 증명을 저장하지 않고도 인증할 수 있는 표준화되고 안전한 방법을 제공합니다.

지원되는 OAuth 흐름

LibreChat MCP 서버는 다음을 통해 OAuth 2.0을 지원합니다:

  • PKCE를 사용한 인증 코드 흐름(Authorization Code Flow with PKCE): 최대 보안을 위해 권장됨
  • Client Discovery: OAuth 제공업체에서 지원하는 경우 자동 클라이언트 등록
  • Refresh Tokens: 사용 가능한 경우 자동 토큰 갱신

구성 예시

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 인증 흐름

OAuth가 활성화된 MCP 서버를 처음 구성할 때:

  1. 초기 연결: LibreChat이 MCP 서버에 연결을 시도합니다.
  2. 인증 필요: 유효한 토큰이 없는 경우, 해당 서버의 채팅 드롭다운에서 OAuth 인증 표시기를 확인할 수 있습니다.
  3. 버튼 인터페이스: 인증 표시기 버튼을 클릭하여 MCPConfigDialog를 열고 OAuth 흐름을 시작하세요.
  4. Config Dialog: MCPConfigDialog에서 Authenticate 버튼을 클릭하여 브라우저에서 OAuth 인증 페이지를 엽니다.
  5. 브라우저 리디렉션: LibreChat이 브라우저에서 OAuth 제공업체를 엽니다.
  6. Return Handling: LibreChat은 인증이 완료되면 OAuth 콜백을 자동으로 처리합니다.
  7. 토큰 저장: LibreChat은 향후 사용을 위해 토큰을 안전하게 저장합니다.
  8. 연결 완료: 인증이 완료되면 MCP 서버가 연결되며, 채팅에서 이를 사용할 수 있습니다.

OAuth 콜백 URL

MCP 서버가 OAuth를 사용할 때, LibreChat은 OAuth 제공자가 성공적인 인증 후 리디렉션하는 콜백 endpoint를 노출합니다.

콜백 URL은 다음 형식을 따라야 합니다:

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

여기서 ${serverName}librechat.yaml 구성에 정의된 MCP 서버 키입니다. LibreChat은 이 endpoint에서 리디렉션을 처리하고, 토큰 교환을 완료하며, 자격 증명을 해당 MCP 서버와 연결합니다.

OAuth 콜백 URL 예시

다음 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'

콜백 URL은 ${baseUrl}/api/mcp/spotify/oauth/callback이 됩니다.

참고:

  • OAuth 흐름이 작동하려면 콜백 URL을 OAuth 제공업체에 정확하게 등록해야 합니다.
  • /api/oauth/callback 또는 /api/oauth/openid/callback과 같은 다른 경로는 MCP OAuth 흐름에 유효하지 않습니다.

토큰 관리

LibreChat은 OAuth 토큰을 지능적으로 처리합니다:

  • 보안 저장소: 토큰은 암호화되어 안전하게 저장됩니다
  • 자동 새로 고침: 새로 고침 토큰(refresh tokens)을 사용할 수 있는 경우, LibreChat은 만료된 액세스 토큰을 자동으로 갱신합니다.
  • Silent 401 Recovery: OAuth MCP 연결 중 세션 중간에 401 오류가 발생하고 새로 고침 토큰(refresh token)을 사용할 수 있는 경우, LibreChat은 새로운 인증 프롬프트를 표시하기 전에 자동으로(silent) 토큰 갱신을 시도합니다.
  • 세션 관리: 각 사용자는 다중 사용자 환경을 위해 자체 OAuth 세션을 유지합니다.

각 사용자는 OAuth가 활성화된 MCP 서버를 처음 사용할 때 자신의 OAuth 로그인으로 인증하라는 메시지를 받게 됩니다. 이는 연결 및 인증 세부 정보가 각 사용자마다 고유하게 유지되도록 보장하며, 다중 사용자 환경에서 보안과 개인정보 보호를 유지합니다.

OAuth 타이밍

MCP OAuth 완료는 MCP 서버 initTimeout을 재사용하는 대신 자체적으로 구성된 서버 타임아웃을 사용합니다. 기본적으로 LibreChat은 사용자가 MCP OAuth를 완료할 때까지 최대 10분 동안 대기하며, 흐름 상태를 15분 동안 유지합니다.

OAuth 제공업체나 사용자 워크플로우에 더 많은 시간이 필요할 때 다음 환경 변수를 사용하세요:

MCP_OAUTH_HANDLING_TIMEOUT=600000
MCP_OAUTH_FLOW_TTL=900000

MCP_OAUTH_FLOW_TTLMCP_OAUTH_HANDLING_TIMEOUT보다 길게 유지되도록 제한되므로, 마감 시간에 가까운 콜백도 여전히 자신의 흐름 상태를 찾을 수 있습니다. MCP 서버 카드 폴링 창은 구성된 처리 시간 제한을 따릅니다.

사용자별 OAuth 인증 흐름

참고: 앱 시작 중에 표시되는 토큰은 앱 수준의 초기화만을 위한 것이며 개별 사용자 연결에는 사용되지 않습니다.

자동 토큰 갱신 예시:

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

모범 사례

  1. OAuth 사용 가능 시 사용: 보안 강화를 위해 API 키보다 OAuth를 우선적으로 사용하세요
  2. 적절한 타임아웃 구성: OAuth 완료 창에는 MCP_OAUTH_HANDLING_TIMEOUTMCP_OAUTH_FLOW_TTL을 사용하고, 서버 초기화에는 initTimeout을 사용하세요.
  3. 토큰 만료 모니터링: 인증 문제에 대한 로그 확인
  4. 재인증 계획: 일부 제공업체는 새로 고침 토큰(refresh tokens)을 지원하지 않습니다.

참고: LibreChat 인터페이스에서 직접 인증 프로세스를 간소화할 수 있는 UI 기반 OAuth 설정 기능이 곧 추가될 예정입니다.

Server Transports

MCP 서버는 다양한 전송 메커니즘을 사용하도록 구성할 수 있습니다:

STDIO 서버

  • 로컬, 단일 사용자 환경에 적합합니다
  • 원격 또는 클라우드 배포에 확장 가능하지 않음

Server-Sent Events (SSE) 서버

  • 원격 전송 메커니즘이지만 프로덕션 환경에는 권장되지 않습니다.

스트리밍 가능한 HTTP 서버

  • 메시지 전송을 위해 HTTP POST를 사용하며 응답 스트리밍을 지원합니다
  • 여러 클라이언트 연결을 처리할 수 있는 독립적인 프로세스로 작동합니다
  • Server-Sent Events (SSE)를 통한 기본 요청 및 스트리밍을 모두 지원합니다.
  • 기존 HTTP+SSE 전송 방식보다 성능이 뛰어난 대안
  • 적절한 다중 사용자 서버 구성을 지원합니다

**운영 환경(production environments)**의 경우, "Streamable HTTP" 전송 방식을 사용하는 MCP 서버만 권장됩니다. 장기 실행 연결을 유지하는 SSE와 달리, Streamable HTTP는 확장 가능한 다중 사용자 배포에 더 적합한 상태 비저장(stateless) 옵션을 제공합니다.

LibreChat은 유연하고 확장 가능한 MCP 서버 통합을 구현하는 데 앞장서고 있으며, 다양한 사용 시나리오를 지원하고 미래의 AI 워크플로우를 구축할 수 있도록 돕습니다.


AI 기능을 확장할 준비가 되셨나요? 첫 번째 MCP 서버를 구성하는 것부터 시작하여 LibreChat이 조직에 필요한 거의 모든 도구 또는 서비스와 어떻게 연결될 수 있는지 알아보세요.

이 가이드는 어떤가요?