Skip to content

v3.23 - LibreChat upload strategy (not yet usable)

Choose a tag to compare

@dvejsada dvejsada released this 23 Jul 14:06
· 22 commits to master since this release
0e8f1b8

⚠️ LibreChat integration is not usable yet

This release ships the server side of the LibreChat integration only. It cannot be used
in production yet: it depends on a /api/service/files service endpoint and matching
MCP_SERVICE_TOKEN handling that LibreChat has not implemented and released yet.

Thanks to @geodanchev for his contribution in #86!

Until that lands upstream, UPLOAD_STRATEGY=LIBRECHAT will fail to upload. Keep your
existing LOCAL / S3 / GCS / AZURE / MINIO strategy. Treat this as a preview so
that the MCP side is ready the day LibreChat support arrives.

Highlights

🔌 New upload strategy: LIBRECHAT

With UPLOAD_STRATEGY=LIBRECHAT, generated documents (DOCX, XLSX, PPTX, EML, XML) are
uploaded straight to LibreChat's internal file service and surface as downloadable
attachments in the chat UI — no external cloud storage needed. Tools return a file artifact
with file_id, filename and mimeType.

👤 User context from HTTP headers

Files are associated with the calling user via headers passed by LibreChat:

  • X-User-Id (required) — associates the file with the user
  • X-User-Email (optional) — audit logging
  • X-Conversation-Id (optional) — conversation-scoped access

🔐 Service-token authentication

Server-to-server calls are authenticated with an X-Service-Token header, which must match
the MCP_SERVICE_TOKEN configured on the LibreChat side.

🔢 Optional UUID prefix control

All tools now accept add_unique_prefix (default false). LibreChat adds its own UUID
prefix at storage time, so the server-side prefix is off by default to avoid doubling up.

Configuration

# .env
UPLOAD_STRATEGY=LIBRECHAT
LIBRECHAT_SERVICE_URL=http://api:3080/api/service/files
LIBRECHAT_SERVICE_TOKEN=<must-match-MCP_SERVICE_TOKEN-in-LibreChat>
# librechat.yaml
mcpServers:
  Office-documents:
    type: streamable-http
    url: http://mcp-office-docs:8958/mcp
    headers:
      X-User-Id: "{{LIBRECHAT_USER_ID}}"
      X-User-Email: "{{LIBRECHAT_USER_EMAIL}}"

Backward compatibility

Fully opt-in. Existing deployments on LOCAL, S3, GCS, AZURE or MINIO are
unaffected and need no changes.

Upgrade

Pull the new image and restart — no template or configuration changes required.

What's Changed

  • Feature/librechat integration in #86

Full Changelog: v3.22...v3.23