LibreChat MCP 서버: librechat.yaml에 Sume 추가하기

librechat.yaml의 mcpServers 아래에 Sume 호스팅 MCP 서버를 추가하세요. streamable-http와 Bearer 키 헤더를 쓰고, requiresOAuth는 false로 둡니다.

읽는 시간 5분Sume
전체 글

LibreChat에 MCP 서버를 추가하려면 librechat.yaml의 mcpServers 아래에 서버를 적고 LibreChat을 재시작하거나, MCP Settings 패널에서 서버를 만드세요. 패널에서 만든 서버는 재시작 없이 적용됩니다. Sume 호스팅 MCP 서버라면 type: streamable-http, URL https://mcp.sume.com/mcp, Authorization: Bearer 헤더에 담은 Sume API 키를 쓰고, requiresOAuth: false를 설정해 LibreChat이 키로 보호되는 서버를 OAuth 서버로 취급하지 않게 하세요.

LibreChat 쪽 내용은 LibreChat의 MCP 페이지와 MCP Servers 객체 구조 레퍼런스에서, Sume 쪽 내용은 MCP OAuth와 API 키, MCP 도구와 게이트, Job과 결과 (영문)에서 가져왔으며, 모두 2026-09-28에 확인했습니다. Sume에는 LibreChat 전용 커넥터가 없습니다. LibreChat은 다른 원격 MCP 서버와 똑같이 Sume 원격 MCP 서버에 연결하며, Sume 기초 페이지는 호스팅 MCP가 여전히 동작하지만 현재 주 경로는 아니라고 설명합니다. 또 다른 셀프 호스팅 채팅 UI는 Open WebUI MCP 서버에서 다룹니다.

librechat.yaml에 Sume를 어떻게 추가하나요?

mcpServers 아래에 항목을 추가하세요. 항목의 키(여기서는 sume)가 서버의 고유 이름입니다. ${SUME_API_KEY}는 서버 쪽 환경 변수를 읽으므로 키가 파일에 들어가지 않습니다.

  • requiresOAuth: false: LibreChat의 자동 감지는 여러분이 설정한 헤더를 빼고 서버에 탐색 요청을 보내며, WWW-Authenticate: Bearer 챌린지와 함께 401로 응답하는 서버는 OAuth로 보호되는 서버로 잘못 분류될 수 있습니다. Sume는 토큰 없이 연결하는 클라이언트에 OAuth 챌린지를 반환하므로, 키를 쓸 때는 항상 이 플래그를 설정하세요.
  • timeout: 60000: LibreChat의 MCP 서버 요청 기본값은 30000 ms이고, Sume jobs_wait 호출 한 번은 최대 55초 동안 대기합니다. LibreChat 자체의 긴 작업 예제도 도구 작업에 60000을 씁니다.
mcpServers:
  sume:
    type: streamable-http
    url: https://mcp.sume.com/mcp
    headers:
      Authorization: 'Bearer ${SUME_API_KEY}'
    requiresOAuth: false
    timeout: 60000

LibreChat 사용자마다 Sume 키를 따로 쓸 수 있나요?

네, 쓸 수 있으며, 이 선택이 누가 비용을 낼지 정합니다. Sume API 키와 지출은 워크스페이스 단위로 해석되므로, 공유 ${SUME_API_KEY} 하나를 쓰면 모든 LibreChat 사용자의 생성 비용이 Sume 워크스페이스 한 곳에 청구됩니다. customUserVars를 쓰면 사용자마다 MCP Settings 패널이나 도구 선택 드롭다운의 설정 아이콘에서 자기 키를 입력합니다. LibreChat은 이 값을 사용자와 서버별로 저장해 두었다가 런타임에 치환하므로, 각자의 호출은 자기가 입력한 키의 워크스페이스로 청구됩니다.

MCP Settings 패널에서 만든 서버도 같은 일을 할 수 있습니다. API Key를 고르고, User provides key를 체크하고, 헤더 형식으로 Bearer를 선택하면, LibreChat이 MCP_API_KEY라는 customUserVars 항목과 Authorization: Bearer {{MCP_API_KEY}} 같은 헤더를 만듭니다. 패널에서 만든 서버는 서버 쪽 환경 변수를 읽을 수 없으므로, 환경 변수에 보관한 공유 키는 librechat.yaml에서 설정해야 합니다. 이 장단점은 여러 사람이 같은 API 키를 써도 되나요?에서 다룹니다.

mcpServers:
  sume:
    type: streamable-http
    url: https://mcp.sume.com/mcp
    headers:
      Authorization: 'Bearer {{SUME_API_KEY}}'
    customUserVars:
      SUME_API_KEY:
        title: 'Sume API key'
    requiresOAuth: false
    timeout: 60000

LibreChat을 키 대신 OAuth로 Sume에 연결할 수 있나요?

가능할 수도 있지만, 양쪽 문서 모두 이 조합을 다루지 않으므로 먼저 로그인을 한 번 시험해 보세요. LibreChat은 MCP 서버용으로 인가 코드 플로와 PKCE를 쓰는 OAuth 2.0, 프로바이더가 지원하는 경우의 자동 클라이언트 등록, 그리고 이름이 sume인 서버라면 ${DOMAIN_SERVER}/api/mcp/sume/oauth/callback 콜백을 지원합니다. 사용자는 각자 자기 계정으로 로그인합니다. Sume 호스팅 MCP는 OAuth 액세스 토큰도 받으며, 이 토큰은 키와 다르게 동작합니다. 단계별 설명은 Sume MCP 서버 OAuth 플로에 있습니다.

  • Sume 동의 페이지에서는 Read가 켜진 채 고정되고 Write는 기본적으로 꺼져 있습니다. Read만 있으면 generate_image 같은 유료 도구가 insufficient_scope를 반환하므로, 생성하려면 Write를 켜세요.
  • 현재 코드에서 Sume 액세스 토큰은 한 시간 동안 유효하며, Sume는 리프레시 토큰을 발급하지 않습니다. LibreChat도 리프레시 토큰을 지원하지 않는 프로바이더라면 재인증에 대비하라고 조언합니다.
  • 현재 Sume OAuth 서버는 공개 클라이언트만 등록해, 클라이언트 시크릿 방식의 토큰 인증을 요청하는 등록은 거부합니다. 또 일반 http 리다이렉트는 localhost나 127.0.0.1에서만 받습니다. LibreChat에 따르면 로컬 Docker 설치는 보통 http://localhost:3080을 씁니다. 그 밖의 주소는 HTTPS로 제공하세요.

Sume에 중요한 librechat.yaml 필드는 무엇인가요?

필드는 LibreChat MCP Servers 객체 구조, Sume 값은 MCP OAuth와 API 키와 Job과 결과 (영문) 기준, 2026-09-28 확인.
필드LibreChat 문서 설명Sume 설정
typestdio, websocket, streamable-http, sse 중 하나streamable-http
headers커스텀 헤더. ${ENV_VAR}, {{VARIABLE}} 플레이스홀더Authorization: 'Bearer …'
requiresOAuth설정하지 않으면 자동 감지API 키를 쓰면 false
timeoutms 단위 요청 타임아웃. 기본값 3000060000
chatMenufalse면 일반 채팅에서 서버를 뺌에이전트로만 Sume에 접근하려면 false

실제로 쓰기 전에 무엇을 알아야 하나요?

  • API 키 세션에는 유료 도구를 포함한 Sume의 전체 호스팅 도구 세트가 보입니다. LibreChat의 Agent Builder에서 Sume 서버를 펼치고 에이전트에 필요한 도구만 켜세요. 일반 채팅에서는 서버를 선택하면 그 서버의 모든 도구를 모델이 쓸 수 있게 되므로, Sume에는 chatMenu: false가 맞습니다.
  • 유료 도구에는 idempotency_key가 필요합니다. dry_run=true는 제출하지 않고 비용을 미리 보여 주며, max_spend_usd는 값을 보낸 경우에만 호출의 상한이 됩니다.
  • 그래도 긴 호출이 일찍 끝난다면, LibreChat은 nginx나 traefik 같은 프록시가 자체 기본 타임아웃에 따라 연결을 끊는 경우를 원인으로 짚습니다.
  • wait_slice_expired를 받으면 에이전트는 같은 id로 jobs_wait를 다시 호출해야 하며, 유료 create는 절대 다시 제출하면 안 됩니다. 이 패턴은 긴 영상 Job의 MCP 도구 호출 타임아웃에서 다룹니다.
  • type: streamable-http는 꼭 남겨 두세요. 이 값이 없으면 LibreChat은 https:// URL을 sse로 취급하는데, 현재 Sume 서버는 MCP URL에 대한 GET에 405와 Remote MCP uses POST JSON-RPC requests.로 응답합니다.

출처

관련 글

연동 카테고리의 다른 글

연동 글 전체 보기

작성자 Sume